From 8519129b4ca32903717f11bbb485972e9380ccb7 Mon Sep 17 00:00:00 2001 From: Sabrina Date: Wed, 1 May 2024 10:50:12 +0100 Subject: [PATCH] Feat zk reword (#49) # What :computer: - new branch of https://github.com/matter-labs/zksync-docs/pull/40 replaced zkSync with ZKsync # Why :hand: Branding change # Evidence :camera: Include screenshots, screen recordings, or `console` output here demonstrating that your changes work as intended --------- Co-authored-by: bxpana <42230936+bxpana@users.noreply.github.com> --- .github/ISSUE_TEMPLATE/bug_report.md | 2 +- .github/ISSUE_TEMPLATE/config.yml | 2 +- README.md | 8 +-- app.config.ts | 14 ++--- app.vue | 10 ++-- components/content/NetworkAdder.vue | 4 +- .../00.zksync-101/1.zksync-overview.md | 24 ++++----- .../00.zksync-101/2.connect-zksync.md | 18 +++---- .../00.build/00.zksync-101/3.quickstart.md | 32 +++++------ .../00.build/00.zksync-101/4.erc20-token.md | 12 ++--- .../5.paymasters-introduction.md | 12 ++--- content/00.build/00.zksync-101/_dir.yml | 2 +- .../_erc20_tutorial/_atlas_erc20_tutorial.md | 27 +++++----- .../_erc20_tutorial/_remix_erc20_tutorial.md | 21 ++++---- .../_quickstart/_atlas_deploy_contract.md | 11 ++-- .../_quickstart/_remix_deploy_contract.md | 6 +-- content/00.build/10.quick-start/00.index.md | 34 ++++++------ .../10.quick-start/10.hello-zksync.md | 32 +++++------ .../10.quick-start/20.contract-factory.md | 16 +++--- content/00.build/10.quick-start/30.testing.md | 18 +++---- .../00.build/10.quick-start/40.upgrading.md | 14 ++--- .../00.build/10.quick-start/50.paymaster.md | 20 +++---- .../_foundry_deploy_contract_factory.md | 4 +- .../_hardhat_deploy_contract_factory.md | 6 +-- .../_hello-zksync/_foundry_deploy_contract.md | 4 +- .../_hello-zksync/_hardhat_deploy_contract.md | 6 +-- .../_paymasters/_approval_paymaster_flow.md | 8 +-- .../_paymasters/_general_paymaster_flow.md | 8 +-- .../_testing/_foundry_contract_testing.md | 4 +- .../_testing/_hardhat_contract_testing.md | 6 +-- .../_hardhat_beacon_contract_upgradability.md | 12 ++--- ...dhat_transparent_contract_upgradability.md | 14 ++--- .../_hardhat_uups_contract_upgradability.md | 10 ++-- .../40.tooling/00.zksync-block-explorers.md | 24 ++++----- .../40.tooling/10.zksync-cli/00.index.md | 16 +++--- .../10.zksync-cli/01.troubleshooting.md | 6 +-- .../10.zksync-cli/10.zksync-cli-dev.md | 2 +- .../10.zksync-cli/20.zksync-cli-create.md | 4 +- .../10.zksync-cli/30.zksync-cli-contract.md | 3 +- .../40.zksync-cli-transaction.md | 2 +- .../10.zksync-cli/50.zksync-cli-wallet.md | 6 +-- .../10.zksync-cli/60.zksync-cli-bridge.md | 2 +- .../40.tooling/10.zksync-cli/_dir.yml | 2 +- .../20.hardhat/10.getting-started.md | 38 ++++++------- .../20.hardhat/110.hardhat-zksync.md | 4 +- .../20.hardhat/120.hardhat-zksync-node.md | 8 +-- .../20.hardhat/20.migrating-to-zksync.md | 36 ++++++------- .../20.hardhat/30.compiling-libraries.md | 8 +-- .../20.hardhat/40.hardhat-zksync-solc.md | 10 ++-- .../20.hardhat/50.hardhat-zksync-vyper.md | 2 +- .../20.hardhat/60.hardhat-zksync-deploy.md | 54 +++++++++---------- .../70.hardhat-zksync-upgradable.md | 24 ++++----- .../20.hardhat/80.hardhat-zksync-verify.md | 22 ++++---- .../90.hardhat-zksync-verify-vyper.md | 20 +++---- .../40.tooling/20.hardhat/other-plugins.md | 14 ++--- .../40.tooling/30.foundry/10.overview.md | 12 ++--- .../30.foundry/20.getting-started.md | 32 +++++------ .../00.build/60.test-and-debug/00.index.md | 16 +++--- .../10.dockerized-l1-l2-nodes.md | 26 ++++----- .../60.test-and-debug/20.in-memory-node.md | 6 +-- .../00.build/60.test-and-debug/40.hardhat.md | 4 +- .../00.build/60.test-and-debug/50.foundry.md | 6 +-- content/00.build/70.api-reference/00.index.md | 14 ++--- .../70.api-reference/10.conventions.md | 2 +- .../00.build/70.api-reference/20.zks-rpc.md | 24 ++++----- .../00.build/70.api-reference/30.debug-rpc.md | 2 +- .../70.api-reference/35.ethereum-rpc.md | 10 ++-- .../70.api-reference/40.pub-sub-rpc.md | 4 +- .../10.index.md | 26 ++++----- .../20.contribution-guidelines.md | 8 +-- .../30.documentation-styleguide.md | 28 +++++----- content/00.build/95.resources/20.glossary.md | 8 +-- .../05.concepts/00.transaction-lifecycle.md | 18 +++---- content/10.zk-stack/05.concepts/10.blocks.md | 28 +++++----- .../05.concepts/20.fee-mechanism.md | 36 ++++++------- .../10.zk-stack/05.concepts/30.finality.md | 14 ++--- .../05.concepts/40.system-upgrades.md | 12 ++--- .../50.hyperchains-hyperscaling.md | 4 +- .../60.data-availability/00.index.md | 16 +++--- .../05.concepts/99.account-abstraction.md | 10 ++-- .../05.concepts/99.l1_l2_communication.md | 4 +- .../10.zk-stack/10.components/10.overview.md | 4 +- .../20.smart-contracts/10.smart-contracts.md | 10 ++-- .../20.smart-contracts/20.system-contracts.md | 24 ++++----- .../10.components/40.sequencer-server.md | 12 ++--- .../50.zksync-evm/00.overview.md | 22 ++++---- .../50.zksync-evm/10.bootloader.md | 18 +++---- .../50.zksync-evm/20.precompiles.md | 2 +- .../30.vm-specification/10.vm-primer.md | 2 +- .../30.vm-specification/20.formal-spec.md | 2 +- .../10.components/50.zksync-evm/_dir.yml | 2 +- .../10.components/60.prover/10.overview.md | 22 ++++---- .../60.prover/20.zk-terminology.md | 16 +++--- .../70.compiler/10.toolchain/10.overview.md | 6 +-- .../70.compiler/10.toolchain/20.solidity.md | 12 ++--- .../70.compiler/10.toolchain/30.vyper.md | 8 +-- .../70.compiler/10.toolchain/40.llvm.md | 8 +-- .../20.specification/10.overview.md | 6 +-- .../20.specification/30.system-contracts.md | 8 +-- .../60.instructions/10.overview.md | 4 +- .../60.instructions/20.evm/10.overview.md | 4 +- .../60.instructions/20.evm/calls.md | 2 +- .../60.instructions/20.evm/create.md | 2 +- .../60.instructions/20.evm/return.md | 2 +- .../60.instructions/30.evmla.md | 19 +++---- .../60.instructions/40.yul.md | 16 +++--- .../20.running-a-hyperchain/10.locally.md | 4 +- .../99.dependencies.md | 4 +- content/20.external-node/00.index.md | 8 +-- .../10.component-breakdown.md | 4 +- content/20.external-node/20.configuration.md | 2 +- content/30.ecosystem/00.index.md | 8 +-- content/30.ecosystem/10.bridges.md | 10 ++-- content/30.ecosystem/100.wallets.md | 8 +-- content/30.ecosystem/30.data-indexers.md | 6 +-- content/30.ecosystem/40.ide.md | 14 ++--- content/30.ecosystem/50.monitoring.md | 2 +- content/30.ecosystem/60.network-faucets.md | 4 +- content/30.ecosystem/70.nft-marketplaces.md | 12 ++--- content/30.ecosystem/80.oracles.md | 4 +- content/30.ecosystem/90.node-providers.md | 16 +++--- .../_partials/_compile-solidity-contracts.md | 2 +- .../_partials/_enable-remix-zksync-plugin.md | 12 ++--- .../_environment-setup-with-foundry.md | 2 +- content/_zksync.json | 8 +-- content/index.yml | 28 +++++----- cspell-config/cspell-dev.txt | 2 +- cspell-config/cspell-zksync.txt | 5 +- package.json | 2 +- 129 files changed, 746 insertions(+), 752 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index d9c0f6da..f73fe609 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -7,7 +7,7 @@ assignees: '' --- -### 🐛 Bug Report for zkSync Docs +### 🐛 Bug Report for ZKsync Docs #### 📝 Description diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 61fd4b71..34c81273 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,5 +1,5 @@ blank_issues_enabled: true contact_links: - name: zksync-developers Discussion - url: https://github.com/zkSync-Community-Hub/zkync-developers/discussions + url: https://github.com/ZKsync-Community-Hub/zkync-developers/discussions about: Please provide feedback, and ask questions here. diff --git a/README.md b/README.md index ff98b195..76b5a990 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # ZK Sync Docs -Welcome to the ZK Sync Docs repository. This project serves as the community hub for zkSync, providing comprehensive -documentation for developers. Whether you're a beginner looking to get started with zkSync or an experienced developer +Welcome to the ZK Sync Docs repository. This project serves as the community hub for ZKsync, providing comprehensive +documentation for developers. Whether you're a beginner looking to get started with ZKsync or an experienced developer seeking advanced guides, you'll find the resources you need here. ## Tools used @@ -62,9 +62,9 @@ bun run lint:eslint ## Contributions -We welcome contributions from the community to zkSync Docs. +We welcome contributions from the community to ZKsync Docs. If you're looking for ideas on where to start with contributing, check out the [Contribution Overview](./content/90.contributing-to-documentation/10.index.md). -To learn more on how to follow best practices when contributing to zkSync Docs, +To learn more on how to follow best practices when contributing to ZKsync Docs, refer to the [Contribution Guidelines](./content/90.contributing-to-documentation/20.contribution-guidelines.md). If you are writing new content to add to the docs, the [Documentation Styleguide](./content/90.contributing-to-documentation/30.documentation-styleguide.md) can provide additional guidance. diff --git a/app.config.ts b/app.config.ts index 5a8620dd..4f2b650d 100644 --- a/app.config.ts +++ b/app.config.ts @@ -47,7 +47,7 @@ export default defineAppConfig({ }, }, seo: { - siteName: 'zkSync Docs', + siteName: 'ZKsync Docs', }, header: { logo: { @@ -62,8 +62,8 @@ export default defineAppConfig({ icon: 'i-simple-icons-github', to: 'https://github.com/matter-labs/zksync-docs', target: '_blank', - 'aria-label': 'zkSync Docs on GitHub', - title: 'zkSync Docs on GitHub', + 'aria-label': 'ZKsync Docs on GitHub', + title: 'ZKsync Docs on GitHub', }, ], }, @@ -81,19 +81,19 @@ export default defineAppConfig({ icon: 'i-simple-icons-x', to: 'https://x.com/zksync', target: '_blank', - 'aria-label': 'zkSync on X', + 'aria-label': 'ZKsync on X', }, { icon: 'i-simple-icons-github', to: 'https://github.com/matter-labs', target: '_blank', - 'aria-label': 'zkSync on GitHub', + 'aria-label': 'ZKsync on GitHub', }, { icon: 'i-simple-icons-discord', to: 'https://join.zksync.dev/', target: '_blank', - 'aria-label': 'zkSync on Discord', + 'aria-label': 'ZKsync on Discord', }, ], }, @@ -113,7 +113,7 @@ export default defineAppConfig({ { icon: 'i-heroicons-user-group-20-solid', label: 'Developer Forum', - to: 'https://github.com/zkSync-Community-Hub/zkync-developers/discussions', + to: 'https://github.com/ZKsync-Community-Hub/zkync-developers/discussions', target: '_blank', }, ], diff --git a/app.vue b/app.vue index 4279e8e3..c0acd60a 100644 --- a/app.vue +++ b/app.vue @@ -18,12 +18,12 @@ useHead({ { name: 'keywords', content: - 'Documentation, Developers, Era, zkSync, ZK Stack, Matter Labs, rollup, ZK rollup, zero confirmation, ZKP, zero-knowledge proofs, Ethereum, crypto, blockchain, permissionless, L2, secure payments, scalable', + 'Documentation, Developers, Era, ZKsync, ZK Stack, Matter Labs, rollup, ZK rollup, zero confirmation, ZKP, zero-knowledge proofs, Ethereum, crypto, blockchain, permissionless, L2, secure payments, scalable', }, { name: 'description', content: - 'zkSync Docs bring you all information you need about our protocol, APIs, SDKs, ZK Stack, and hyperchains. Start with our guides and tutorials, or go deep into our architecture and protocol specification.', + 'ZKsync Docs bring you all information you need about our protocol, APIs, SDKs, ZK Stack, and hyperchains. Start with our guides and tutorials, or go deep into our architecture and protocol specification.', }, { name: 'author', content: 'https://matter-labs.io' }, ], @@ -38,14 +38,14 @@ useSeoMeta({ ogSiteName: seo?.siteName, ogUrl: 'https://docs.zksync.io/', ogImage: 'https://docs.zksync.io/social-card.png', - ogImageAlt: 'zkSync — Accelerating the mass adoption of crypto for personal sovereignty.', + ogImageAlt: 'ZKsync — Accelerating the mass adoption of crypto for personal sovereignty.', ogDescription: - 'zkSync Docs bring you all information you need about our protocol, APIs, SDKs, ZK Stack, and hyperchains. Start with our guides and tutorials, or go deep into our architecture and protocol specification.', + 'ZKsync Docs bring you all information you need about our protocol, APIs, SDKs, ZK Stack, and hyperchains. Start with our guides and tutorials, or go deep into our architecture and protocol specification.', twitterImage: 'https://docs.zksync.io/social-card.png', twitterCard: 'summary_large_image', twitterSite: '@zksync', twitterCreator: '@the_matter_labs', - twitterImageAlt: 'zkSync — Accelerating the mass adoption of crypto for personal sovereignty.', + twitterImageAlt: 'ZKsync — Accelerating the mass adoption of crypto for personal sovereignty.', }); provide('navigation', navigation); diff --git a/components/content/NetworkAdder.vue b/components/content/NetworkAdder.vue index 22d435d2..78a54d15 100644 --- a/components/content/NetworkAdder.vue +++ b/components/content/NetworkAdder.vue @@ -3,7 +3,7 @@ const props = defineProps({ network: { type: String, required: true }, }); -const chainName = props.network === 'mainnet' ? 'zkSync Era Mainnet' : 'zkSync Sepolia Testnet'; +const chainName = props.network === 'mainnet' ? 'ZKsync Era Mainnet' : 'ZKsync Sepolia Testnet'; function addNetwork() { const config = { @@ -40,7 +40,7 @@ function addNetwork() { type="button" icon="i-custom-metamask-logo" size="xl" - :variant="chainName === 'zkSync Era Mainnet' ? 'solid' : 'soft'" + :variant="chainName === 'ZKsync Era Mainnet' ? 'solid' : 'soft'" @click="addNetwork" > Add {{ chainName }} diff --git a/content/00.build/00.zksync-101/1.zksync-overview.md b/content/00.build/00.zksync-101/1.zksync-overview.md index ad22b59f..9e9526a0 100644 --- a/content/00.build/00.zksync-101/1.zksync-overview.md +++ b/content/00.build/00.zksync-101/1.zksync-overview.md @@ -1,22 +1,22 @@ --- -title: zkSync overview -description: A quick overview of what is zkSync +title: ZKsync overview +description: A quick overview of what is ZKsync --- -## What is zkSync? +## What is ZKsync? -**zkSync Era** is a Layer 2 **[ZK +**ZKsync Era** is a Layer 2 **[ZK rollup](https://docs.zksync.io/build/developer-reference/rollups.html#what-are-zk-rollups)**, a trustless protocol that -uses cryptographic validity proofs to provide scalable and low-cost transactions on Ethereum. In zkSync Era, computation +uses cryptographic validity proofs to provide scalable and low-cost transactions on Ethereum. In ZKsync Era, computation is performed off-chain and most data is stored off-chain as well. Transactions are bundled into batches before generating a validity proof. As all validity proofs are proven on the Ethereum mainchain, users enjoy the same security level as in Ethereum. -zkSync Era is made to look and feel like Ethereum, but with a higher throughput and lower fees. Just like on Ethereum, +ZKsync Era is made to look and feel like Ethereum, but with a higher throughput and lower fees. Just like on Ethereum, smart contracts are written in Solidity/Vyper and can be called using the same clients as the other EVM-compatible chains. -You don't need to register a separate private key before using it; zkSync supports existing Ethereum wallets out of the +You don't need to register a separate private key before using it; ZKsync supports existing Ethereum wallets out of the box. ## Main features @@ -33,11 +33,11 @@ over transaction inputs. :check-icon Native account abstraction with improvements over EIP4337 (implemented in Ethereum and other rollups). -You can find [more information about zkSync Era in l2beat](https://l2beat.com/scaling/projects/zksync-era#stage). +You can find [more information about ZKsync Era in l2beat](https://l2beat.com/scaling/projects/zksync-era#stage). ## Developer experience -zkSync Era was built to provide a similar developer experience as Ethereum. +ZKsync Era was built to provide a similar developer experience as Ethereum. :check-icon Smart contracts can be written in Solidity or Vyper. @@ -57,7 +57,7 @@ locally](https://docs.zksync.io/build/test-and-debug/getting-started.html)**. ## User experience -Interacting with applications built on zkSync Era is seamless, cheap and fast. +Interacting with applications built on ZKsync Era is seamless, cheap and fast. - Transactions have instant confirmations and fast finality on L1. - Transaction fees are extremely low (see [average transaction costs @@ -68,6 +68,6 @@ Interacting with applications built on zkSync Era is seamless, cheap and fast. ## Get started -- Follow [this guide to add the zkSync network to your wallet](connect-zksync). +- Follow [this guide to add the ZKsync network to your wallet](connect-zksync). - Get [testnet funds from one of the faucets](/ecosystem/network-faucets) -- Deploy your first smart contract to zkSync Era in the **[quickstart](quickstart)**. +- Deploy your first smart contract to ZKsync Era in the **[quickstart](quickstart)**. diff --git a/content/00.build/00.zksync-101/2.connect-zksync.md b/content/00.build/00.zksync-101/2.connect-zksync.md index 6d2b4c1b..d2241667 100644 --- a/content/00.build/00.zksync-101/2.connect-zksync.md +++ b/content/00.build/00.zksync-101/2.connect-zksync.md @@ -1,26 +1,26 @@ --- -title: Connect to zkSync -description: Step-by-step guide to connect your wallet to zkSync. +title: Connect to ZKsync +description: Step-by-step guide to connect your wallet to ZKsync. --- -## Add zkSync Era to your wallet +## Add ZKsync Era to your wallet -You can add zkSync Era to your wallet using the buttons below: +You can add ZKsync Era to your wallet using the buttons below: :network-adder{ network="mainnet" } :network-adder{ network="testnet" } ### Manual settings -To manually add zkSync Era as a custom network in your wallet, follow these steps: +To manually add ZKsync Era as a custom network in your wallet, follow these steps: 1. Find the “Add Network” option in your wallet (in Metamask, you can find this in the networks dropdown). 2. Click “Add Network" -3. Fill in the following details for the zkSync Era network you want to add: +3. Fill in the following details for the ZKsync Era network you want to add: #### Mainnet network details -- Network Name: `zkSync Era Mainnet` +- Network Name: `ZKsync Era Mainnet` - RPC URL: `https://mainnet.era.zksync.io` - Chain ID: `324` - Currency Symbol: `ETH` @@ -29,14 +29,14 @@ To manually add zkSync Era as a custom network in your wallet, follow these step #### Sepolia testnet network details -- Network Name: `zkSync Era Sepolia Testnet` +- Network Name: `ZKsync Era Sepolia Testnet` - RPC URL: `https://sepolia.era.zksync.dev` - Chain ID: `300` - Currency Symbol: `ETH` - Block Explorer URL: `https://sepolia.explorer.zksync.io/` - WebSocket URL: `wss://sepolia.era.zksync.dev/ws` -Click on "Save" to add the zkSync Era network to your wallet. +Click on "Save" to add the ZKsync Era network to your wallet. ## How to get started? diff --git a/content/00.build/00.zksync-101/3.quickstart.md b/content/00.build/00.zksync-101/3.quickstart.md index 145f20e1..69424926 100644 --- a/content/00.build/00.zksync-101/3.quickstart.md +++ b/content/00.build/00.zksync-101/3.quickstart.md @@ -1,10 +1,10 @@ --- title: Deploy your first contract -description: Deploy a smart contract to zkSync from your browser in under 5 minutes +description: Deploy a smart contract to ZKsync from your browser in under 5 minutes --- -This tutorial shows you how to deploy and interact with a smart contract on zkSync Era in less than 5 minutes. -It will help you get familiar with the zkSync smart contract development and deployment process using different tools. +This tutorial shows you how to deploy and interact with a smart contract on ZKsync Era in less than 5 minutes. +It will help you get familiar with the ZKsync smart contract development and deployment process using different tools. This is what we're going to do: @@ -17,7 +17,7 @@ This is what we're going to do: ## Prerequisites 1. Before you start, make sure that -[you’ve configured the zkSync Sepolia tesnet in your browser wallet by following the instructions here](connect-zksync). +[you’ve configured the %%zk_testnet_name%% in your browser wallet by following the instructions here](connect-zksync). 1. In addition, fund your wallet with %%zk_testnet_name%% ETH using [one of the available faucets](/ecosystem/network-faucets). ## Review the smart contract code @@ -37,7 +37,7 @@ contract ZeekSecretMessages { constructor() { // Zeek initializes the contract with a welcome message - emit MessageReceived("Zeek welcomes you to zkSync!"); + emit MessageReceived("Zeek welcomes you to ZKsync!"); } // Function to send a "secret" message to Zeek @@ -62,7 +62,7 @@ The Solidity smart contract contains two functions: - `getTotalMessages` returns the number of messages stored in the smart contract. ::callout{icon="i-heroicons-light-bulb"} -zkSync Era is [EVM compatible](/build/resources/glossary#evm-compatible). +ZKsync Era is [EVM compatible](/build/resources/glossary#evm-compatible). You can write smart contracts with Solidity or Vyper and use existing popular libraries like OpenZeppelin. :: @@ -87,11 +87,11 @@ items: [{ Copy the smart contract address from Atlas/Remix and search it via the [%%zk_testnet_name%%%%zk_testnet_block_explorer_url%% explorer](%%zk_testnet_block_explorer_url%%). You’ll see the contract has a transaction from the message we just sent. -![Contract in zkSync explorer](/images/101-quickstart/101-contract-deployed.png) +![Contract in ZKsync explorer](/images/101-quickstart/101-contract-deployed.png) Click on the transaction hash link to check all its details, like timestamp, the account that send it, transaction fee -etc. The status will be “Processed” on zkSync and “Sending” on Ethereum. [Learn more about the transaction lifecycle on -zkSync](/zk-stack/concepts/transaction-lifecycle). +etc. The status will be “Processed” on ZKsync and “Sending” on Ethereum. [Learn more about the transaction lifecycle on +ZKsync](/zk-stack/concepts/transaction-lifecycle). In the “Contract” tab you’ll see the contract source code as Atlas and Remix automatically verified the contract for us. When a smart contract is verified in a block explorer, it means that the source code of the contract has been published @@ -100,22 +100,22 @@ code to understand its functions and intentions. Finally in the “Events” tab, you’ll see the replies from Zeek as these are emitted as events in our smart contract. -![Contract events in zkSync explorer](/images/101-quickstart/101-contract-events.png) +![Contract events in ZKsync explorer](/images/101-quickstart/101-contract-events.png) ZK is the endgame ✌️ ## Takeaways -- **EVM-compatibility**: zkSync Era is EVM-compatible and you can write smart contracts in Solidity or Vyper as in +- **EVM-compatibility**: ZKsync Era is EVM-compatible and you can write smart contracts in Solidity or Vyper as in Ethereum. -- **Custom compilers**: smart contracts deployed to zkSync Era must be compiled with the customs compilers: `zksolc` for +- **Custom compilers**: smart contracts deployed to ZKsync Era must be compiled with the customs compilers: `zksolc` for Solidity and `zkvyper` for Vyper. -- **Browser-based IDEs**: Existing tools like Atlas and Remix use zkSync custom compilers under the hood. +- **Browser-based IDEs**: Existing tools like Atlas and Remix use ZKsync custom compilers under the hood. ## Next steps -- Join the [zkSync developer community in Discord](https://join.zksync.dev/) where you can ask any questions about this tutorial in the #dev-101 +- Join the [ZKsync developer community in Discord](https://join.zksync.dev/) where you can ask any questions about this tutorial in the #dev-101 channel -- Continue learning by [deploying an ERC20 token to zkSync](erc20-token). +- Continue learning by [deploying an ERC20 token to ZKsync](erc20-token). - Join our :external-link{text="GitHub Discussions Community" href="%%zk_git_repo_zksync-developers%%/discussions/"} to - help other devs building on zkSync or share your project. + help other devs building on ZKsync or share your project. diff --git a/content/00.build/00.zksync-101/4.erc20-token.md b/content/00.build/00.zksync-101/4.erc20-token.md index 582212d5..2ac1a797 100644 --- a/content/00.build/00.zksync-101/4.erc20-token.md +++ b/content/00.build/00.zksync-101/4.erc20-token.md @@ -13,7 +13,7 @@ This is what we’re going to do: ## Prerequisites -Before you start, make sure that you’ve configured the zkSync Sepolia tesnet in your browser wallet by following the +Before you start, make sure that you’ve configured the %%zk_testnet_name%% in your browser wallet by following the instructions here. In addition, fund your wallet with testnet ETH on %%zk_testnet_name%%. @@ -34,12 +34,12 @@ items: [{ ## Takeaways -- **zkSync is EVM compatible** and supports existing smart contract libraries like OpenZeppelin -- **Use popular libraries like** `ethers` , `viem`, or `web3.js` to interact with smart contracts deployed on zkSync. +- **ZKsync is EVM compatible** and supports existing smart contract libraries like OpenZeppelin +- **Use popular libraries like** `ethers` , `viem`, or `web3.js` to interact with smart contracts deployed on ZKsync. ## Next steps -- Join the zkSync developer community in Discord where you can ask any questions about this tutorial in the #dev-101 +- Join the ZKsync developer community in Discord where you can ask any questions about this tutorial in the #dev-101 channel -- Continue learning by deploying an ERC20 token to zkSync Era. -- Join our GitHub Discussions community to help other devs building on zkSync or share your project. +- Continue learning by deploying an ERC20 token to ZKsync Era. +- Join our GitHub Discussions community to help other devs building on ZKsync or share your project. diff --git a/content/00.build/00.zksync-101/5.paymasters-introduction.md b/content/00.build/00.zksync-101/5.paymasters-introduction.md index 33e380ab..1eada93b 100644 --- a/content/00.build/00.zksync-101/5.paymasters-introduction.md +++ b/content/00.build/00.zksync-101/5.paymasters-introduction.md @@ -5,7 +5,7 @@ description: Learn about paymasters and use one to pay transaction fees with you This tutorial makes use of smart contracts deployed in the previous two tutorials, [Deploy your first contract](quickstart) and [Create an ERC20 token](erc20-token). This section introduces one of the custom features -of zkSync: native account abstraction and paymasters. +of ZKsync: native account abstraction and paymasters. In this tutorial we will: @@ -15,8 +15,7 @@ In this tutorial we will: :check-icon Use the testnet paymaster to pay transaction fees with our own ERC20 token. -Before you start, make sure that you’ve configured the zkSync Sepolia tesnet in your browser wallet by [following the2.connect-zksync.md2.connect-zksync.md -instructions here](2.connect-zksync.md). +Before you start, make sure that you’ve configured the %%zk_testnet_name%% in your browser wallet by [following the instructions here](/build/zksync-101/connect-zksync). ## What is a paymaster? @@ -35,7 +34,7 @@ Every paymaster has these two functions: ## Paymaster smart contract code -Although application developers are encouraged to create their own paymaster smart contract, zkSync provides a testnet +Although application developers are encouraged to create their own paymaster smart contract, ZKsync provides a testnet paymaster for convenience and testing purposes. ::callout{icon="i-heroicons-light-bulb"} @@ -171,7 +170,8 @@ items: [{ ## Takeaways -- Paymasters on zkSync allow any account to pay fees with ERC20 tokens or enable gasless transactions. +- Paymasters on ZKsync allow any account to pay fees with ERC20 tokens or enable gasless transactions. + - Paymasters are smart contracts that can have any validations and rules. - To send a transaction through a paymaster, we only need to include additional parameters in the transaction. @@ -180,4 +180,4 @@ items: [{ - Learn more about paymasters and native account abstraction in this section of the docs. - Browse different paymaster examples in [this open source repository](https://github.com/matter-labs/paymaster-examples). -- Continue learning by building a GoFundMe clone on zkSync. +- Continue learning by building a GoFundMe clone on ZKsync. diff --git a/content/00.build/00.zksync-101/_dir.yml b/content/00.build/00.zksync-101/_dir.yml index a409bec0..00a4bdd2 100644 --- a/content/00.build/00.zksync-101/_dir.yml +++ b/content/00.build/00.zksync-101/_dir.yml @@ -1 +1 @@ -title: zkSync 101 +title: ZKsync 101 diff --git a/content/00.build/00.zksync-101/_erc20_tutorial/_atlas_erc20_tutorial.md b/content/00.build/00.zksync-101/_erc20_tutorial/_atlas_erc20_tutorial.md index 29731e26..6c5da6c5 100644 --- a/content/00.build/00.zksync-101/_erc20_tutorial/_atlas_erc20_tutorial.md +++ b/content/00.build/00.zksync-101/_erc20_tutorial/_atlas_erc20_tutorial.md @@ -2,7 +2,7 @@ title: ERC20 token with Atlas --- ## Custom ERC20 token code - + ERC20 tokens are a standard for fungible tokens, which can be traded and represent a fixed value. You’ve used ERC20 tokens if you’ve transacted with USDC, DAI, USDT, LINK or UNI. @@ -29,7 +29,7 @@ contract TestToken is ERC20, Ownable, ERC20Burnable { ``` ::callout{icon="i-heroicons-light-bulb"} -zkSync is [EVM compatible](/build/resources/glossary#evm-compatible), so you can use existing popular libraries like OpenZeppelin. +ZKsync is [EVM compatible](/build/resources/glossary#evm-compatible), so you can use existing popular libraries like OpenZeppelin. :: The most important features are: @@ -52,12 +52,13 @@ directly from your browser. Click the button below to open the project in Atlas. to="https://app.atlaszk.com/projects?template=https://github.com/uF4No/zksync-101-atlas&open=/contracts/TestToken.sol&chainId=300" target="_blank" label="Open smart contract in Atlas"} -You can see the contract in the Atlas code editor. In the right sidebar, make sure the selected network is “zkSync Sepolia -tesnet“ and click on **"Deploy"** to trigger the smart contract compilation and deployment. +You can see the contract in the Atlas code editor. In the right sidebar, +make sure the selected network is “%%zk_testnet_name%%“ +and click on **"Deploy"** to trigger the smart contract compilation and deployment. ::callout{icon="i-heroicons-light-bulb"} -Behind the scenes, Atlas is using the zkSync Era custom solidity compiler -(named `zksolc` ) to generate ZKEVM compatible bytecode. [Learn more about zkSync custom compilers](/zk-stack/components/compiler/toolchain/overview). +Behind the scenes, Atlas is using the ZKsync Era custom solidity compiler +(named `zksolc` ) to generate ZKEVM compatible bytecode. [Learn more about ZKsync custom compilers](/zk-stack/components/compiler/toolchain/overview). :: Once compiled sign the transaction with your wallet and wait until its processed. You’ll see the contract in the @@ -85,22 +86,22 @@ export async function main (atlas: AtlasEnvironment) { // initialise token contract with address, abi and signer const tokenContract= new ethers.Contract( - TOKEN_CONTRACT_ADDRESS, - TokenArtifact.TestToken.abi, + TOKEN_CONTRACT_ADDRESS, + TokenArtifact.TestToken.abi, wallet ); console.log("Minting tokens..."); const tx = await tokenContract.mint( - RECEIVER_WALLET, + RECEIVER_WALLET, ethers.utils.parseEther(TOKEN_AMOUNT) ); await tx.wait(); - + console.log("Success!"); console.log(` - The account ${RECEIVER_WALLET} now has + The account ${RECEIVER_WALLET} now has ${await tokenContract.balanceOf(RECEIVER_WALLET)} tokens` ); @@ -110,7 +111,7 @@ export async function main (atlas: AtlasEnvironment) { This scripts uses `ethers` to interact with the contract we’ve just deployed. ::callout{icon="i-heroicons-light-bulb"} -Existing libraries like `ethers` , `viem` and `web3.js` can be used to interact with smart contracts deployed on zkSync. +Existing libraries like `ethers` , `viem` and `web3.js` can be used to interact with smart contracts deployed on ZKsync. :: Fill the following variables: @@ -124,7 +125,7 @@ in the terminal. ![ERC20 interact script in Atlas](/images/101-erc20/atlas-erc20-interact.png) -To confirm the account has received the tokens, visit the zkSync Sepolia explorer and search the receiver wallet +To confirm the account has received the tokens, visit the %%zk_testnet_name%% explorer and search the receiver wallet address. You’ll see the new token balance in the assets table: ![ERC20 tokens in account balance](/images/101-erc20/erc20-tokens-minted.png) diff --git a/content/00.build/00.zksync-101/_erc20_tutorial/_remix_erc20_tutorial.md b/content/00.build/00.zksync-101/_erc20_tutorial/_remix_erc20_tutorial.md index 726f558e..596aa9e1 100644 --- a/content/00.build/00.zksync-101/_erc20_tutorial/_remix_erc20_tutorial.md +++ b/content/00.build/00.zksync-101/_erc20_tutorial/_remix_erc20_tutorial.md @@ -18,7 +18,7 @@ import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol"; contract TestToken is ERC20, Ownable, ERC20Burnable { - constructor(string memory name, string memory symbol) + constructor(string memory name, string memory symbol) ERC20(name, symbol) Ownable(msg.sender) { _mint(msg.sender, 100 * 10 ** decimals()); } @@ -30,7 +30,7 @@ contract TestToken is ERC20, Ownable, ERC20Burnable { ``` ::callout{icon="i-heroicons-light-bulb"} -zkSync is [EVM compatible](/build/resources/glossary#evm-compatible), so you can use existing popular libraries like OpenZeppelin. +ZKsync is [EVM compatible](/build/resources/glossary#evm-compatible), so you can use existing popular libraries like OpenZeppelin. :: The most important features are: @@ -62,8 +62,9 @@ To compile the contract, click on Compile TestToken.sol. If you get a popup mes **`ACCESS TO "WRITEFILE" OF "FILE MANAGER"`,** click on Accept. ::callout{icon="i-heroicons-light-bulb"} -Behind the scenes, Remix is using the zkSync Era custom solidity compiler (named `zksolc` ) to generate ZKEVM compatible -bytecode. [Learn more about zkSync custom compilers](/zk-stack/components/compiler/toolchain/overview). +Behind the scenes, Remix is using the ZKsync Era custom solidity compiler (named `zksolc` ) to generate ZKEVM compatible +bytecode. +[Learn more about ZKsync custom compilers](/zk-stack/components/compiler/toolchain/overview). :: We will use our wallet’s configured network to connect and deploy our smart contract so make sure your wallet is @@ -89,13 +90,13 @@ const TOKEN_AMOUNT = "123.55"; (async () => { try { - + // Note that the script needs the ABI which is generated from the compilation artifact. - // Make sure contract is compiled for zkSync and artifacts are generated + // Make sure contract is compiled for ZKsync and artifacts are generated const artifactsPath = `browser/contracts/artifacts/TestToken.json` // Change this for different path const metadata = JSON.parse(await remix.call('fileManager', 'getFile', artifactsPath)) - + // 'web3Provider' is a remix global variable object const signer = (new ethers.providers.Web3Provider(web3Provider)).getSigner(0) @@ -112,7 +113,7 @@ const TOKEN_AMOUNT = "123.55"; console.log("Success!"); const balance = await tokenContract.balanceOf(RECEIVER_WALLET) - + console.log(`The account ${RECEIVER_WALLET} now has ${balance} tokens`) } catch (e) { @@ -125,7 +126,7 @@ const TOKEN_AMOUNT = "123.55"; This scripts uses `ethers` to interact with the contract we’ve just deployed. ::callout{icon="i-heroicons-light-bulb"} -Existing libraries like `ethers` , `viem` and `web3.js` can be used to interact with smart contracts deployed on zkSync. +Existing libraries like `ethers` , `viem` and `web3.js` can be used to interact with smart contracts deployed on ZKsync. :: Fill the following variables: @@ -139,7 +140,7 @@ terminal. ![ERC20 interact script in Remix](/images/101-erc20/remix-erc20-interact.png) -To confirm the account has received the tokens, visit the zkSync Sepolia explorer and search the receiver wallet +To confirm the account has received the tokens, visit the %%zk_testnet_name%% explorer and search the receiver wallet address. You’ll see the new token balance in the assets table: ![ERC20 tokens in account balance](/images/101-erc20/erc20-tokens-minted.png) diff --git a/content/00.build/00.zksync-101/_quickstart/_atlas_deploy_contract.md b/content/00.build/00.zksync-101/_quickstart/_atlas_deploy_contract.md index d9179e74..d63352ea 100644 --- a/content/00.build/00.zksync-101/_quickstart/_atlas_deploy_contract.md +++ b/content/00.build/00.zksync-101/_quickstart/_atlas_deploy_contract.md @@ -7,13 +7,14 @@ directly from your browser. Click the button below to open the project in Atlas. :u-button{ icon="i-heroicons-code-bracket" size="xl" color="primary" variant="solid" :trailing="false" to="https://app.atlaszk.com/projects?template=https://github.com/uF4No/zksync-101-atlas&open=/contracts/ZeekSecretMessages.sol&chainId=300" target="_blank" label="Open smart contract in Atlas"} - -You can see the contract in the Atlas code editor. On the right side, make sure the selected network is “zkSync Sepolia -tesnet“ and click on **“Deploy”** to trigger the smart contract compilation and deployment. + +You can see the contract in the Atlas code editor. +On the right side, make sure the selected network is “%%zk_testnet_name%%“ +and click on **“Deploy”** to trigger the smart contract compilation and deployment. ::callout{icon="i-heroicons-light-bulb"} -Behind the scenes, Atlas is using the zkSync Era custom solidity compiler -(named `zksolc` ) to generate ZKEVM compatible bytecode. [Learn more about zkSync custom compilers](/zk-stack/components/compiler/toolchain/overview). +Behind the scenes, Atlas is using the ZKsync Era custom solidity compiler +(named `zksolc` ) to generate ZKEVM compatible bytecode. [Learn more about ZKsync custom compilers](/zk-stack/components/compiler/toolchain/overview). :: ![Contract in Atlas](/images/101-quickstart/101-atlas-contract.png) diff --git a/content/00.build/00.zksync-101/_quickstart/_remix_deploy_contract.md b/content/00.build/00.zksync-101/_quickstart/_remix_deploy_contract.md index 9a14bc44..eb5f60da 100644 --- a/content/00.build/00.zksync-101/_quickstart/_remix_deploy_contract.md +++ b/content/00.build/00.zksync-101/_quickstart/_remix_deploy_contract.md @@ -18,8 +18,8 @@ To compile the contract, click on Compile ZeeksSecretMessages.sol. If you get a access **`ACCESS TO "WRITEFILE" OF "FILE MANAGER"`,** click on Accept. ::callout{icon="i-heroicons-light-bulb"} -Behind the scenes, Remix is using the zkSync Era custom solidity compiler -(named `zksolc` ) to generate ZKEVM compatible bytecode. [Learn more about zkSync custom compilers](/zk-stack/components/compiler/toolchain/overview). +Behind the scenes, Remix is using the ZKsync Era custom solidity compiler +(named `zksolc`) to generate ZKSync VM compatible bytecode. [Learn more about ZKsync custom compilers](/zk-stack/components/compiler/toolchain/overview). :: We will use our wallet’s configured network to connect and deploy our smart contract so make sure your wallet is @@ -32,7 +32,7 @@ first contract to %%zk_testnet_name%%! Below the contract name you can find the address where the contract is deployed. The “Interact” section displays the forms to interact with the `getTotalMessages` and `sendMessage` functions. -![Remix interact zkSync contract](/images/101-quickstart/101-remix-interact.png) +![Remix interact ZKsync contract](/images/101-quickstart/101-remix-interact.png) Write a message in the form, click the “sendMessage” button and confirm the transaction in your wallet. Once processed, click the `getTotalMessages` and check the response in the terminal, which should be `1`. That means our contract is diff --git a/content/00.build/10.quick-start/00.index.md b/content/00.build/10.quick-start/00.index.md index 3c5c6198..70a6c20b 100644 --- a/content/00.build/10.quick-start/00.index.md +++ b/content/00.build/10.quick-start/00.index.md @@ -1,17 +1,17 @@ --- title: Getting Started -description: Learn to build and deploy smart contracts on zkSync Era. +description: Learn to build and deploy smart contracts on ZKsync Era. --- -Welcome to the Quickstart Guide for deploying smart contracts on zkSync! +Welcome to the Quickstart Guide for deploying smart contracts on ZKsync! In this guide, we'll walk you through the process of creating and deploying a simple smart contract that creates a crowdfunding campaign for Zeek. By the end of the series, you will learn integral pieces that will -help you become a great developer on zkSync! You will learn how to: +help you become a great developer on ZKsync! You will learn how to: :check-icon Initialize a new project with zksync-cli. -:check-icon Deploy contracts on zkSync Era using Hardhat or Foundry. +:check-icon Deploy contracts on ZKsync Era using Hardhat or Foundry. :check-icon Test your contracts with Hardhat or Foundry. @@ -23,7 +23,7 @@ help you become a great developer on zkSync! You will learn how to: ## Install zksync-cli -Our Quickstart series utilizes the `zksync-cli` to help you develop and interact with zkSync from your local machine. +Our Quickstart series utilizes the `zksync-cli` to help you develop and interact with ZKsync from your local machine. @@ -55,7 +55,7 @@ This era local node allows for quicker testing and debugging processes without i The era local node will need Docker to run locally on your machine. Download the appropriate version from the [Docker website](https://docs.docker.com/engine/install/). -#### Run a local zkSync Era node +#### Run a local ZKsync Era node Run the following command in your terminal: @@ -63,13 +63,13 @@ Run the following command in your terminal: zksync-cli dev start ``` -Choose "In memory node" to deploy a local zkSync Era node in a Docker container. +Choose "In memory node" to deploy a local ZKsync Era node in a Docker container. The local era node will also include pre-configured rich wallets for use, -Your local zkSync Era node is accessible at **[http://127.0.0.1:8011](http://127.0.0.1:8011/)**, ready for deployment or testing purposes. +Your local ZKsync Era node is accessible at **[http://127.0.0.1:8011](http://127.0.0.1:8011/)**, ready for deployment or testing purposes. Leave this terminal open and running as you build your projects. When you are done running your local Era node, you can stop it with `Ctrl+C`. @@ -86,9 +86,9 @@ each of the guides. ### Install foundry-zksync If you choose to use Foundry for the Quick Start series, you will need to -install the `foundry-zksync` tool. This tool is a specialized fork of Foundry, tailored for zkSync. -It extends Foundry's capabilities for Ethereum app development to support zkSync, -allowing for the compilation, deployment, testing, and interaction with smart contracts on zkSync. +install the `foundry-zksync` tool. This tool is a specialized fork of Foundry, tailored for ZKsync. +It extends Foundry's capabilities for Ethereum app development to support ZKsync, +allowing for the compilation, deployment, testing, and interaction with smart contracts on ZKsync. ::callout{icon="i-heroicons-information-circle-16-solid" color="amber"} `foundry-zksync` is still in an alpha stage, so some features might not be fully supported @@ -128,13 +128,13 @@ If you did not set up a local era node for development and plan to use %%zk_test 1. Obtaining Testnet ETH: - Use the [LearnWeb3 faucet](https://learnweb3.io/faucets/zksync_sepolia/) - to directly receive testnet ETH on zkSync Sepolia. + to directly receive testnet ETH on ZKsync Sepolia. - Alternatively, acquire SepoliaETH from [recommended faucets](https://www.notion.so/tooling/network-faucets.md) and - transfer it to the %%zk_testnet_name%% via the [zkSync bridge](https://portal.zksync.io/bridge/?network=sepolia). + transfer it to the %%zk_testnet_name%% via the [ZKsync bridge](https://portal.zksync.io/bridge/?network=sepolia). 1. Verify your balance: - - Check your wallet's balance using the [zkSync Sepolia explorer](https://sepolia.explorer.zksync.io/). + - Check your wallet's balance using the [ZKsync Sepolia explorer](https://sepolia.explorer.zksync.io/). --- @@ -163,9 +163,9 @@ To deploy contracts, you'll need to securely add your wallet's private key to th ## Next Steps -You should now have a fully working local environment to build new projects on zkSync! +You should now have a fully working local environment to build new projects on ZKsync! -- Continue to [Hello zkSync!](/build/quick-start/hello-zksync) to begin the series on building a crowdfunding campaign for Zeek. +- Continue to [Hello ZKsync!](/build/quick-start/hello-zksync) to begin the series on building a crowdfunding campaign for Zeek. -- This setup provides you everything you need to build in zkSync. +- This setup provides you everything you need to build in ZKsync. You can skip on to creating your own projects using `zksync-cli` with your fully set up local dev environment. diff --git a/content/00.build/10.quick-start/10.hello-zksync.md b/content/00.build/10.quick-start/10.hello-zksync.md index e685e496..58fed258 100644 --- a/content/00.build/10.quick-start/10.hello-zksync.md +++ b/content/00.build/10.quick-start/10.hello-zksync.md @@ -1,28 +1,28 @@ --- -title: Hello zkSync! -description: Learn to deploy smart contracts efficiently in the zkSync environment. +title: Hello ZKsync! +description: Learn to deploy smart contracts efficiently in the ZKsync environment. --- -Welcome to the Quickstart guide for deploying smart contracts on zkSync! In this series, we'll walk you through the process +Welcome to the Quickstart guide for deploying smart contracts on ZKsync! In this series, we'll walk you through the process of creating and deploying a simple smart contract that creates a crowdfunding campaign for Zeek. In this section you will learn the following: -:check-icon Initialize a new project with zkSync-cli. +:check-icon Initialize a new project with zksync-cli. :check-icon Craft a smart contract to fund Zeek's latest adventure. -:check-icon Deploy the contract on the zkSync Era using your choice of Hardhat or Foundry. +:check-icon Deploy the contract on the ZKsync Era using your choice of Hardhat or Foundry. -Let's dive in and start your developer journey on zkSync! +Let's dive in and start your developer journey on ZKsync! --- ## Prerequisites This Quickstart series requires some initial setup of tools to elevate your -development experience building for zkSync. +development experience building for ZKsync. Make sure to go through the setup provided in the initial [Getting Started](/build/quick-start) section. -Select the framework you want to get started using zkSync Era with. +Select the framework you want to get started using ZKsync Era with. ::content-switcher --- @@ -38,21 +38,21 @@ items: [{ ## Takeaways -- **EVM Compatibility:** zkSync is EVM compatible and you can write smart contracts in Solidity or Vyper. -- **Custom Compilation:** Contracts deployed to zkSync are compiled using `zksolc` or `zkvyper` as -they generate a special bytecode for zkSync's ZKEVM. -- **Development Tools:** zkSync supports your favorite development toolkit Hardhat and Foundry. +- **EVM Compatibility:** ZKsync is EVM compatible and you can write smart contracts in Solidity or Vyper. +- **Custom Compilation:** Contracts deployed to ZKsync are compiled using `zksolc` or `zkvyper` as +they generate a special bytecode for ZKsync's ZKEVM. +- **Development Tools:** ZKsync supports your favorite development toolkit Hardhat and Foundry. ## Next steps -Having successfully deployed your first contract on zkSync, you're well on your way to becoming -a proficient zkSync developer. To expand your expertise: +Having successfully deployed your first contract on ZKsync, you're well on your way to becoming +a proficient ZKsync developer. To expand your expertise: - **Explore Contract Factories:** Enhance your project by building a contract factory for the `CrowdfundingCampaign` contract in the [next guide](/build/quick-start/contract-factory). This will allow you to efficiently manage multiple crowdfunding campaigns, each with its own unique parameters. -- **Dive Deeper into zkSync Features:** Investigate advanced zkSync features such as account abstraction, +- **Dive Deeper into ZKsync Features:** Investigate advanced ZKsync features such as account abstraction, and paymasters. -- **Join the Community:** Engage with the zkSync developer community through forums, +- **Join the Community:** Engage with the ZKsync developer community through forums, Discord channels, Dev Discussions, or GitHub repositories. Share your experiences, ask questions, and collaborate on projects. diff --git a/content/00.build/10.quick-start/20.contract-factory.md b/content/00.build/10.quick-start/20.contract-factory.md index b9c23849..31ee105e 100644 --- a/content/00.build/10.quick-start/20.contract-factory.md +++ b/content/00.build/10.quick-start/20.contract-factory.md @@ -1,17 +1,17 @@ --- title: Contract Factory -description: Learn how to deploy and manage multiple smart contracts on zkSync using a contract factory. +description: Learn how to deploy and manage multiple smart contracts on ZKsync using a contract factory. --- This second Quickstart installment advances from your introductory exploration of smart contract deployment to dive into the utility of contract factories. Through this guide, you'll learn how to streamline the deployment of multiple crowdfunding campaigns using a single contract factory, leveraging the foundational `CrowdfundingCampaign` contract in the first guide. -:check-icon Advance your zkSync development journey with contract factories. +:check-icon Advance your ZKsync development journey with contract factories. :check-icon Construct a contract factory to create multiple crowdfunding campaigns. -:check-icon Seamlessly deploy your contract factory on zkSync Era, using either Hardhat or Foundry. +:check-icon Seamlessly deploy your contract factory on ZKsync Era, using either Hardhat or Foundry. Let's explore the efficiency and scalability that contract factories bring. @@ -26,7 +26,7 @@ numerous similar contracts efficiently. ## Setup the project -Select the framework you want to get started using zkSync Era with. +Select the framework you want to get started using ZKsync Era with. ::content-switcher --- @@ -53,15 +53,15 @@ off-chain monitoring and interaction. ## Next steps -With the contract factory in your zkSync development arsenal, you're set to elevate +With the contract factory in your ZKsync development arsenal, you're set to elevate your smart contract projects. Here's how you can further your journey: - **Contract Testing:** Progress to the next guide focused on testing your contracts. Ensuring the reliability and security of your `CrowdfundingCampaign` through comprehensive tests is critical. -- **Advanced zkSync Integrations:** Explore deeper into zkSync's ecosystem by +- **Advanced ZKsync Integrations:** Explore deeper into ZKsync's ecosystem by implementing features like account abstraction and paymasters to enhance user experience and contract flexibility. -- **Community Engagement and Contribution:** Join the vibrant zkSync community. +- **Community Engagement and Contribution:** Join the vibrant ZKsync community. Participate in forums, Discord, or GitHub discussions. Sharing insights, asking queries, -and contributing can enrich the ecosystem and your understanding of zkSync. +and contributing can enrich the ecosystem and your understanding of ZKsync. diff --git a/content/00.build/10.quick-start/30.testing.md b/content/00.build/10.quick-start/30.testing.md index 166a3136..c5c3bd43 100644 --- a/content/00.build/10.quick-start/30.testing.md +++ b/content/00.build/10.quick-start/30.testing.md @@ -1,21 +1,21 @@ --- title: Testing -description: Discover how to effectively test smart contracts on zkSync Era ecosystem. +description: Discover how to effectively test smart contracts on ZKsync Era ecosystem. --- -Welcome back to our Quickstart Series, your fast-track to zkSync development! In this +Welcome back to our Quickstart Series, your fast-track to ZKsync development! In this third guide, we transition from deploying and managing contracts to the critical phase of testing. This guide will walk you through the steps to ensure your `CrowdfundingCampaign` contracts, introduced in our first guide and efficiently deployed through contract factories in the second, work flawlessly. -:check-icon Elevate your zkSync toolkit with robust contract testing techniques. +:check-icon Elevate your ZKsync toolkit with robust contract testing techniques. :check-icon Craft comprehensive tests for your `CrowdfundingCampaign` to ensure reliability and security. :check-icon Use Hardhat or Foundry to write and run tests, ensuring your campaigns are ready. -Dive into the world of smart contract testing and solidify the foundation of your zkSync projects. +Dive into the world of smart contract testing and solidify the foundation of your ZKsync projects. ## Setup the project @@ -34,7 +34,7 @@ items: [{ ## Takeaways - **Testing**: Understanding contract testing is important for ensuring the reliability and security of your smart contracts -on zkSync. Proper testing safeguards against unforeseen errors and vulnerabilities. +on ZKsync. Proper testing safeguards against unforeseen errors and vulnerabilities. - **Comprehensive Coverage**: Achieving comprehensive test coverage, including both positive and negative testing scenarios, is essential for a robust smart contract. This guide emphasized the `contribute` method, but testing should encompass all aspects of your contract. @@ -44,15 +44,15 @@ that enhance the testing process. ## Next Steps -With a solid foundation in contract testing, you're well-equipped to advance your zkSync +With a solid foundation in contract testing, you're well-equipped to advance your ZKsync development journey. Consider the following steps to further your expertise: - **Upgradeability**: Delve into the [next guide](/build/quick-start/upgrading) focusing on contract upgradability. Learning to make your contracts upgradeable will enable you to update and improve your smart contracts over time without losing state or funds. -- **Advanced zkSync Integrations:** Explore deeper into zkSync's ecosystem by +- **Advanced ZKsync Integrations:** Explore deeper into ZKsync's ecosystem by implementing features like account abstraction and paymasters to enhance user experience and contract flexibility. -- **Community Engagement and Contribution:** Join the vibrant zkSync community. +- **Community Engagement and Contribution:** Join the vibrant ZKsync community. Participate in forums, Discord, or GitHub discussions. Sharing insights, asking queries, -and contributing can enrich the ecosystem and your understanding of zkSync. +and contributing can enrich the ecosystem and your understanding of ZKsync. diff --git a/content/00.build/10.quick-start/40.upgrading.md b/content/00.build/10.quick-start/40.upgrading.md index 1e653fc9..aa26a900 100644 --- a/content/00.build/10.quick-start/40.upgrading.md +++ b/content/00.build/10.quick-start/40.upgrading.md @@ -1,19 +1,19 @@ --- title: Upgradability -description: Learn to make smart contracts upgradeable within the zkSync ecosystem. +description: Learn to make smart contracts upgradeable within the ZKsync ecosystem. --- In this fourth installment, we embark on a journey through contract upgradability, an important aspect for maintaining and enhancing smart contracts over time. This guide will lead you through the strategies and practices for making the `CrowdfundingCampaign` contract **upgradeable**. -:check-icon Harness advanced techniques for contract upgradability in zkSync. +:check-icon Harness advanced techniques for contract upgradability in ZKsync. :check-icon Implement upgradeable patterns for the `CrowdfundingCampaign` to ensure long-term adaptability and improvement. -:check-icon Leverage tools and best practices in zkSync to facilitate seamless contract upgrades. +:check-icon Leverage tools and best practices in ZKsync to facilitate seamless contract upgrades. -Begin to understand smart contract evolution and empower your zkSync applications with the +Begin to understand smart contract evolution and empower your ZKsync applications with the flexibility of upgradability. Select your preferred upgrade mechanism: @@ -49,9 +49,9 @@ functionalities evolve. This approach provides a resilient framework for your dA - **Exploring Paymasters:** Continue on to the next guide focused on [using paymasters](/build/quick-start/paymaster) with your smart contracts. Paymasters abstract gas payments in transactions, offering new models for transaction fee management and enhancing user experience in dApps. -- **Advanced zkSync Integrations:** Explore deeper into zkSync's ecosystem by +- **Advanced ZKsync Integrations:** Explore deeper into ZKsync's ecosystem by implementing features like account abstraction and paymasters to enhance user experience and contract flexibility. -- **Community Engagement and Contribution:** Join the vibrant zkSync community. +- **Community Engagement and Contribution:** Join the vibrant ZKsync community. Participate in forums, Discord, or GitHub discussions. Sharing insights, asking queries, -and contributing can enrich the ecosystem and your understanding of zkSync. +and contributing can enrich the ecosystem and your understanding of ZKsync. diff --git a/content/00.build/10.quick-start/50.paymaster.md b/content/00.build/10.quick-start/50.paymaster.md index f25d2a04..367647c6 100644 --- a/content/00.build/10.quick-start/50.paymaster.md +++ b/content/00.build/10.quick-start/50.paymaster.md @@ -3,25 +3,25 @@ title: Paymaster description: Implement a paymaster flow into your project. --- -Welcome to the final part of our Quickstart Series on mastering zkSync development! +Welcome to the final part of our Quickstart Series on mastering ZKsync development! In this guide, we move beyond the basics of smart contract deployment and the creation of contract factories to explore the innovative concept of paymasters -in the zkSync ecosystem. This guide will illuminate the power of paymasters to revolutionize transaction +in the ZKsync ecosystem. This guide will illuminate the power of paymasters to revolutionize transaction fee management and enhance user experiences within your dApps. -:check-icon Delve deeper into zkSync development with the introduction of paymasters. +:check-icon Delve deeper into ZKsync development with the introduction of paymasters. :check-icon Learn how paymasters can cover transaction fees for your dApp users, enhancing accessibility and user experience. :check-icon Discover the flexibility of fee payment with paymasters, including the ability to pay -fees in ERC20 tokens on zkSync Era, using Hardhat or Foundry. +fees in ERC20 tokens on ZKsync Era, using Hardhat or Foundry. Embark on this journey to understand how paymasters can add a new layer of functionality and user-friendliness to your decentralized applications. ## What are Paymasters? -Paymasters in the zkSync ecosystem represent a groundbreaking approach to handling transaction fees. +Paymasters in the ZKsync ecosystem represent a groundbreaking approach to handling transaction fees. They are special accounts designed to subsidize transaction costs for other accounts, potentially making certain transactions free for end-users. This feature is particularly useful for dApp developers looking to improve their platform's accessibility and user experience by covering transaction fees on behalf of their users. @@ -41,13 +41,13 @@ fees, subject to user-approved limits. As we explore paymasters, remember that while they offer enhanced flexibility for fee management, their implementation should always prioritize security and user trust. This guide aims to equip you with the knowledge -to effectively incorporate paymasters into your zkSync projects, paving the way for more user-friendly and accessible dApps. +to effectively incorporate paymasters into your ZKsync projects, paving the way for more user-friendly and accessible dApps. --- ## Paymaster flow -Select the paymaster type you want to get started using zkSync Era with. +Select the paymaster type you want to get started using ZKsync Era with. ::content-switcher --- @@ -65,7 +65,7 @@ items: [{ - **Comprehensive Understanding of Paymaster Contracts:** This guide has provided a detailed look at both the `ApprovalFlowPaymaster` and the `GeneralPaymaster` contracts, illustrating how they manage transaction fees -in zkSync. These paymasters are pivotal in handling gas payments, offering a more accessible transaction +in ZKsync. These paymasters are pivotal in handling gas payments, offering a more accessible transaction experience for users. - **Flexibility and User Empowerment:** By covering the transaction fees through ERC20 tokens or general subsidies, these paymaster contracts offer significant flexibility and reduce the friction typically associated with on-chain @@ -79,6 +79,6 @@ and with different types validations, restrictions and enhancements. - **Develop a Front-End Interface:** Consider building a user interface that interacts with the paymaster contracts you have deployed. This will not only improve the usability of your contracts but also provide practical insights into how end-users interact with your dApps in real-world scenarios. -- **Community Engagement and Contribution:** Join the vibrant zkSync community. +- **Community Engagement and Contribution:** Join the vibrant ZKsync community. Participate in forums, Discord, or GitHub discussions. Sharing insights, asking queries, -and contributing can enrich the ecosystem and your understanding of zkSync. +and contributing can enrich the ecosystem and your understanding of ZKsync. diff --git a/content/00.build/10.quick-start/_deploy_factory/_foundry_deploy_contract_factory.md b/content/00.build/10.quick-start/_deploy_factory/_foundry_deploy_contract_factory.md index 0e233653..725bf61d 100644 --- a/content/00.build/10.quick-start/_deploy_factory/_foundry_deploy_contract_factory.md +++ b/content/00.build/10.quick-start/_deploy_factory/_foundry_deploy_contract_factory.md @@ -69,7 +69,7 @@ making it efficient to launch and manage multiple campaigns. ### Compile contract -Smart contracts deployed to zkSync must be compiled using our custom compiler. +Smart contracts deployed to ZKsync must be compiled using our custom compiler. For this particular guide we are making use of `zksolc`. To compile the contracts in the project, run the following command: @@ -87,7 +87,7 @@ of Solidity files compiled. [⠃] Compiling 3 files with 0.8.20 [⠊] Solc 0.8.20 finished in 336.48ms Compiler run successful! -Compiling contracts for zkSync Era with zksolc v1.4.0 +Compiling contracts for ZKsync Era with zksolc v1.4.0 ``` The compiled zkEVM artifacts will be located in the `/zkout` folder, and the solc diff --git a/content/00.build/10.quick-start/_deploy_factory/_hardhat_deploy_contract_factory.md b/content/00.build/10.quick-start/_deploy_factory/_hardhat_deploy_contract_factory.md index f631c436..dcee8943 100644 --- a/content/00.build/10.quick-start/_deploy_factory/_hardhat_deploy_contract_factory.md +++ b/content/00.build/10.quick-start/_deploy_factory/_hardhat_deploy_contract_factory.md @@ -1,7 +1,7 @@ --- title: Hardhat | Deploy Contract Factory --- - Run the following command in your terminal to initialize the project. @@ -98,7 +98,7 @@ Upon successful compilation, you'll receive output detailing the of Solidity files compiled. ```bash -Compiling contracts for zkSync Era with zksolc v1.4.0 and solc v0.8.17 +Compiling contracts for ZKsync Era with zksolc v1.4.0 and solc v0.8.17 Compiling 2 Solidity file Successfully compiled 2 Solidity file ``` @@ -205,7 +205,7 @@ Estimated deployment cost: 0.0002500236 ETH Requesting contract verification... Your verification ID is: 10097 -Contract successfully verified on zkSync block explorer! +Contract successfully verified on ZKsync block explorer! 🏭 CrowdfundingFactory address: 0xD084EF36f8F5353f70498cD84cb8D2B844C120a8 🚀 New CrowdfundingCampaign deployed at: 0x060B748eC3512795E94045c406CFd5877DD84e4D ✅ Deployment and campaign creation complete! diff --git a/content/00.build/10.quick-start/_hello-zksync/_foundry_deploy_contract.md b/content/00.build/10.quick-start/_hello-zksync/_foundry_deploy_contract.md index 1874d5cc..26f07768 100644 --- a/content/00.build/10.quick-start/_hello-zksync/_foundry_deploy_contract.md +++ b/content/00.build/10.quick-start/_hello-zksync/_foundry_deploy_contract.md @@ -77,7 +77,7 @@ Owned and deployed with a set funding goal, it features: - The `contribute` method to log funds, triggering `ContributionReceived` and `GoalReached` events. - The `withdrawFunds` method, allowing the owner to collect accumulated funds post-goal achievement. -Smart contracts deployed to zkSync must be compiled using our custom compiler. +Smart contracts deployed to ZKsync must be compiled using our custom compiler. For this particular guide we are making use of `zksolc`. To compile the contracts in the project, run the following command: @@ -95,7 +95,7 @@ of Solidity files compiled. [⠃] Compiling 2 files with 0.8.20 [⠊] Solc 0.8.20 finished in 736.48ms Compiler run successful! -Compiling contracts for zkSync Era with zksolc v1.4.0 +Compiling contracts for ZKsync Era with zksolc v1.4.0 ``` The compiled zkEVM artifacts will be located in the `/zkout` folder, and the solc artifacts will be diff --git a/content/00.build/10.quick-start/_hello-zksync/_hardhat_deploy_contract.md b/content/00.build/10.quick-start/_hello-zksync/_hardhat_deploy_contract.md index 8c7a7956..c0635671 100644 --- a/content/00.build/10.quick-start/_hello-zksync/_hardhat_deploy_contract.md +++ b/content/00.build/10.quick-start/_hello-zksync/_hardhat_deploy_contract.md @@ -4,7 +4,7 @@ title: Hardhat | Deploy Contract Run the following command in your terminal to initialize the project. - ```sh @@ -112,7 +112,7 @@ Upon successful compilation, you'll receive output detailing the of Solidity files compiled. ```bash -Compiling contracts for zkSync Era with zksolc v1.4.0 and solc v0.8.17 +Compiling contracts for ZKsync Era with zksolc v1.4.0 and solc v0.8.17 Compiling 1 Solidity file Successfully compiled 1 Solidity file ``` @@ -188,7 +188,7 @@ Estimated deployment cost: 0.000501 ETH Requesting contract verification... Your verification ID is: 10067 -Contract successfully verified on zkSync block explorer! +Contract successfully verified on ZKsync block explorer! ``` 🥳 Congratulations! Your smart contract is now deployed. 🚀 diff --git a/content/00.build/10.quick-start/_paymasters/_approval_paymaster_flow.md b/content/00.build/10.quick-start/_paymasters/_approval_paymaster_flow.md index 1164ae5d..38718bdc 100644 --- a/content/00.build/10.quick-start/_paymasters/_approval_paymaster_flow.md +++ b/content/00.build/10.quick-start/_paymasters/_approval_paymaster_flow.md @@ -1,9 +1,9 @@ --- title: Approval Paymaster -description: Learn to deploy contract factories in the zkSync environment. +description: Learn to deploy contract factories in the ZKsync environment. --- - Run the following command in your terminal to initialize the project. @@ -185,7 +185,7 @@ Upon successful compilation, you'll receive output detailing the of Solidity files compiled. ```bash -Compiling contracts for zkSync Era with zksolc v1.4.0 and solc v0.8.17 +Compiling contracts for ZKsync Era with zksolc v1.4.0 and solc v0.8.17 Compiling 1 Solidity file Successfully compiled 1 Solidity file ``` @@ -281,7 +281,7 @@ Estimated deployment cost: 0.0006278488 ETH Requesting contract verification... Your verification ID is: 10923 -Contract successfully verified on zkSync block explorer! +Contract successfully verified on ZKsync block explorer! Paymaster ETH balance is now 5000000000000000 ``` diff --git a/content/00.build/10.quick-start/_paymasters/_general_paymaster_flow.md b/content/00.build/10.quick-start/_paymasters/_general_paymaster_flow.md index 6c6f521c..ef0750b4 100644 --- a/content/00.build/10.quick-start/_paymasters/_general_paymaster_flow.md +++ b/content/00.build/10.quick-start/_paymasters/_general_paymaster_flow.md @@ -1,9 +1,9 @@ --- title: General Paymaster -description: Learn to deploy contract factories in the zkSync environment. +description: Learn to deploy contract factories in the ZKsync environment. --- - Run the following command in your terminal to initialize the project. @@ -154,7 +154,7 @@ Upon successful compilation, you'll receive output detailing the of Solidity files compiled. ```bash -Compiling contracts for zkSync Era with zksolc v1.4.0 and solc v0.8.17 +Compiling contracts for ZKsync Era with zksolc v1.4.0 and solc v0.8.17 Compiling 4 Solidity file Successfully compiled 4 Solidity file ``` @@ -248,7 +248,7 @@ Estimated deployment cost: 0.0004922112 ETH Requesting contract verification... Your verification ID is: 10634 -Contract successfully verified on zkSync block explorer! +Contract successfully verified on ZKsync block explorer! Paymaster ETH balance is now 5000000000000000 ``` diff --git a/content/00.build/10.quick-start/_testing/_foundry_contract_testing.md b/content/00.build/10.quick-start/_testing/_foundry_contract_testing.md index dcf115e5..e1046b05 100644 --- a/content/00.build/10.quick-start/_testing/_foundry_contract_testing.md +++ b/content/00.build/10.quick-start/_testing/_foundry_contract_testing.md @@ -85,7 +85,7 @@ reliability of the contract. ### Compile contract -Smart contracts deployed to zkSync must be compiled using our custom compiler. +Smart contracts deployed to ZKsync must be compiled using our custom compiler. For this particular guide we are making use of `zksolc`. To compile the contracts in the project, run the following command: @@ -103,7 +103,7 @@ of Solidity files compiled. [⠃] Compiling 22 files with 0.8.20 [⠊] Solc 0.8.20 finished in 736.48ms Compiler run successful! -Compiling contracts for zkSync Era with zksolc v1.4.0 +Compiling contracts for ZKsync Era with zksolc v1.4.0 ``` The compiled zkEVM artifacts will be located in the `/zkout` folder, and the solc artifacts will be diff --git a/content/00.build/10.quick-start/_testing/_hardhat_contract_testing.md b/content/00.build/10.quick-start/_testing/_hardhat_contract_testing.md index 8037252c..4d558bfc 100644 --- a/content/00.build/10.quick-start/_testing/_hardhat_contract_testing.md +++ b/content/00.build/10.quick-start/_testing/_hardhat_contract_testing.md @@ -1,7 +1,7 @@ --- title: Hardhat | Contract Testing --- - Run the following command in your terminal to initialize the project. @@ -44,7 +44,7 @@ which operates seamlessly within a separate process for an optimized testing wor If you have not set up your local era node yet, follow the instructions in the [Getting Started](/build/quick-start#setup-era-local-node-optional) section. Within the `hardhat.config.ts`, you'll observe the `zksync` flag set to `true` under the -`hardhat` network, indicating the integration with zkSync's testing environment. +`hardhat` network, indicating the integration with ZKsync's testing environment. ```ts hardhat: { @@ -155,7 +155,7 @@ Upon successful compilation, you'll receive output detailing the of Solidity files compiled. ```bash -Compiling contracts for zkSync Era with zksolc v1.4.0 and solc v0.8.17 +Compiling contracts for ZKsync Era with zksolc v1.4.0 and solc v0.8.17 Compiling 2 Solidity file Successfully compiled 2 Solidity file ``` diff --git a/content/00.build/10.quick-start/_upgrading/_beacon/_hardhat_beacon_contract_upgradability.md b/content/00.build/10.quick-start/_upgrading/_beacon/_hardhat_beacon_contract_upgradability.md index c6e951e3..ae4f761e 100644 --- a/content/00.build/10.quick-start/_upgrading/_beacon/_hardhat_beacon_contract_upgradability.md +++ b/content/00.build/10.quick-start/_upgrading/_beacon/_hardhat_beacon_contract_upgradability.md @@ -2,7 +2,7 @@ title: Hardhat | Contract Upgrading --- - Run the following command in your terminal to initialize the project. @@ -137,7 +137,7 @@ Upon successful compilation, you'll receive output detailing the of Solidity files compiled. ```bash -Compiling contracts for zkSync Era with zksolc v1.4.0 and solc v0.8.17 +Compiling contracts for ZKsync Era with zksolc v1.4.0 and solc v0.8.17 Compiling 3 Solidity file Successfully compiled 3 Solidity file ``` @@ -293,7 +293,7 @@ Upon successful compilation, you'll receive output detailing the of Solidity files compiled. ```bash -Compiling contracts for zkSync Era with zksolc v1.4.0 and solc v0.8.17 +Compiling contracts for ZKsync Era with zksolc v1.4.0 and solc v0.8.17 Compiling 4 Solidity file Successfully compiled 4 Solidity file ``` @@ -432,13 +432,13 @@ Upon successful verification, you'll receive output detailing the verification p ```bash Verifying implementation: 0x58BD5adb462CF087E5838d53aE38A3Fe0EAf7A31 Your verification ID is: 10547 -Contract successfully verified on zkSync block explorer! +Contract successfully verified on ZKsync block explorer! Verifying beacon: 0x26410Bebf5Df7398DCBC5f00e9EBBa0Ddf471C72 Your verification ID is: 10548 -Contract successfully verified on zkSync block explorer! +Contract successfully verified on ZKsync block explorer! Verifying beacon proxy: 0xD58FA9Fb362Abf69cFc68A3545fD227165DAc167 Your verification ID is: 10549 -Contract successfully verified on zkSync block explorer! +Contract successfully verified on ZKsync block explorer! ``` 🎉 Congratulations! The `CrowdfundingCampaignV2` contract has been upgraded and verified! diff --git a/content/00.build/10.quick-start/_upgrading/_transparent/_hardhat_transparent_contract_upgradability.md b/content/00.build/10.quick-start/_upgrading/_transparent/_hardhat_transparent_contract_upgradability.md index 86ca3223..76a2560e 100644 --- a/content/00.build/10.quick-start/_upgrading/_transparent/_hardhat_transparent_contract_upgradability.md +++ b/content/00.build/10.quick-start/_upgrading/_transparent/_hardhat_transparent_contract_upgradability.md @@ -1,7 +1,7 @@ --- title: Hardhat | Contract Upgrading --- - Run the following command in your terminal to initialize the project. @@ -141,7 +141,7 @@ Upon successful compilation, you'll receive output detailing the of Solidity files compiled. ```bash -Compiling contracts for zkSync Era with zksolc v1.4.0 and solc v0.8.17 +Compiling contracts for ZKsync Era with zksolc v1.4.0 and solc v0.8.17 Compiling 3 Solidity file Successfully compiled 3 Solidity file ``` @@ -177,7 +177,7 @@ export default async function (hre: HardhatRuntimeEnvironment) { **Key Components:** - **`hre.zkUpgrades.deployProxy`**: The method call to deploy the `CrowdfundingCampaign` -contract via a transparent proxy, leveraging Hardhat's runtime environment for zkSync upgrades. +contract via a transparent proxy, leveraging Hardhat's runtime environment for ZKsync upgrades. This ensures the deployed contract can be upgraded in the future without losing its state or funds. - **`initializer`**: Specifies the initialization method of the contract, `initialize` in this case, which is required for setting up the proxy's state upon deployment. @@ -287,7 +287,7 @@ Upon successful compilation, you'll receive output detailing the of Solidity files compiled. ```bash -Compiling contracts for zkSync Era with zksolc v1.4.0 and solc v0.8.17 +Compiling contracts for ZKsync Era with zksolc v1.4.0 and solc v0.8.17 Compiling 4 Solidity file Successfully compiled 4 Solidity file ``` @@ -415,13 +415,13 @@ Upon successful verification, you'll receive output detailing the verification p ```bash Verifying implementation: 0x58BD5adb462CF087E5838d53aE38A3Fe0EAf7A31 Your verification ID is: 10543 -Contract successfully verified on zkSync block explorer! +Contract successfully verified on ZKsync block explorer! Verifying proxy: 0x68E8533acE01019CB8D07Eca822369D5De71b74D Your verification ID is: 10544 -Contract successfully verified on zkSync block explorer! +Contract successfully verified on ZKsync block explorer! Verifying proxy admin: 0x05198D9f93cBDfa3e332776019115512d8e0c809 Your verification ID is: 10545 -Contract successfully verified on zkSync block explorer! +Contract successfully verified on ZKsync block explorer! ``` 🎉 Congratulations! The `CrowdfundingCampaignV2` contract has been upgraded and verified! diff --git a/content/00.build/10.quick-start/_upgrading/_uups/_hardhat_uups_contract_upgradability.md b/content/00.build/10.quick-start/_upgrading/_uups/_hardhat_uups_contract_upgradability.md index a3414594..374b32bd 100644 --- a/content/00.build/10.quick-start/_upgrading/_uups/_hardhat_uups_contract_upgradability.md +++ b/content/00.build/10.quick-start/_upgrading/_uups/_hardhat_uups_contract_upgradability.md @@ -2,7 +2,7 @@ title: Hardhat | Contract Upgrading --- - Run the following command in your terminal to initialize the project. @@ -147,7 +147,7 @@ Upon successful compilation, you'll receive output detailing the of Solidity files compiled. ```bash -Compiling contracts for zkSync Era with zksolc v1.4.0 and solc v0.8.17 +Compiling contracts for ZKsync Era with zksolc v1.4.0 and solc v0.8.17 Compiling 4 Solidity file Successfully compiled 4 Solidity file ``` @@ -297,7 +297,7 @@ Upon successful compilation, you'll receive output detailing the of Solidity files compiled. ```bash -Compiling contracts for zkSync Era with zksolc v1.4.0 and solc v0.8.17 +Compiling contracts for ZKsync Era with zksolc v1.4.0 and solc v0.8.17 Compiling 4 Solidity file Successfully compiled 4 Solidity file ``` @@ -417,10 +417,10 @@ Upon successful verification, you'll receive output detailing the verification p ```bash Verifying implementation: 0x9BE22706966D717d7b0C8aEC99A1a9d1b3bFeC50 Your verification ID is: 10618 -Contract successfully verified on zkSync block explorer! +Contract successfully verified on ZKsync block explorer! Verifying proxy: 0x91921fDb0F8942c18eCeE4E3896b369ca0650483 Your verification ID is: 10619 -Contract successfully verified on zkSync block explorer! +Contract successfully verified on ZKsync block explorer! ``` 🎉 Congratulations! The `CrowdfundingCampaignV2_UUPS` contract has been upgraded and verified! diff --git a/content/00.build/40.tooling/00.zksync-block-explorers.md b/content/00.build/40.tooling/00.zksync-block-explorers.md index 564eeeb9..9b6e6881 100644 --- a/content/00.build/40.tooling/00.zksync-block-explorers.md +++ b/content/00.build/40.tooling/00.zksync-block-explorers.md @@ -1,31 +1,31 @@ --- title: Block Explorers -description: Learn about the official and 3rd party resources for exploring the zkSync Era network. +description: Learn about the official and 3rd party resources for exploring the ZKsync Era network. --- -The [zkSync Era Block Explorer](%%zk_mainnet_block_explorer_url%%) -details comprehensive data about transactions, blocks, batches, wallets, tokens, and smart contracts on the zkSync Era network. +The [ZKsync Era Block Explorer](%%zk_mainnet_block_explorer_url%%) +details comprehensive data about transactions, blocks, batches, wallets, tokens, and smart contracts on the ZKsync Era network. ## Block Explorer API -We’ve developed the zkSync Era Block Explorer API for developers to access zkSync Era Block Explorer data directly via HTTP requests. +We’ve developed the ZKsync Era Block Explorer API for developers to access ZKsync Era Block Explorer data directly via HTTP requests. - [Mainnet Block Explorer API](%%zk_mainnet_block_explorer_url%%/docs) - [Testnet Block Explorer API](%%zk_testnet_block_explorer_url%%/docs) The API provides various endpoints for many use cases you might want in your app. It is compatible with [Etherscan API](https://docs.etherscan.io/), -which makes it easy to transition your existing apps to zkSync Era network. +which makes it easy to transition your existing apps to ZKsync Era network. -Feel free to contribute and create issues and feature requests in [zkSync Era Block Explorer GitHub repo](%%zk_git_repo_block-explorer%%). +Feel free to contribute and create issues and feature requests in [ZKsync Era Block Explorer GitHub repo](%%zk_git_repo_block-explorer%%). ## Other block explorers -A full list of zkSync block explorers can be found on the zkSync website's [Block Explorers page](https://zksync.io/explore#explorers). +A full list of ZKsync block explorers can be found on the ZKsync website's [Block Explorers page](https://zksync.io/explore#explorers). -### Etherscan - zkSync Era Explorer +### Etherscan - ZKsync Era Explorer -Etherscan allows you to explore and search the zkSync Era network +Etherscan allows you to explore and search the ZKsync Era network for transactions, addresses, tokens, prices and other activities taking place on the Network. - [Etherscan Mainnet](https://era.zksync.network/) @@ -33,21 +33,21 @@ for transactions, addresses, tokens, prices and other activities taking place on ### L2Scan -L2Scan is the open source block explorer for zkSync by the Unifra team +L2Scan is the open source block explorer for ZKsync by the Unifra team - [L2Scan Mainnet](https://zksync-era.l2scan.co/) - [L2Scan Testnet](https://zksync-era-sepolia.l2scan.co/) ### Blockscout -Blockscout is a blockchain explorer for inspecting, analyzing, and interacting with zkSync. +Blockscout is a blockchain explorer for inspecting, analyzing, and interacting with ZKsync. - [Blockscout Mainnet](https://zksync.blockscout.com/) - [Blockscout Testnet](https://zksync-sepolia.blockscout.com/) ### Hyperscan -Routescan's zkSync Explorer allows you to explore and search for transactions, addresses, tokens, prices and other activities taking place on zkSync. +Routescan's ZKsync Explorer allows you to explore and search for transactions, addresses, tokens, prices and other activities taking place on ZKsync. - [Hyperscan](https://hyperscan.xyz/) diff --git a/content/00.build/40.tooling/10.zksync-cli/00.index.md b/content/00.build/40.tooling/10.zksync-cli/00.index.md index b3a8a4e9..40d827d3 100644 --- a/content/00.build/40.tooling/10.zksync-cli/00.index.md +++ b/content/00.build/40.tooling/10.zksync-cli/00.index.md @@ -1,9 +1,9 @@ --- title: Getting Started -description: Learn how to use the powerful zkSync CLI tool for local development. +description: Learn how to use the powerful ZKsync CLI tool for local development. --- -The zkSync Command Line Interface (CLI) is a powerful tool designed to simplify the development and interaction with zkSync from a command shell. +The ZKsync Command Line Interface (CLI) is a powerful tool designed to simplify the development and interaction with ZKsync from a command shell. ## Usage @@ -31,21 +31,21 @@ npm update -g zksync-cli ## Available Commands -- [`dev`](zksync-cli/zksync-cli-dev): Start a local development environment with zkSync and Ethereum nodes. +- [`dev`](zksync-cli/zksync-cli-dev): Start a local development environment with ZKsync and Ethereum nodes. - [`create`](zksync-cli/zksync-cli-create): Scaffold new projects using templates for frontend, contracts, and scripting. -- [`contract`](zksync-cli/zksync-cli-contract): Read and write data to zkSync contracts without building UI. +- [`contract`](zksync-cli/zksync-cli-contract): Read and write data to ZKsync contracts without building UI. - [`transaction`](zksync-cli/zksync-cli-transaction): Fetch and display detailed information about a specific transaction. -- [`wallet`](zksync-cli/zksync-cli-wallet): Manage zkSync wallet assets, including transfers and balance checks. -- [`bridge`](zksync-cli/zksync-cli-bridge): Perform deposits and withdrawals between Ethereum and zkSync. +- [`wallet`](zksync-cli/zksync-cli-wallet): Manage ZKsync wallet assets, including transfers and balance checks. +- [`bridge`](zksync-cli/zksync-cli-bridge): Perform deposits and withdrawals between Ethereum and ZKsync. - [`config chains`](zksync-cli/zksync-cli-config-chains): Add or edit custom chains for flexible testing and development. ## Further Assistance Need help? Join our [GitHub Discussions](%%zk_git_repo_zksync-developers%%/discussions/) -to ask questions, share your experiences, and connect with the zkSync community. +to ask questions, share your experiences, and connect with the ZKsync community. ## Source Code -The [zkSync CLI project](%%zk_git_repo_zksync-cli%%) +The [ZKsync CLI project](%%zk_git_repo_zksync-cli%%) is open-source and available on GitHub under the MIT License. Feel free to contribute, report issues, or suggest new features to help us improve the tool for everyone. diff --git a/content/00.build/40.tooling/10.zksync-cli/01.troubleshooting.md b/content/00.build/40.tooling/10.zksync-cli/01.troubleshooting.md index 01923afe..528241b8 100644 --- a/content/00.build/40.tooling/10.zksync-cli/01.troubleshooting.md +++ b/content/00.build/40.tooling/10.zksync-cli/01.troubleshooting.md @@ -3,7 +3,7 @@ title: Troubleshooting description: Get help with issues related to zksync-cli. --- -Encountering issues with zkSync CLI? Here are some common problems and step-by-step recommendations for resolving them: +Encountering issues with ZKsync CLI? Here are some common problems and step-by-step recommendations for resolving them: ## `command not found: zksync-cli` @@ -16,7 +16,7 @@ have the package installed locally or were using the `npx zksync-cli` command. If you encounter an `unknown command` error, follow these steps: -a. **Check the zkSync CLI Version** +a. **Check the ZKsync CLI Version** - Run `zksync-cli --version` to check your current version. - Compare it with the latest version available on [npm](https://www.npmjs.com/package/zksync-cli). @@ -50,7 +50,7 @@ e. **Use the Latest Version** If `zksync-cli` is not running the latest version: - Refer to the [instructions for `unknown command` Error](/build/tooling/zksync-cli/troubleshooting#unknown-command-error) -above to check and update your zkSync CLI version. +above to check and update your ZKsync CLI version. --- diff --git a/content/00.build/40.tooling/10.zksync-cli/10.zksync-cli-dev.md b/content/00.build/40.tooling/10.zksync-cli/10.zksync-cli-dev.md index 5ff8e7a4..87f9fb57 100644 --- a/content/00.build/40.tooling/10.zksync-cli/10.zksync-cli-dev.md +++ b/content/00.build/40.tooling/10.zksync-cli/10.zksync-cli-dev.md @@ -4,7 +4,7 @@ description: Manage a local node with zksync-cli. --- Utilize `zksync-cli` to effortlessly initiate a local development environment. -Using the command, `zksync-cli dev start`, you can spin up local zkSync and Ethereum nodes, along with Block Explorer, Wallet, and Bridge +Using the command, `zksync-cli dev start`, you can spin up local ZKsync and Ethereum nodes, along with Block Explorer, Wallet, and Bridge for a seamless development experience. ## Prerequisites diff --git a/content/00.build/40.tooling/10.zksync-cli/20.zksync-cli-create.md b/content/00.build/40.tooling/10.zksync-cli/20.zksync-cli-create.md index 3bb009d9..900af702 100644 --- a/content/00.build/40.tooling/10.zksync-cli/20.zksync-cli-create.md +++ b/content/00.build/40.tooling/10.zksync-cli/20.zksync-cli-create.md @@ -4,7 +4,7 @@ description: Use the zksync-cli create command to streamline project setup. --- The `zksync-cli create` command streamlines project setup by offering templates for frontend development, smart contracts, -and scripting for zkSync, enabling rapid deployment and development. +and scripting for ZKsync, enabling rapid deployment and development. ### Prerequisites @@ -33,7 +33,7 @@ Utilize tools like Hardhat to streamline your workflow. ### Scripting -Enhance your project with Node.js scripting templates for automated interactions and advanced zkSync operations. +Enhance your project with Node.js scripting templates for automated interactions and advanced ZKsync operations. Includes examples of wallet or contract interactions using viem, ethers, or web3.js. [zksync-scripting-templates repo](%%zk_git_repo_zksync-scripting-templates%%#readme) diff --git a/content/00.build/40.tooling/10.zksync-cli/30.zksync-cli-contract.md b/content/00.build/40.tooling/10.zksync-cli/30.zksync-cli-contract.md index 0710e729..449e890a 100644 --- a/content/00.build/40.tooling/10.zksync-cli/30.zksync-cli-contract.md +++ b/content/00.build/40.tooling/10.zksync-cli/30.zksync-cli-contract.md @@ -3,7 +3,7 @@ title: zksync-cli contract description: Interact with contracts using the zksync-cli contract command. --- -The `zksync-cli contract` command comes with actions to read, write and encode smart contracts on zkSync. +The `zksync-cli contract` command comes with actions to read, write and encode smart contracts on ZKsync. These commands automate tasks such as method verification, ABI handling, output decoding, and proxy contract processing. ::callout{icon="i-heroicons-light-bulb" color="blue"} @@ -128,6 +128,7 @@ zksync-cli contract write 1. You will be prompted to select a chain, contract address, and method. ```bash + ? Chain to use: %%zk_testnet_name%% ? Contract address: 0x45E6dC995113fd3d1A3b1964493105B9AA9a9A42 ``` diff --git a/content/00.build/40.tooling/10.zksync-cli/40.zksync-cli-transaction.md b/content/00.build/40.tooling/10.zksync-cli/40.zksync-cli-transaction.md index f1fe62a5..c52bff58 100644 --- a/content/00.build/40.tooling/10.zksync-cli/40.zksync-cli-transaction.md +++ b/content/00.build/40.tooling/10.zksync-cli/40.zksync-cli-transaction.md @@ -80,7 +80,7 @@ zksync-cli transaction info --full ### Displaying raw JSON response -To view the raw JSON response from the zkSync node, use the `--raw` option: +To view the raw JSON response from the ZKsync node, use the `--raw` option: ```bash zksync-cli transaction info --raw diff --git a/content/00.build/40.tooling/10.zksync-cli/50.zksync-cli-wallet.md b/content/00.build/40.tooling/10.zksync-cli/50.zksync-cli-wallet.md index 6ff82343..cafef4b9 100644 --- a/content/00.build/40.tooling/10.zksync-cli/50.zksync-cli-wallet.md +++ b/content/00.build/40.tooling/10.zksync-cli/50.zksync-cli-wallet.md @@ -1,9 +1,9 @@ --- title: zksync-cli wallet -description: Manage your wallet on zkSync using zksync-cli. +description: Manage your wallet on ZKsync using zksync-cli. --- -Utilize the `zksync-cli wallet` command for an easy way to manage your assets on zkSync, like token transfers and balance check. +Utilize the `zksync-cli wallet` command for an easy way to manage your assets on ZKsync, like token transfers and balance check. ## Commands @@ -12,7 +12,7 @@ Utilize the `zksync-cli wallet` command for an easy way to manage your assets on ## Transfer -To transfer ETH between accounts on zkSync, use the following command: +To transfer ETH between accounts on ZKsync, use the following command: ```bash zksync-cli wallet transfer diff --git a/content/00.build/40.tooling/10.zksync-cli/60.zksync-cli-bridge.md b/content/00.build/40.tooling/10.zksync-cli/60.zksync-cli-bridge.md index 24453199..6d798ff1 100644 --- a/content/00.build/40.tooling/10.zksync-cli/60.zksync-cli-bridge.md +++ b/content/00.build/40.tooling/10.zksync-cli/60.zksync-cli-bridge.md @@ -3,7 +3,7 @@ title: zksync-cli bridge description: Facilitate bridge operations between L1 and L2 using zksync-cli. --- -Facilitate bridge operations between Ethereum (L1) and zkSync (L2), including token deposits, withdrawals, +Facilitate bridge operations between Ethereum (L1) and ZKsync (L2), including token deposits, withdrawals, and finalizing withdrawals with the `zksync-cli bridge` command. ## Commands diff --git a/content/00.build/40.tooling/10.zksync-cli/_dir.yml b/content/00.build/40.tooling/10.zksync-cli/_dir.yml index acdf43cf..aad1b98c 100644 --- a/content/00.build/40.tooling/10.zksync-cli/_dir.yml +++ b/content/00.build/40.tooling/10.zksync-cli/_dir.yml @@ -1 +1 @@ -title: zkSync CLI +title: ZKsync CLI diff --git a/content/00.build/40.tooling/20.hardhat/10.getting-started.md b/content/00.build/40.tooling/20.hardhat/10.getting-started.md index 4bdef4c0..93255f45 100644 --- a/content/00.build/40.tooling/20.hardhat/10.getting-started.md +++ b/content/00.build/40.tooling/20.hardhat/10.getting-started.md @@ -1,11 +1,11 @@ --- title: Getting started -description: Learn how to use HardHat with zkSync. +description: Learn how to use HardHat with ZKsync. --- ::callout{icon="i-heroicons-exclamation-triangle" color="amber"} If you are using Windows, we strongly recommend you use Windows Subsystem for Linux (also known as WSL 2). -You can use `Hardhat` and `Hardhat zkSync plugins` without it, but it will work better if you use it. +You can use `Hardhat` and `Hardhat ZKsync plugins` without it, but it will work better if you use it. To install Node.js using WSL 2, please read this [guide](https://learn.microsoft.com/en-us/windows/dev-environment/javascript/nodejs-on-wsl). :: @@ -13,7 +13,7 @@ To install Node.js using WSL 2, please read this [guide](https://learn.microsoft [Hardhat](https://hardhat.org) is an Ethereum development environment, designed for easy smart contract development. One of its most prominent features is extendability: you can easily add new plugins to your hardhat project. -zkSync Era has the following official plugins for Hardhat: +ZKsync Era has the following official plugins for Hardhat: - [@matterlabs/hardhat-zksync-solc](./hardhat-zksync-solc.md) - used to compile contracts written in Solidity. - [@matterlabs/hardhat-zksync-vyper](./hardhat-zksync-vyper.md) - used to compile contracts written in Vyper. @@ -22,14 +22,14 @@ zkSync Era has the following official plugins for Hardhat: - [@matterlabs/hardhat-zksync-verify-vyper](./hardhat-zksync-verify-vyper.md) - used to verify vyper smart contracts. - [@matterlabs/hardhat-zksync-upgradable](./hardhat-zksync-upgradable.md) - used to deploy, update, and verify proxy smart contracts. - [@matterlabs/hardhat-zksync-ethers](./hardhat-zksync-ethers.md) - wrapper around zksync-ethers with some extra Hardhat-specific functionality. -- [@matterlabs/hardhat-zksync-node](./hardhat-zksync-node.md) - used to run the zkSync era-test-node locally. +- [@matterlabs/hardhat-zksync-node](./hardhat-zksync-node.md) - used to run the ZKsync era-test-node locally. - [@matterlabs/hardhat-zksync](./hardhat-zksync.md) - used to access to all of the supported plugins and to use them as needed in your project. -Along with the official plugins, there are [other plugins from the community](/build/tooling/hardhat/other-plugins) that you can use with zkSync Era. +Along with the official plugins, there are [other plugins from the community](/build/tooling/hardhat/other-plugins) that you can use with ZKsync Era. To learn more about Hardhat itself, check out [the official documentation](https://hardhat.org/getting-started/). -This tutorial shows you how to setup a zkSync Era Solidity project with Hardhat using the [zkSync CLI](/build/tooling/zksync-cli). +This tutorial shows you how to setup a ZKsync Era Solidity project with Hardhat using the [ZKsync CLI](/build/tooling/zksync-cli). If you are using Vyper, check out the [Vyper plugin documentation](/build/tooling/hardhat/hardhat-zksync-vyper) or the [vyper-example](%%zk_git_repo_hardhat-zksync%%/tree/main/examples/vyper-example) in GitHub! @@ -38,29 +38,29 @@ or the [vyper-example](%%zk_git_repo_hardhat-zksync%%/tree/main/examples/vyper-e - Make sure your machine satisfies the [system requirements](%%zk_git_repo_era-compiler-solidity%%/tree/main#system-requirements). - You have Node installed and have `yarn` or `npm` package manager. -- You are already familiar with deploying smart contracts on zkSync. +- You are already familiar with deploying smart contracts on ZKsync. - A wallet with sufficient Sepolia `ETH` on Ethereum and %%zk_testnet_name%% to pay for deploying smart contracts. - You know how to get your [private key from your MetaMask wallet](https://support.metamask.io/hc/en-us/articles/360015289632-How-to-export-an-account-s-private-key). ::callout Skip the hassle for test ETH by using `zksync-cli` for local testing. -Use the `npx zksync-cli dev start` command to initialize a local zkSync development environment, which includes local Ethereum and zkSync nodes. +Use the `npx zksync-cli dev start` command to initialize a local ZKsync development environment, which includes local Ethereum and ZKsync nodes. This method allows you to test contracts without requesting external testnet funds. Explore more in the [zksync-cli documentation](/build/tooling/zksync-cli). :: ::callout{icon="i-heroicons-exclamation-triangle" color="amber"} - -- Contracts compiled with other compilers will fail to deploy to zkSync Era. +- Contracts compiled with other compilers will fail to deploy to ZKsync Era. :: ## Project setup @@ -88,9 +88,9 @@ If you want to migrate an existing project, please check the [project migration ## Hardhat configuration -The `hardhat.config.ts` file contains some zkSync Era specific configurations: +The `hardhat.config.ts` file contains some ZKsync Era specific configurations: -The zkSync Era deployment and compiler plugin imports: +The ZKsync Era deployment and compiler plugin imports: #### Solidity project @@ -145,8 +145,8 @@ const zkSyncTestnet = ``` ::callout{icon="i-heroicons-information-circle" color="blue"} -For local zkSync testing, modify `url` and `ethNetwork` in `hardhat.config.ts` -to align with your local zkSync and Ethereum node's L2 and L1 RPC URLs, respectively. +For local ZKsync testing, modify `url` and `ethNetwork` in `hardhat.config.ts` +to align with your local ZKsync and Ethereum node's L2 and L1 RPC URLs, respectively. :: ::callout{icon="i-heroicons-information-circle" color="blue"} @@ -230,7 +230,7 @@ export default async function (hre: HardhatRuntimeEnvironment) { // token: utils.ETH_ADDRESS, // amount: deploymentFee.mul(2), // }); - // // Wait until the deposit is processed on zkSync + // // Wait until the deposit is processed on ZKsync // await depositHandle.wait(); // Deploy this contract. The returned object will be of a `Contract` type, similar to ones in `ethers`. @@ -302,7 +302,7 @@ The template project contains another script to interact with the contract. if (!PRIVATE_KEY) throw "⛔️ Private key not detected! Add it to the .env file!"; - // Address of the contract on zksync testnet + // Address of the contract on ZKsync testnet const CONTRACT_ADDRESS = ""; if (!CONTRACT_ADDRESS) throw "⛔️ Contract address not provided"; @@ -361,7 +361,7 @@ The template project contains another script to interact with the contract. TODO: fix links ## Learn more -- To learn more about the zkSync Hardhat plugins check out the [plugins documentation](../hardhat/getting-started.md). -- If you want to know more about how to interact with zkSync using Javascript, +- To learn more about the ZKsync Hardhat plugins check out the [plugins documentation](../hardhat/getting-started.md). +- If you want to know more about how to interact with ZKsync using Javascript, check out the [zksync-ethers Javascript SDK documentation](../../sdks/js/zksync-ethers/getting-started.md) . --> diff --git a/content/00.build/40.tooling/20.hardhat/110.hardhat-zksync.md b/content/00.build/40.tooling/20.hardhat/110.hardhat-zksync.md index a6fda6ae..b388aa5f 100644 --- a/content/00.build/40.tooling/20.hardhat/110.hardhat-zksync.md +++ b/content/00.build/40.tooling/20.hardhat/110.hardhat-zksync.md @@ -3,7 +3,7 @@ title: hardhat-zksync description: --- -The hardhat-zksync plugin provides a convenient method for bundling and accessing a range of zkSync-related Hardhat plugins. +The hardhat-zksync plugin provides a convenient method for bundling and accessing a range of ZKsync-related Hardhat plugins. This approach simplifies the process of utilizing these plugins and promotes ease of use. List of contained plugins: @@ -18,7 +18,7 @@ List of contained plugins: ::callout{icon="i-heroicons-information-circle" color="blue"} **Popular Hardhat plugins**: You can find a list of all official plugins [here](./getting-started). -Also, zkSync supports some other [popular plugins](./other-plugins) that can be used. +Also, ZKsync supports some other [popular plugins](./other-plugins) that can be used. :: ### Installation diff --git a/content/00.build/40.tooling/20.hardhat/120.hardhat-zksync-node.md b/content/00.build/40.tooling/20.hardhat/120.hardhat-zksync-node.md index 2e365329..4ef7ed93 100644 --- a/content/00.build/40.tooling/20.hardhat/120.hardhat-zksync-node.md +++ b/content/00.build/40.tooling/20.hardhat/120.hardhat-zksync-node.md @@ -3,10 +3,10 @@ title: hardhat-zksync-node description: --- - + ::callout{icon="i-heroicons-exclamation-triangle" color="amber"} -The zkSync Era In-memory node binaries are not supported on Windows at the moment. +The ZKsync Era In-memory node binaries are not supported on Windows at the moment. As an alternative, users can utilize the Windows Subsystem for Linux (WSL). :: @@ -54,8 +54,8 @@ import "@matterlabs/hardhat-zksync-node"; yarn hardhat node-zksync ``` -This command runs a local zkSync In-memory node by initiating a JSON-RPC server. -It uses the provided or default configurations to set up and run the zkSync node, allowing for blockchain operations in a local environment. +This command runs a local ZKsync In-memory node by initiating a JSON-RPC server. +It uses the provided or default configurations to set up and run the ZKsync node, allowing for blockchain operations in a local environment. The command also handles tasks such as downloading the necessary JSON-RPC server binary if it's not already present. - `--port` - Port on which the server should listen. Defaults to 8011. diff --git a/content/00.build/40.tooling/20.hardhat/20.migrating-to-zksync.md b/content/00.build/40.tooling/20.hardhat/20.migrating-to-zksync.md index 7c0e1994..4767831f 100644 --- a/content/00.build/40.tooling/20.hardhat/20.migrating-to-zksync.md +++ b/content/00.build/40.tooling/20.hardhat/20.migrating-to-zksync.md @@ -1,21 +1,21 @@ --- -title: Migrating to zkSync -description: Learn how to migrate an existing Hardhat project to zkSync Era. +title: Migrating to ZKsync +description: Learn how to migrate an existing Hardhat project to ZKsync Era. --- ::callout{icon="i-heroicons-exclamation-triangle" color="amber"} If you are using Windows, we strongly recommend you use Windows Subsystem for Linux (also known as WSL 2). -You can use `Hardhat` and `Hardhat zkSync plugins` without it, but it will work better if you use it. +You can use `Hardhat` and `Hardhat ZKsync plugins` without it, but it will work better if you use it. To install Node.js using WSL 2, please read this [guide](https://learn.microsoft.com/en-us/windows/dev-environment/javascript/nodejs-on-wsl). :: -This guide shows you how to migrate an existing Hardhat project to zkSync Era. +This guide shows you how to migrate an existing Hardhat project to ZKsync Era. ## Overview -zkSync Era offers [multiple Hardhat plugins](/build/tooling/hardhat/getting-started) with different features. -This guide details the one you need to migrate your project to zkSync Era. +ZKsync Era offers [multiple Hardhat plugins](/build/tooling/hardhat/getting-started) with different features. +This guide details the one you need to migrate your project to ZKsync Era. ::callout{icon="i-heroicons-exclamation-triangle" color="amber"} **Non-default paths are not supported yet** @@ -27,8 +27,8 @@ This guide details the one you need to migrate your project to zkSync Era. ## Install dependencies - -Although zkSync Era is compatible with Solidity and Vyper, + +Although ZKsync Era is compatible with Solidity and Vyper, the deployed bytecode and the deployment process is different from Ethereum or other EVM blockchains. So the first step is to install the compiler and deployer Hardhat plugins: @@ -54,7 +54,7 @@ In your `hardhat.config.ts` file import the installed dependencies: import "@matterlabs/hardhat-zksync"; ``` -Networks on zkSync Era require two different URL endpoints: one for layer 1 (Ethereum or Sepolia), and one for layer 2 (zkSync). +Networks on ZKsync Era require two different URL endpoints: one for layer 1 (Ethereum or Sepolia), and one for layer 2 (ZKsync). This is how you add the %%zk_testnet_name%% to your list of networks in the `hardhat.config.ts`: ```typescript @@ -92,11 +92,11 @@ or [Vyper](/build/tooling/hardhat/hardhat-zksync-vyper) plugins. ### How to configure multiple compilation targets -To configure the `hardhat.config.ts` file to target both zkSync Era and other networks, do the following: +To configure the `hardhat.config.ts` file to target both ZKsync Era and other networks, do the following: -1. In your `hardhat.config.ts`, configure the zkSync Era network with `zksync: true`. +1. In your `hardhat.config.ts`, configure the ZKsync Era network with `zksync: true`. 2. Configure all other networks with `zksync: false`. -3. Run the compilation or deployment scripts with the network flag: `yarn hardhat compile --network zkSyncTestnet` for zkSync Era network +3. Run the compilation or deployment scripts with the network flag: `yarn hardhat compile --network zkSyncTestnet` for ZKsync Era network or `yarn hardhat compile --network sepolia` for other networks, e.g sepolia. ```typescript @@ -106,9 +106,9 @@ networks: { zksync: false, // Set to false to target other networks. }, zkSyncTestnet: { - url: "%%zk_testnet_rpc_url%%", // The testnet RPC URL of zkSync Era network. + url: "%%zk_testnet_rpc_url%%", // The testnet RPC URL of ZKsync Era network. ethNetwork: "%%zk_testnet_identifier%%", // The identifier of the network (e.g. `mainnet` or `sepolia`) - zksync: true, // Set to true to target zkSync Era. + zksync: true, // Set to true to target ZKsync Era. } }, @@ -158,7 +158,7 @@ export default config; ## Compile contracts -To compile your contracts for zkSync Era, run: +To compile your contracts for ZKsync Era, run: ::code-group @@ -181,12 +181,12 @@ Find more info and examples about [compiling libraries here](/build/tooling/hard ## Deploy contracts ::callout{icon="i-heroicons-exclamation-triangle" color="amber"} -`hardhat-deploy` version `^0.11.26` supports deployments on zkSync Era. +`hardhat-deploy` version `^0.11.26` supports deployments on ZKsync Era. :: To deploy your contracts you need to use the `Deployer` class from the `hardhat-zksync` plugin. - + Here is a basic deployment script for a `Greeter` contract: @@ -266,7 +266,7 @@ Apart from the same classes and methods provided by ethers, zksync-ethers includ To verify your contracts you have two options: - + - Plugin: verify your contracts programmatically using the [Hardhat verify plugin](/build/tooling/hardhat/hardhat-zksync-verify) If you have any problems migrating your project, [send us a message on Discord](https://join.zksync.dev/). diff --git a/content/00.build/40.tooling/20.hardhat/30.compiling-libraries.md b/content/00.build/40.tooling/20.hardhat/30.compiling-libraries.md index e9df7659..4a306f66 100644 --- a/content/00.build/40.tooling/20.hardhat/30.compiling-libraries.md +++ b/content/00.build/40.tooling/20.hardhat/30.compiling-libraries.md @@ -11,7 +11,7 @@ i.e. does not use external calls to access the library methods and uses the code - _Non-inlinable_. The ones that have at least one `public` or `external` method. While they may be inlined by the Solidity compiler, they are not inlined when compiled to Yul representation. -Since Yul is an intermediate step when compiling to %%zk_zkevm_label%% bytecode, this means that these libraries can not be inlined by the zkSync compiler. +Since Yul is an intermediate step when compiling to %%zk_zkevm_label%% bytecode, this means that these libraries can not be inlined by the ZKsync compiler. **Practically this means that libraries with public methods need to be deployed separately and their addresses passed as an argument when compiling the main contract.** @@ -105,9 +105,9 @@ This documentation provides details on how the tool handles the compilation and ### Manual deployment To resolve the issue, you need to create _a separate project_, where only the library file will be located. -After deploying _only_ the library to zkSync Era, you should get the address of the deployed library and pass it to the compiler settings. +After deploying _only_ the library to ZKsync Era, you should get the address of the deployed library and pass it to the compiler settings. The process of deploying the library is the same as deploying a smart contract. -You can learn how to deploy smart contracts on zkSync Era in the [getting started](./getting-started#compile-and-deploy-a-contract) guide. +You can learn how to deploy smart contracts on ZKsync Era in the [getting started](./getting-started#compile-and-deploy-a-contract) guide. Let's say that the address of the deployed library is `0xF9702469Dfb84A9aC171E284F71615bd3D3f1EdC`. To pass this address to the compiler parameters, open the `hardhat.config.ts` file of the project where the `Main` contract is located @@ -131,7 +131,7 @@ module.exports = { defaultNetwork: "zkTestnet", networks: { zkTestnet: { - url: "%%zk_testnet_rpc_url%%", // URL of the zkSync network RPC + url: "%%zk_testnet_rpc_url%%", // URL of the ZKsync network RPC ethNetwork: "%%zk_testnet_identifier%%", // Can also be the RPC URL of the Ethereum network (e.g. `https://sepolia.infura.io/v3/`) zksync: true, }, diff --git a/content/00.build/40.tooling/20.hardhat/40.hardhat-zksync-solc.md b/content/00.build/40.tooling/20.hardhat/40.hardhat-zksync-solc.md index 82e6444b..b504e79c 100644 --- a/content/00.build/40.tooling/20.hardhat/40.hardhat-zksync-solc.md +++ b/content/00.build/40.tooling/20.hardhat/40.hardhat-zksync-solc.md @@ -3,7 +3,7 @@ title: hardhat-zksync-solc description: --- -This plugin is used to provide a convenient interface for compiling Solidity smart contracts before deploying them to zkSync Era. +This plugin is used to provide a convenient interface for compiling Solidity smart contracts before deploying them to ZKsync Era. Learn more about the latest updates in the [changelog](%%zk_git_repo_hardhat-zksync%%/blob/main/packages/hardhat-zksync-solc/CHANGELOG.md). @@ -64,7 +64,7 @@ zksolc: { compilerPath: "zksolc", // optional. Ignored for compilerSource "docker". Can be used if compiler is located in a specific folder libraries:{}, // optional. References to non-inlinable libraries missingLibrariesPath: "./.zksolc-libraries-cache/missingLibraryDependencies.json", // optional. This path serves as a cache that stores all the libraries that are missing or have dependencies on other libraries. A `hardhat-zksync-deploy` plugin uses this cache later to compile and deploy the libraries, especially when the `deploy-zksync:libraries` task is executed - isSystem: false, // optional. Enables Yul instructions available only for zkSync system contracts and libraries + isSystem: false, // optional. Enables Yul instructions available only for ZKsync system contracts and libraries forceEvmla: false, // optional. Falls back to EVM legacy assembly if there is a bug with Yul optimizer: { enabled: true, // optional. True by default @@ -96,7 +96,7 @@ Learn more about [compiling libraries here](./compiling-libraries) A `hardhat-zksync-deploy` plugin uses this cache later to compile and deploy the libraries, especially when the `deploy-zksync:libraries` task is executed. Defaults to `./.zksolc-libraries-cache/missingLibraryDependencies.json`. -- `isSystem` - required if contracts use enables Yul instructions available only for zkSync system contracts and libraries +- `isSystem` - required if contracts use enables Yul instructions available only for ZKsync system contracts and libraries - `forceEvmla` - falls back to EVM legacy assembly if there is an issue with the Yul IR compilation pipeline. - `optimizer` - Compiler optimizations: - `enabled`: `true` (default) or `false`. @@ -136,7 +136,7 @@ The `compilerVersion.json` file is used by the plugin to get the latest availabl This file undergoes invalidation every 24 hours (currently), subsequently being updated with fresh information. This approach is implemented to provide a caching mechanism, avoiding the risk of encountering GitHub throttling issues during fetching new releases. -### zkSync Era Solidity compiler +### ZKsync Era Solidity compiler Due to [the identified limitations](https://docs.zksync.io/zk-stack/components/compiler/toolchain/solidity.html#limitations) @@ -180,7 +180,7 @@ networks: { zksync: false, // disables zksolc compiler }, zkSyncTestnet: { - url: "%%zk_testnet_rpc_url%%", // The testnet RPC URL of zkSync Era network. + url: "%%zk_testnet_rpc_url%%", // The testnet RPC URL of ZKsync Era network. ethNetwork: "%%zk_testnet_identifier%%", // The Ethereum Web3 RPC URL, or the identifier of the network (e.g. `mainnet` or `sepolia`) zksync: true, // enables zksolc compiler } diff --git a/content/00.build/40.tooling/20.hardhat/50.hardhat-zksync-vyper.md b/content/00.build/40.tooling/20.hardhat/50.hardhat-zksync-vyper.md index 4d5d480b..d8b45b3f 100644 --- a/content/00.build/40.tooling/20.hardhat/50.hardhat-zksync-vyper.md +++ b/content/00.build/40.tooling/20.hardhat/50.hardhat-zksync-vyper.md @@ -4,7 +4,7 @@ description: --- The [@matterlabs/hardhat-zksync-vyper](https://www.npmjs.com/package/@matterlabs/hardhat-zksync-vyper) plugin -provides an interface for compiling Vyper smart contracts before deploying them to zkSync Era. +provides an interface for compiling Vyper smart contracts before deploying them to ZKsync Era. Learn more about the latest updates in the [changelog](%%zk_git_repo_hardhat-zksync%%/blob/main/packages/hardhat-zksync-vyper/CHANGELOG.md). diff --git a/content/00.build/40.tooling/20.hardhat/60.hardhat-zksync-deploy.md b/content/00.build/40.tooling/20.hardhat/60.hardhat-zksync-deploy.md index 74ba473e..15b7f212 100644 --- a/content/00.build/40.tooling/20.hardhat/60.hardhat-zksync-deploy.md +++ b/content/00.build/40.tooling/20.hardhat/60.hardhat-zksync-deploy.md @@ -3,7 +3,7 @@ title: hardhat-zksync-deploy description: --- -This plugin provides utilities for deploying smart contracts on zkSync Era with artifacts built by the `@matterlabs/hardhat-zksync-solc` +This plugin provides utilities for deploying smart contracts on ZKsync Era with artifacts built by the `@matterlabs/hardhat-zksync-solc` or `@matterlabs/hardhat-zksync-vyper` plugins. ## Prerequisite @@ -11,19 +11,19 @@ or `@matterlabs/hardhat-zksync-vyper` plugins. To use the `hardhat-zksync-deploy` in your project, we recommend that: - You have a Node installation and `yarn` or `npm` package manager. -- You are already familiar with deploying smart contracts on zkSync Era. +- You are already familiar with deploying smart contracts on ZKsync Era. - A wallet with sufficient Sepolia `ETH` on Ethereum and %%zk_testnet_name%% to pay for deploying smart contracts on testnet. -- Get testnet `ETH` for zkSync Era using [bridges](https://zksync.io/explore#bridges) to bridge funds to zkSync. +- Get testnet `ETH` for ZKsync Era using [bridges](https://zksync.io/explore#bridges) to bridge funds to ZKsync. - You know [how to get your private key from your MetaMask wallet](https://support.metamask.io/hc/en-us/articles/360015289632-How-to-export-an-account-s-private-key). ::callout{icon="i-heroicons-information-circle" color="blue"} -**Local zkSync Testing with zksync-cli**: +**Local ZKsync Testing with zksync-cli**: Skip the hassle for test ETH by using `zksync-cli` for local testing. -Simply execute `npx zksync-cli dev start` to initialize a local zkSync development environment, which includes local Ethereum and zkSync nodes. +Simply execute `npx zksync-cli dev start` to initialize a local ZKsync development environment, which includes local Ethereum and ZKsync nodes. This method allows you to test contracts without requesting external testnet funds. Explore more in the [zksync-cli documentation](/build/tooling/zksync-cli). :: @@ -71,7 +71,7 @@ npm i -D @matterlabs/hardhat-zksync-deploy ## Network Configuration -In the `hardhat.config.ts` file, specify zkSync Era and Ethereum networks in the `networks` object. +In the `hardhat.config.ts` file, specify ZKsync Era and Ethereum networks in the `networks` object. ```typescript networks: { @@ -79,7 +79,7 @@ networks: { url: "https://sepolia.infura.io/v3/" // The Ethereum Web3 RPC URL (optional). }, zkTestnet: { - url: "%%zk_testnet_rpc_url%%", // The testnet RPC URL of zkSync Era network. + url: "%%zk_testnet_rpc_url%%", // The testnet RPC URL of ZKsync Era network. ethNetwork: "%%zk_testnet_identifier%%", // The Ethereum Web3 RPC URL, or the identifier of the network (e.g. `mainnet` or `sepolia`) zksync: true } @@ -87,15 +87,15 @@ networks: { // defaultNetwork: "zkTestnet", // optional (if not set, use '--network zkTestnet') ``` -- `zkTestnet` is an arbitrary zkSync Era network name. You can select this as the default network using the `defaultNetwork` property. -- `url` is a field containing the URL of the zkSync Era node in case of the zkSync Era network (with `zksync` flag set to `true`), -or the URL of the Ethereum node. This field is required for all zkSync Era and Ethereum networks used by this plugin. +- `zkTestnet` is an arbitrary ZKsync Era network name. You can select this as the default network using the `defaultNetwork` property. +- `url` is a field containing the URL of the ZKsync Era node in case of the ZKsync Era network (with `zksync` flag set to `true`), +or the URL of the Ethereum node. This field is required for all ZKsync Era and Ethereum networks used by this plugin. - `ethNetwork` is a field with the URL of the Ethereum node. You can also provide network name (e.g. `%%zk_testnet_identifier%%`) as the value of this field. In this case, the plugin will either use the URL of the appropriate Ethereum network configuration (from the `networks` section), or the default `ethers` provider for the network if the configuration is not provided. -This field is required for all zkSync networks used by this plugin. -- `zksync` is a flag that indicates if the network is zkSync Era. This field needs to be set to `true` for all zkSync Era networks; it is `false` by default. +This field is required for all ZKsync networks used by this plugin. +- `zksync` is a flag that indicates if the network is ZKsync Era. This field needs to be set to `true` for all ZKsync Era networks; it is `false` by default. ## Usage in deployment scripts @@ -154,14 +154,14 @@ class Deployer { ): Promise /** - * Sends a deploy transaction to the zkSync network. + * Sends a deploy transaction to the ZKsync network. * For now it uses default values for the transaction parameters: * * @param contractNameOrArtifact The previously loaded artifact object, or contract name that will be resolved to artifact in the background. * @param constructorArguments The list of arguments to be passed to the contract constructor. * @param overrides Optional object with additional deploy transaction parameters. * @param additionalFactoryDeps Additional contract bytecodes to be added to the factory dependencies list. - * The fee amount is requested automatically from the zkSync Era server. + * The fee amount is requested automatically from the ZKsync Era server. * * @returns A contract object. */ @@ -215,7 +215,7 @@ const config: HardhatUserConfig = { url: "https://sepolia.infura.io/v3/" // The Ethereum Web3 RPC URL (optional). }, zkTestnet: { - url: "%%zk_testnet_rpc_url%%", // The testnet RPC URL of zkSync Era network. + url: "%%zk_testnet_rpc_url%%", // The testnet RPC URL of ZKsync Era network. ethNetwork: "%%zk_testnet_identifier%%", // The Ethereum Web3 RPC URL, or the identifier of the network (e.g. `mainnet` or `sepolia`) zksync: true, // ADDITION @@ -232,8 +232,8 @@ const config: HardhatUserConfig = { - `accounts` represents a list of the private keys or mnemonic object for the account used in the deployment process. ::callout{icon="i-heroicons-information-circle" color="blue"} -**Accounts on zkSync Era Test Node or zksync-cli Local Node**: -`accounts` object will be automatically be populated with rich accounts if used network is zkSync Era Test Node or zksync-cli Local Node +**Accounts on ZKsync Era Test Node or zksync-cli Local Node**: +`accounts` object will be automatically be populated with rich accounts if used network is ZKsync Era Test Node or zksync-cli Local Node :: @@ -253,7 +253,7 @@ const config: HardhatUserConfig = { url: "https://sepolia.infura.io/v3/" // The Ethereum Web3 RPC URL (optional). }, zkTestnet: { - url: "%%zk_testnet_rpc_url%%", // The testnet RPC URL of zkSync Era network. + url: "%%zk_testnet_rpc_url%%", // The testnet RPC URL of ZKsync Era network. ethNetwork: "%%zk_testnet_identifier%%", // The Ethereum Web3 RPC URL, or the identifier of the network (e.g. `mainnet` or `sepolia`) zksync: true, accounts: ['0xac1e735be8536c6534bb4f17f06f6afc73b2b5ba84ac2cfb12f7461b20c0bbe3', '0x28a574ab2de8a00364d5dd4b07c4f2f574ef7fcc2a86a197f65abaec836d1959'] // The private keys for the accounts used in the deployment process. @@ -364,7 +364,7 @@ const config: HardhatUserConfig = { url: "https://sepolia.infura.io/v3/", // The Ethereum Web3 RPC URL (optional). }, zkTestnet: { - url: "%%zk_testnet_rpc_url%%", // The testnet RPC URL of zkSync Era network. + url: "%%zk_testnet_rpc_url%%", // The testnet RPC URL of ZKsync Era network. ethNetwork: "%%zk_testnet_identifier%%", // The Ethereum Web3 RPC URL, or the identifier of the network (e.g. `mainnet` or `sepolia`) zksync: true, // ADDITION @@ -406,15 +406,15 @@ containing these scripts within the `deployPaths` section nested inside the `pat const config: HardhatUserConfig = { // ADDITION paths: { - deployPaths: "deploy-zkSync", //single deployment directory - deployPaths: ["deploy", "deploy-zkSync"], //multiple deployment directories + deployPaths: "deploy-zksync", //single deployment directory + deployPaths: ["deploy", "deploy-zksync"], //multiple deployment directories } networks: { sepolia: { url: "https://sepolia.infura.io/v3/" // The Ethereum Web3 RPC URL (optional). }, zkTestnet: { - url: "%%zk_testnet_rpc_url%%", // The testnet RPC URL of zkSync Era network. + url: "%%zk_testnet_rpc_url%%", // The testnet RPC URL of ZKsync Era network. ethNetwork: "%%zk_testnet_identifier%%", // The Ethereum Web3 RPC URL, or the identifier of the network (e.g. `mainnet` or `sepolia`) zksync: true, } @@ -443,8 +443,8 @@ const config: HardhatUserConfig = { url: "%%zk_testnet_rpc_url%%", ethNetwork: "%%zk_testnet_identifier%%", // ADDITION - deployPaths: "deploy-zkSync", //single deployment directory - deployPaths: ["deploy", "deploy-zkSync"], //multiple deployment directories + deployPaths: "deploy-zksync", //single deployment directory + deployPaths: ["deploy", "deploy-zksync"], //multiple deployment directories zksync: true, }, }, @@ -575,14 +575,14 @@ For a step-by-step guide on how to deploy missing libraries, see the `deploy-zks - To run a specific script, add the `--script` argument, e.g. `hardhat deploy-zksync --script 001_deploy.ts`. Runs script with name `001_deploy.ts`. - To run a scripts with specific tags add the `--tags` argument, e.g `hardhat deploy-zksync --tags all`. Run all scripts with tag `all`. -- To run on a specific zkSync Era network, use the standard Hardhat `--network` argument, e.g. `--network zkTestnet`. +- To run on a specific ZKsync Era network, use the standard Hardhat `--network` argument, e.g. `--network zkTestnet`. The network with the name `zkTestnet` needs to be configured in the `hardhat.config.ts` file, with all required fields stated above, or specify `defaultNetwork` in `hardhat.config.ts` file. ::callout{icon="i-heroicons-information-circle" color="blue"} If network argument `--network` or `defaultNetwork` configuration are not specified, -local setup with `http://localhost:8545` (Ethereum RPC URL) and `http://localhost:3050` (zkSync Era RPC URL), -will be used. In this case zkSync Era network will not need to be configured in `hardhat.config.ts` file. +local setup with `http://localhost:8545` (Ethereum RPC URL) and `http://localhost:3050` (ZKsync Era RPC URL), +will be used. In this case ZKsync Era network will not need to be configured in `hardhat.config.ts` file. :: diff --git a/content/00.build/40.tooling/20.hardhat/70.hardhat-zksync-upgradable.md b/content/00.build/40.tooling/20.hardhat/70.hardhat-zksync-upgradable.md index 6ca7c895..3fd52c9c 100644 --- a/content/00.build/40.tooling/20.hardhat/70.hardhat-zksync-upgradable.md +++ b/content/00.build/40.tooling/20.hardhat/70.hardhat-zksync-upgradable.md @@ -4,12 +4,12 @@ description: --- The `hardhat-zksync-upgradable` plugin is a Hardhat plugin that supports end-to-end pipelines -for deploying and updating upgradable smart contracts on the zkSync Era network. +for deploying and updating upgradable smart contracts on the ZKsync Era network. The plugin is based on [@openzeppelin/upgrades-core](https://www.npmjs.com/package/@openzeppelin/upgrades-core) plugin for deploying and managing upgradeable smart contracts on the Ethereum network. The `hardhat-zksync-upgradable` plugin provides an easy-to-use interface for interacting with the -[OpenZeppelin Upgrades Plugins](https://docs.openzeppelin.com/upgrades-plugins) within a Hardhat environment on zkSync. +[OpenZeppelin Upgrades Plugins](https://docs.openzeppelin.com/upgrades-plugins) within a Hardhat environment on ZKsync. ::callout{icon="i-heroicons-exclamation-triangle" color="amber"} Ensure you are using the correct version of the plugin with ethers: @@ -136,7 +136,7 @@ With transparent proxies, a contract's address is owned by a proxy contract, whi When a new implementation is deployed, the proxy can be upgraded to point to the new implementation, allowing for seamless upgrades without requiring changes to the contract's interaction code. -To deploy a simple upgradable contract on zkSync Era local setup, first create a test wallet and add it to the new Deployer. +To deploy a simple upgradable contract on ZKsync Era local setup, first create a test wallet and add it to the new Deployer. ```typescript // mnemonic for local node rich wallet @@ -154,7 +154,7 @@ const contract = await deployer.loadArtifact(contractName); await hre.zkUpgrades.deployProxy(deployer.zkWallet, contract, [42], { initializer: "initialize" }); ``` -The `deployProxy` method deploys your implementation contract on zkSync Era, deploys the proxy admin contract, and finally, deploys the transparent proxy. +The `deployProxy` method deploys your implementation contract on ZKsync Era, deploys the proxy admin contract, and finally, deploys the transparent proxy. ### Full deploy proxy script @@ -208,7 +208,7 @@ npx hardhat run SCRIPT_FILE ::callout{icon="i-heroicons-exclamation-triangle" color="amber"} - deployProxy method (and other deploy/upgrade methods from the zkUpgrades) needs to know which wallet to use to deploy smart contracts. -- For this reason, the wallet needs to have a configured provider that connects it to the specific zkSync network. +- For this reason, the wallet needs to have a configured provider that connects it to the specific ZKsync network. - This provider is configured in the hardhat config file, by stating the RPC url of the network to connect to. :: @@ -337,7 +337,7 @@ with no disruption to the contract's operation. This allows for more advanced upgrade patterns, such as adding or removing functionality while minimizing downtime. -1. Start by creating a `Deployer` for the zkSync Era network and load the `Box` artifact: +1. Start by creating a `Deployer` for the ZKsync Era network and load the `Box` artifact: ```typescript // mnemonic for local node rich wallet @@ -356,7 +356,7 @@ This allows for more advanced upgrade patterns, such as adding or removing funct await hre.zkUpgrades.deployBeacon(deployer.zkWallet, boxContract); ``` -1. Use the `deployBeaconProxy` method which receives the zkSync Era wallet, beacon contract, and the implementation (Box) contract with its arguments. +1. Use the `deployBeaconProxy` method which receives the ZKsync Era wallet, beacon contract, and the implementation (Box) contract with its arguments. ```typescript const box = await hre.zkUpgrades.deployBeaconProxy(deployer.zkWallet, beacon, boxContract, [42]); @@ -425,7 +425,7 @@ This means we can optimize the process to check for the existing implementation instead of deploying a new implementation contract every time. The upgradable plugin saves this information in the manifest file. This file will be created in your project's `.upgradable` folder. -The manifest file is created per network, meaning you will have different data saved for upgrading contracts on the local setup and zkSync Era networks. +The manifest file is created per network, meaning you will have different data saved for upgrading contracts on the local setup and ZKsync Era networks. ## Upgrading proxies @@ -509,7 +509,7 @@ To upgrade the implementation of the transparent upgradeable contract, use the ` `upgradeProxy` receives 3 arguments: -- A zkSync Era wallet. +- A ZKsync Era wallet. - The address of the previously deployed box proxy. - The artifact containing the new `Box2` implementation. @@ -768,7 +768,7 @@ const config: HardhatUserConfig = { url: "https://sepolia.infura.io/v3/", // The Ethereum Web3 RPC URL (optional). }, zkSyncSepoliaTestnet: { - url: "%%zk_testnet_rpc_url%%", // The testnet RPC URL of zkSync Era network. + url: "%%zk_testnet_rpc_url%%", // The testnet RPC URL of ZKsync Era network. ethNetwork: "%%zk_testnet_identifier%%", // The Ethereum Web3 RPC URL, or the identifier of the network (e.g. `mainnet` or `sepolia`) zksync: true, // ADDITION @@ -785,7 +785,7 @@ const config: HardhatUserConfig = { - accounts represents a list of the private keys or mnemonic object for the account used in the deployment or in the upgrade process. - accounts object will automatically be populated with rich accounts if used network is zkSync Era Test Node or zksync-cli Local Node + accounts object will automatically be populated with rich accounts if used network is ZKsync Era Test Node or zksync-cli Local Node To establish a default index per network, which is by default `0`, you can include a `deployerAccounts` section in your `hardhat.config.ts` file. ```typescript @@ -800,7 +800,7 @@ const config: HardhatUserConfig = { url: "https://sepolia.infura.io/v3/", // The Ethereum Web3 RPC URL (optional). }, zkSyncSepoliaTestnet: { - url: "%%zk_testnet_rpc_url%%", // The testnet RPC URL of zkSync Era network. + url: "%%zk_testnet_rpc_url%%", // The testnet RPC URL of ZKsync Era network. ethNetwork: "%%zk_testnet_identifier%%", // The Ethereum Web3 RPC URL, or the identifier of the network (e.g. `mainnet` or `sepolia`) zksync: true, // The private keys for the accounts used in the deployment process. diff --git a/content/00.build/40.tooling/20.hardhat/80.hardhat-zksync-verify.md b/content/00.build/40.tooling/20.hardhat/80.hardhat-zksync-verify.md index dbec6fb6..3105b570 100644 --- a/content/00.build/40.tooling/20.hardhat/80.hardhat-zksync-verify.md +++ b/content/00.build/40.tooling/20.hardhat/80.hardhat-zksync-verify.md @@ -3,7 +3,7 @@ title: hardhat-zksync-verify description: --- -This plugin is used to verify contracts on the zkSync Era network. +This plugin is used to verify contracts on the ZKsync Era network. [Changelog](%%zk_git_repo_hardhat-zksync%%/blob/main/packages/hardhat-zksync-verify/CHANGELOG.md) @@ -54,7 +54,7 @@ Import the plugin in the `hardhat.config.ts` file: import "@matterlabs/hardhat-zksync-verify"; ``` -Add the `verifyURL` property to the zkSync Era network in the `hardhat.config.ts` file as shown below: +Add the `verifyURL` property to the ZKsync Era network in the `hardhat.config.ts` file as shown below: ```typescript networks: { @@ -62,7 +62,7 @@ networks: { url: "https://sepolia.infura.io/v3/" // The Ethereum Web3 RPC URL (optional). }, zkTestnet: { - url: "%%zk_testnet_rpc_url%%", // The testnet RPC URL of zkSync Era network. + url: "%%zk_testnet_rpc_url%%", // The testnet RPC URL of ZKsync Era network. ethNetwork: "%%zk_testnet_identifier%%", // The Ethereum Web3 RPC URL, or the identifier of the network (e.g. `mainnet` or `sepolia`) zksync: true, // Verification endpoint for Sepolia @@ -74,18 +74,18 @@ networks: { Additional network properties: -- `zkTestnet` is an arbitrary zkSync Era network name. You can select this as the default network using the `defaultNetwork` property. -- `url` is a field with the URL of the zkSync Era node -in case of the zkSync Era network (with `zksync` flag set to `true`), or the URL of the Ethereum node. -This field is required for all zkSync Era and Ethereum networks used by this plugin. +- `zkTestnet` is an arbitrary ZKsync Era network name. You can select this as the default network using the `defaultNetwork` property. +- `url` is a field with the URL of the ZKsync Era node +in case of the ZKsync Era network (with `zksync` flag set to `true`), or the URL of the Ethereum node. +This field is required for all ZKsync Era and Ethereum networks used by this plugin. - `ethNetwork` is a field with the URL of the Ethereum node. You can also provide network name (e.g. `%%zk_testnet_identifier%%`) as the value of this field. In this case, the plugin will either use the URL of the appropriate Ethereum network configuration (from the `networks` section), -or the default `ethers` provider for the network if the configuration is not provided. This field is required for all zkSync networks used by this plugin. -- `zksync` is a flag that indicates a zkSync Era network configuration. This field is set to `true` for all zkSync Era networks. +or the default `ethers` provider for the network if the configuration is not provided. This field is required for all ZKsync networks used by this plugin. +- `zksync` is a flag that indicates a ZKsync Era network configuration. This field is set to `true` for all ZKsync Era networks. If you want to run a `hardhat-verify` verification, this field needs to be set to `false`. -If set to `true`, the verification process will try to run the verification process on the zkSync Era network. -- `verifyURL` is a field that points to the verification endpoint for the specific zkSync network. +If set to `true`, the verification process will try to run the verification process on the ZKsync Era network. +- `verifyURL` is a field that points to the verification endpoint for the specific ZKsync network. This parameter is optional, and its default value is the testnet verification url. - Testnet: `%%zk_testnet_block_explorer_url%%/contract_verification` - Mainnet: `%%zk_mainnet_block_explorer_url%%/contract_verification` diff --git a/content/00.build/40.tooling/20.hardhat/90.hardhat-zksync-verify-vyper.md b/content/00.build/40.tooling/20.hardhat/90.hardhat-zksync-verify-vyper.md index e3b60baa..9110e3ab 100644 --- a/content/00.build/40.tooling/20.hardhat/90.hardhat-zksync-verify-vyper.md +++ b/content/00.build/40.tooling/20.hardhat/90.hardhat-zksync-verify-vyper.md @@ -3,7 +3,7 @@ title: hardhat-zksync-verify-vyper description: --- -This plugin is used to verify vyper contracts on the zkSync Era network. +This plugin is used to verify vyper contracts on the ZKsync Era network. ::callout{icon="i-heroicons-exclamation-triangle" color="amber"} Current version of the verify vyper plugin has a limitation where in order to verify the vyper contract, @@ -42,7 +42,7 @@ Ensure you are using the correct version of the plugin with ethers: ## Setup The [@matterlabs/hardhat-zksync-verify-vyper](https://www.npmjs.com/package/@matterlabs/hardhat-zksync-verify-vyper) plugin -is used to verify contracts on zkSync network. +is used to verify contracts on ZKsync network. To use it, install plugin and then import `@matterlabs/hardhat-zksync-verify-vyper` in the `hardhat.config.ts` file. ::code-group @@ -65,7 +65,7 @@ Import the plugin in the `hardhat.config.ts` file: import "@matterlabs/hardhat-zksync-verify-vyper"; ``` -Add the `verifyURL` property to the zkSync Era network in the `hardhat.config.ts` file as shown below: +Add the `verifyURL` property to the ZKsync Era network in the `hardhat.config.ts` file as shown below: ```typescript networks: { @@ -73,7 +73,7 @@ networks: { url: "https://sepolia.infura.io/v3/" // The Ethereum Web3 RPC URL (optional). }, zkTestnet: { - url: "%%zk_testnet_rpc_url%%", // The testnet RPC URL of zkSync Era network. + url: "%%zk_testnet_rpc_url%%", // The testnet RPC URL of ZKsync Era network. ethNetwork: "%%zk_testnet_identifier%%", // The Ethereum Web3 RPC URL, or the identifier of the network (e.g. `mainnet` or `sepolia`) zksync: true, // Verification endpoint for Sepolia @@ -85,16 +85,16 @@ networks: { Additional network properties: -- `zkTestnet` is an arbitrary zkSync Era network name. You can select this as the default network using the `defaultNetwork` property. -- `url` is a field with the URL of the zkSync Era node. This field is required for all zkSync networks used by this plugin. +- `zkTestnet` is an arbitrary ZKsync Era network name. You can select this as the default network using the `defaultNetwork` property. +- `url` is a field with the URL of the ZKsync Era node. This field is required for all ZKsync networks used by this plugin. - `ethNetwork` is a field with the URL of the Ethereum node. You can also provide network name (e.g. `sepolia`) as the value of this field. In this case, the plugin will either use the URL of the appropriate Ethereum network configuration (from the `networks` section), or the default `ethers` provider for the network if the configuration is not provided. -This field is required for all zkSync networks used by this plugin. -- `zksync` is a flag that indicates a zkSync Era network configuration. -This field is set to `true` for all zkSync Era networks. Field value `true` is required for this plugin work. +This field is required for all ZKsync networks used by this plugin. +- `zksync` is a flag that indicates a ZKsync Era network configuration. +This field is set to `true` for all ZKsync Era networks. Field value `true` is required for this plugin work. If field is missing or if values is set to `false` plugin will throw a error. -- `verifyURL` is a field that points to the verification endpoint for the specific zkSync network. +- `verifyURL` is a field that points to the verification endpoint for the specific ZKsync network. This parameter is optional, and its default value is the testnet verification url. - Testnet: `%%zk_testnet_block_explorer_url%%/contract_verification` - Mainnet: `%%zk_mainnet_block_explorer_url%%/contract_verification` diff --git a/content/00.build/40.tooling/20.hardhat/other-plugins.md b/content/00.build/40.tooling/20.hardhat/other-plugins.md index 2b6cf469..ec1dbb60 100644 --- a/content/00.build/40.tooling/20.hardhat/other-plugins.md +++ b/content/00.build/40.tooling/20.hardhat/other-plugins.md @@ -1,9 +1,9 @@ --- title: Hardhat Community Plugins -description: Discover community plugins for Hardhat that work on zkSync Era. +description: Discover community plugins for Hardhat that work on ZKsync Era. --- -The following plugins were created by the community and tested on zkSync Era. +The following plugins were created by the community and tested on ZKsync Era. Feel free to suggest new plugins by [creating a issue(feat request) at this page](%%zk_git_repo_hardhat-zksync%%/issues/new?assignees=&labels=feat&projects=&template=feature_report.md&title=). ## Supported plugins @@ -17,7 +17,7 @@ You can use it as a starting template for your projects. Multiple tasks for advanced deployments. -This plugin was [updated to support zkSync Era](https://github.com/wighawag/hardhat-deploy/pull/437) on version `0.11.26`. +This plugin was [updated to support ZKsync Era](https://github.com/wighawag/hardhat-deploy/pull/437) on version `0.11.26`. [More information](https://www.npmjs.com/package/hardhat-deploy) @@ -31,7 +31,7 @@ Automatically generate TypeScript bindings for smart contracts. Plugin used to deploy and update upgradable smart contracts (proxies). Use the [hardhat-zksync-upgradable plugin](./hardhat-zksync-upgradable) which provides an easy-to-use interface -for interacting with the OpenZeppelin Upgrades Plugins within a Hardhat environment on zkSync. +for interacting with the OpenZeppelin Upgrades Plugins within a Hardhat environment on ZKsync. ### hardhat-chai-matchers @@ -52,7 +52,7 @@ Different options to export smart contract ABIs. ### hardhat-gas-reporter - + Users should consider this when analysing the report generated by this plugin. @@ -81,14 +81,14 @@ To prevent this, please include the `--no-compile` flag: `yarn hardhat verify -- This plugin adds new methods that interact with the Hardhat network used for testing. -However, we do not recommend using the Hardhat network for testing contracts that will be deployed on zkSync Era. +However, we do not recommend using the Hardhat network for testing contracts that will be deployed on ZKsync Era. ::callout{icon="i-heroicons-exclamation-triangle" color="amber"} -The additional methods provided by this plugin are not compatible with the zkSync Era in-memory node or docker setup yet. +The additional methods provided by this plugin are not compatible with the ZKsync Era in-memory node or docker setup yet. Currently, we are working on adapting our in-memory node to ensure compatibility with hardhat-network-helpers. :: diff --git a/content/00.build/40.tooling/30.foundry/10.overview.md b/content/00.build/40.tooling/30.foundry/10.overview.md index 64fcda45..e1eb771d 100644 --- a/content/00.build/40.tooling/30.foundry/10.overview.md +++ b/content/00.build/40.tooling/30.foundry/10.overview.md @@ -3,11 +3,11 @@ title: Overview description: Learn about foundry-zksync. --- -`foundry-zksync` is a specialized fork of [Foundry](https://github.com/foundry-rs/foundry), tailored for zkSync. +`foundry-zksync` is a specialized fork of [Foundry](https://github.com/foundry-rs/foundry), tailored for ZKsync. -It extends Foundry's capabilities for Ethereum app development to support zkSync, allowing for the compilation, -deployment, testing, and interaction with smart contracts on zkSync. -`foundry-zksync` introduces `--zksync` flag, or the use of `vm.zkVm(true)` to target the zkSync VM. +It extends Foundry's capabilities for Ethereum app development to support ZKsync, allowing for the compilation, +deployment, testing, and interaction with smart contracts on ZKsync. +`foundry-zksync` introduces `--zksync` flag, or the use of `vm.zkVm(true)` to target the ZKsync VM. ### Status and Contribution @@ -19,9 +19,9 @@ For more details and contributions, visit the [GitHub repository](%%zk_git_repo_ ### Features -`foundry-zksync` offers a set of features designed to work with zkSync, providing a comprehensive toolkit for smart contract deployment and interaction: +`foundry-zksync` offers a set of features designed to work with ZKsync, providing a comprehensive toolkit for smart contract deployment and interaction: -- **Smart Contract Deployment**: Easily deploy smart contracts to zkSync mainnet, testnet, or a local test node. +- **Smart Contract Deployment**: Easily deploy smart contracts to ZKsync mainnet, testnet, or a local test node. - **Asset Bridging**: Bridge assets between L1 and L2, facilitating seamless transactions across layers. - **Contract Interaction**: Call and send transactions to deployed contracts on %%zk_testnet_name%% or local test node. - **Solidity Testing**: Write tests in Solidity for a familiar testing environment. diff --git a/content/00.build/40.tooling/30.foundry/20.getting-started.md b/content/00.build/40.tooling/30.foundry/20.getting-started.md index 581a8e50..8ea1d455 100644 --- a/content/00.build/40.tooling/30.foundry/20.getting-started.md +++ b/content/00.build/40.tooling/30.foundry/20.getting-started.md @@ -1,6 +1,6 @@ --- title: Getting Started -description: Learn how to setup and use Foundry with your zkSync project. +description: Learn how to setup and use Foundry with your ZKsync project. --- ### Prerequisites @@ -71,7 +71,7 @@ This can be used to create a new `foundry.toml` file with `forge config --basic By default `forge config` shows the currently selected foundry profile and its values. It also accepts the same arguments as `forge build`. -An example `foundry.toml` for zkSync with zksolc configurations may look like: +An example `foundry.toml` for ZKsync with zksolc configurations may look like: ```toml [profile.default] @@ -116,7 +116,7 @@ forge build [OPTIONS] --zksync - `--fallback-oz `: Recompile with `-Oz` if bytecode is too large. - `--detect-missing-libraries`: Detect and report missing libraries. - `-O, --optimization `: Set LLVM optimization levels. -- `--zk-optimizer`: Optimize specifically for zkSync. +- `--zk-optimizer`: Optimize specifically for ZKsync. **Example Usage:** Compile with default settings or specify `zksolc` version: @@ -127,7 +127,7 @@ forge build --zksync ### Deployment with `forge create --zksync` -`forge create --zksync` deploys smart contracts to zkSync. +`forge create --zksync` deploys smart contracts to ZKsync. **Usage:** @@ -172,7 +172,7 @@ contract Greeter { ```bash -forge create src/Greeter.sol:Greeter --constructor-args "Hello zkSync" --private-key --rpc-url %%zk_testnet_rpc_url%% --chain 300 --zksync +forge create src/Greeter.sol:Greeter --constructor-args "Hello ZKsync" --private-key --rpc-url %%zk_testnet_rpc_url%% --chain 300 --zksync ``` ### Deploying Factory Contracts @@ -223,7 +223,7 @@ forge create src/GreeterFactory.sol:Factory --factory-deps src/Greeter.sol:Greet **Deploy `Greeter.sol` via `GreeterFactory.sol`:** ```sh -cast send "CreateNewGreeter(string)" "zkSync Rules" --private-key --rpc-url %%zk_testnet_rpc_url%% --chain 300 +cast send "CreateNewGreeter(string)" "ZKsync Rules" --private-key --rpc-url %%zk_testnet_rpc_url%% --chain 300 ``` **Interact with `Greeter.sol`** @@ -247,27 +247,27 @@ cast to-ascii 0x000000000000000000000000000000000000000000000000000000000000002 **Output:** ```sh -zkSync Rules +ZKsync Rules ``` -## Basic zkSync Chain Interactions with `cast` +## Basic ZKsync Chain Interactions with `cast` ### Introduction -This guide introduces you to fundamental interactions within the zkSync chain using `cast`, a component of the `foundry-zksync` toolkit. +This guide introduces you to fundamental interactions within the ZKsync chain using `cast`, a component of the `foundry-zksync` toolkit. Learn how to query chain IDs, retrieve client versions, check L2 ETH balances, obtain gas prices, and more. ### Chain ID Retrieval - **Local Node:** - Retrieve the Chain ID for a local zkSync node with: + Retrieve the Chain ID for a local ZKsync node with: ```sh cast chain-id --rpc-url http://localhost:3050 ``` - Expected Output: `270`, indicating the Chain ID of your local zkSync node. + Expected Output: `270`, indicating the Chain ID of your local ZKsync node. - **%%zk_testnet_name%%:** @@ -277,7 +277,7 @@ Learn how to query chain IDs, retrieve client versions, check L2 ETH balances, o cast chain-id --rpc-url %%zk_testnet_rpc_url%% ``` - Expected Output: `300`, the Chain ID for the %%zk_testnet_name%%. + Expected Output: `%%zk_testnet_chain_id%%`, the Chain ID for the %%zk_testnet_name%%. ### Client Version Information @@ -287,7 +287,7 @@ Knowing the client version is vital for compatibility checks and debugging: cast client --rpc-url %%zk_testnet_rpc_url%% ``` -Expected Output: `zkSync/v2.0`, denoting the client version. +Expected Output: `ZKsync/v2.0`, denoting the client version. ### L2 Balance Check @@ -311,7 +311,7 @@ Expected Output: A value such as `100000000`, indicating the current gas price. ### Latest Block Details -Gain insights into the latest block on the zkSync chain: +Gain insights into the latest block on the ZKsync chain: ```sh cast block latest --rpc-url %%zk_testnet_rpc_url%% @@ -330,8 +330,8 @@ cast send --rpc-url --chain 300 +cast send 0xe34E488C1B0Fb372Cc4a5d39219261A5a6fc7996 "setGreeting(string)" "Hello, ZKsync!" --rpc-url %%zk_testnet_rpc_url%% --private-key --chain 300 ``` -This command calls the `setGreeting` function of a contract, updating the greeting to "Hello, zkSync!". +This command calls the `setGreeting` function of a contract, updating the greeting to "Hello, ZKsync!". Replace `` with your actual private key. diff --git a/content/00.build/60.test-and-debug/00.index.md b/content/00.build/60.test-and-debug/00.index.md index 9f7105a9..2da32046 100644 --- a/content/00.build/60.test-and-debug/00.index.md +++ b/content/00.build/60.test-and-debug/00.index.md @@ -1,9 +1,9 @@ --- title: Getting Started -description: Learn about the recommended paths of testing and debugging your projects on zkSync. +description: Learn about the recommended paths of testing and debugging your projects on ZKsync. --- -zkSync Era provides two distinct testing environments for your local development needs: +ZKsync Era provides two distinct testing environments for your local development needs: - Dockerized local setup - In-Memory Node. @@ -16,8 +16,8 @@ This section aims to unpack the intricacies of these tools, aiding you in select The local testing process revolves around two principal options: -1. **Dockerized local setup**: An extensive zkSync Era network simulation that comprises a Postgres database, -a local Geth node functioning as Layer 1, and the zkSync node. +1. **Dockerized local setup**: An extensive ZKsync Era network simulation that comprises a Postgres database, +a local Geth node functioning as Layer 1, and the ZKsync node. Opt for this setup for comprehensive simulations and testing that require interaction with both L1 and L2. 2. **In-Memory node**: A lightweight, speedy alternative, the in-memory node, supports forking the state from various networks, @@ -26,7 +26,7 @@ including the mainnet and testnet. This choice is ideal for swift testing, proto ### When to use each - Use the **Dockerized local setup** for in-depth simulations and tests that necessitate L1 and L2 interaction. -This detailed setup mirrors how your contracts will function within the mainnet zkSync Era network. +This detailed setup mirrors how your contracts will function within the mainnet ZKsync Era network. - Opt for the **In-Memory node** for swift testing, prototyping, or testing new changes via the local bootloader and system contracts. This setup facilitates forking the state from the mainnet or testnet, suitable for replaying transactions @@ -56,11 +56,11 @@ The following table highlights the key characteristics of each testing environme | Complete set of APIs | No (Basic set only) | Yes | | Websocket support | No | Yes | -Whether you're testing new contracts, debugging transactions, or prototyping, zkSync Era provides robust options for local testing. +Whether you're testing new contracts, debugging transactions, or prototyping, ZKsync Era provides robust options for local testing. Both the Dockerized local setup and the In-Memory Node offer feature-rich and quick setup options, each with their distinct strengths and limitations. Choose the most appropriate setup based on your specific needs, and happy testing! -## Use zkSync CLI for easy setup +## Use ZKsync CLI for easy setup -The [zkSync CLI](/build/tooling/zksync-cli) makes it simple for developers to work with both the Dockerized local setup and In-Memory Node. +The [ZKsync CLI](/build/tooling/zksync-cli) makes it simple for developers to work with both the Dockerized local setup and In-Memory Node. Use `zksync-cli dev start` to get your local development environment running along with additional modules like Block Explorer, Wallet and Bridge. diff --git a/content/00.build/60.test-and-debug/10.dockerized-l1-l2-nodes.md b/content/00.build/60.test-and-debug/10.dockerized-l1-l2-nodes.md index 33dfd5cb..77f24b5e 100644 --- a/content/00.build/60.test-and-debug/10.dockerized-l1-l2-nodes.md +++ b/content/00.build/60.test-and-debug/10.dockerized-l1-l2-nodes.md @@ -3,22 +3,22 @@ title: Docker L1 - L2 Nodes description: Guide to setup dockerized containers of L1 and L2 nodes. --- -Welcome to this step-by-step guide on establishing a local testing environment using Docker for zkSync development. -With this guide, you can effortlessly emulate the zkSync environment on your local system, making it simpler to test and develop features. +Welcome to this step-by-step guide on establishing a local testing environment using Docker for ZKsync development. +With this guide, you can effortlessly emulate the ZKsync environment on your local system, making it simpler to test and develop features. Let's get started! **Prerequisites**: 1. **Docker and docker-compose**: Ensure that Docker and `docker-compose` are installed on your machine. If you haven't already installed them, follow the [installation guide](https://docs.docker.com/get-docker/). -2. **zkSync Hardhat plugins**: A foundational understanding of the zkSync Hardhat plugins will be beneficial. -New to zkSync development with Hardhat? Explore the [Getting Started section](/build/tooling/hardhat/getting-started). +2. **ZKsync Hardhat plugins**: A foundational understanding of the ZKsync Hardhat plugins will be beneficial. +New to ZKsync development with Hardhat? Explore the [Getting Started section](/build/tooling/hardhat/getting-started). --- ## Set up the testing environment -1. Clone the dockerized zkSync project repository to your local machine: +1. Clone the dockerized ZKsync project repository to your local machine: ```bash git clone %%zk_git_repo_local-setup%% @@ -30,7 +30,7 @@ New to zkSync development with Hardhat? Explore the [Getting Started section](/b cd local-setup ``` -1. Launch the zkSync Era node locally using the `start.sh` script: +1. Launch the ZKsync Era node locally using the `start.sh` script: ```bash ./start.sh @@ -38,13 +38,13 @@ New to zkSync development with Hardhat? Explore the [Getting Started section](/b This script spins up three essential docker containers: - 1. **Postgres**: The database supporting zkSync. - 2. **Local Geth node**: Acts as the Layer 1 (L1) for zkSync. - 3. **zkSync node**: The core component. + 1. **Postgres**: The database supporting ZKsync. + 2. **Local Geth node**: Acts as the Layer 1 (L1) for ZKsync. + 3. **ZKsync node**: The core component. ::callout{icon="i-heroicons-light-bulb" color="blue"} The first execution of the `start.sh` script should proceed without interruptions. -If it halts unexpectedly, you might need to reset the local zkSync state and retry. +If it halts unexpectedly, you might need to reset the local ZKsync state and retry. The initialization might take up to 10 minutes initially. :: @@ -62,9 +62,9 @@ The initialization might take up to 10 minutes initially. **Network Id**: 270 --- -## Reset the zkSync State +## Reset the ZKsync State -If you need to revert the zkSync state to its initial configuration, execute the `clear.sh` script: +If you need to revert the ZKsync state to its initial configuration, execute the `clear.sh` script: ```bash ./clear.sh @@ -79,7 +79,7 @@ sudo ./clear.sh --- ## Leverage rich wallets -The local zkSync setup generously equips test wallets with ample amounts of ETH on both L1 and L2, making testing easier. +The local ZKsync setup generously equips test wallets with ample amounts of ETH on both L1 and L2, making testing easier. ::drop-panel ::panel{label="Rich Wallets"} diff --git a/content/00.build/60.test-and-debug/20.in-memory-node.md b/content/00.build/60.test-and-debug/20.in-memory-node.md index b5348090..39c43cdc 100644 --- a/content/00.build/60.test-and-debug/20.in-memory-node.md +++ b/content/00.build/60.test-and-debug/20.in-memory-node.md @@ -279,7 +279,7 @@ Launch the local in-memory node: - Use [foundry-zksync](%%zk_git_repo_foundry-zksync%%). Make sure to install and configure `foundry-zksync` before proceeding - (for installation instructions, please see [Foundry with zkSync Era](%%zk_git_repo_foundry-zksync%%?tab=readme-ov-file#-installation)): + (for installation instructions, please see [Foundry with ZKsync Era](%%zk_git_repo_foundry-zksync%%?tab=readme-ov-file#-installation)): ::code-group @@ -324,7 +324,7 @@ Before proceeding, ensure that you've compiled your contracts using `forge build ```bash [foundry-zksync] forge create zkc contracts/Greeter.sol:Greeter \ - --constructor-args "ZkSync and Foundry" \ + --constructor-args "ZKsync and Foundry" \ --private-key 7726827caac94a7f9e1b160f7ea819f172f7b6f9d2a97f992c38edeab82d4110 \ --rpc-url http://localhost:8011 \ --chain 260 \ @@ -469,7 +469,7 @@ To run the test file, execute: yarn test ``` -Well done! You've successfully run your first local tests with zkSync Era and `era_test_node`. +Well done! You've successfully run your first local tests with ZKsync Era and `era_test_node`. --- diff --git a/content/00.build/60.test-and-debug/40.hardhat.md b/content/00.build/60.test-and-debug/40.hardhat.md index bbd71d29..071abda1 100644 --- a/content/00.build/60.test-and-debug/40.hardhat.md +++ b/content/00.build/60.test-and-debug/40.hardhat.md @@ -152,7 +152,7 @@ Let's refactor our test file with the provided script: // Initialize commonly used variables before running the tests before(async function () { - // Create a provider connected to the zkSync testnet + // Create a provider connected to the ZKsync testnet const provider = new Provider(zkSyncTestnet.url); // Create a wallet instance using the rich wallet's private key @@ -239,7 +239,7 @@ import { zkSyncTestnet } from "../hardhat.config"; This section imports all necessary utilities and configurations needed to run our tests. - `expect` from Chai provides assertion functionalities for our tests. -- `Wallet`, `Provider`, and `Contract` from `zksync-ethers` help us with zkSync functionalities like creating wallets and interacting with contracts. +- `Wallet`, `Provider`, and `Contract` from `zksync-ethers` help us with ZKsync functionalities like creating wallets and interacting with contracts. - `hre` and `Deployer` give us hardhat specific functionalities for deploying and interacting with our contract. - `zkSyncTestnet` from our hardhat configuration provides network details of our running `era_test_node.` diff --git a/content/00.build/60.test-and-debug/50.foundry.md b/content/00.build/60.test-and-debug/50.foundry.md index dec61424..7781d853 100644 --- a/content/00.build/60.test-and-debug/50.foundry.md +++ b/content/00.build/60.test-and-debug/50.foundry.md @@ -1,12 +1,12 @@ --- title: Foundry -description: Learn how to test using Foundry for zkSync. +description: Learn how to test using Foundry for ZKsync. --- For instructions on how to install `foundry-zksync` please refer to the Foundry [Getting Started](/build/tooling/foundry/getting-started) page. -`foundry-zksync`, a fork of Foundry, provides developers with a tailored testing framework designed specifically for zkSync environments. +`foundry-zksync`, a fork of Foundry, provides developers with a tailored testing framework designed specifically for ZKsync environments. Utilizing `forge test --zksync`, you can execute your smart contract tests efficiently. Tests are written in Solidity, and the framework is designed to recognize any contract function prefixed with `test` as a test case. By convention, tests are typically stored within the `test/` directory and have a `.t.sol` extension. @@ -20,7 +20,7 @@ For more detailed documentation related to Foundry testing please refer to the o Cheatcodes allow you to change the block number, your identity, and more. `foundry-zksync` supports the most common Foundry cheatcodes. -For an exhaustive list of supported cheatcodes refer to the [Supported Cheatcodes for Foundry-zksync](%%zk_git_repo_foundry-zksync%%/blob/main/SUPPORTED_CHEATCODES.md). +For an exhaustive list of supported cheatcodes refer to the [Supported Cheatcodes for foundry-zksync](%%zk_git_repo_foundry-zksync%%/blob/main/SUPPORTED_CHEATCODES.md). --- ## Writing Tests diff --git a/content/00.build/70.api-reference/00.index.md b/content/00.build/70.api-reference/00.index.md index 3e651274..b953d1c8 100644 --- a/content/00.build/70.api-reference/00.index.md +++ b/content/00.build/70.api-reference/00.index.md @@ -1,11 +1,11 @@ --- title: Overview -description: Explore the comprehensive guide to the zkSync Era JSON-RPC API, offering seamless Ethereum integration and advanced Layer 2 functionalities for developers. +description: Explore the comprehensive guide to the ZKsync Era JSON-RPC API, offering seamless Ethereum integration and advanced Layer 2 functionalities for developers. --- -Welcome to the zkSync Era API reference documentation! This page provides you with a high-level overview of our API capabilities and essential information. +Welcome to the ZKsync Era API reference documentation! This page provides you with a high-level overview of our API capabilities and essential information. -zkSync Era seamlessly integrates with the Ethereum ecosystem. To achieve this integration, +ZKsync Era seamlessly integrates with the Ethereum ecosystem. To achieve this integration, we support not only the standard Ethereum JSON-RPC API but also introduce L2-specific features that enhance functionality. @@ -17,7 +17,7 @@ Generally, these limits are ample, ranging from 10 to 100 requests per second (R ## Mainnet -- **Network Name**: zkSync Era Mainnet +- **Network Name**: ZKsync Era Mainnet - **RPC URL**: https://mainnet.era.zksync.io - **WebSocket URL**: wss://mainnet.era.zksync.io/ws - **Chain ID**: 324 @@ -36,7 +36,7 @@ Generally, these limits are ample, ranging from 10 to 100 requests per second (R ## API Collections Explore our curated collections of API endpoints tailored for every need, from seamless Ethereum integrations to advanced debugging tools. -Embrace the full potential of zkSync Era and elevate your dApps to new heights. Discover, integrate, and innovate with our robust API offerings. +Embrace the full potential of ZKsync Era and elevate your dApps to new heights. Discover, integrate, and innovate with our robust API offerings. ::card-group ::card @@ -49,11 +49,11 @@ Embrace the full potential of zkSync Era and elevate your dApps to new heights. :: ::card --- - title: zkSync JSON-RPC API + title: ZKsync JSON-RPC API icon: i-zksync-zksync-logo to: /build/api-reference/zks-rpc --- - Unlock Layer 2 capabilities with our dedicated zkSync JSON-RPC API. + Unlock Layer 2 capabilities with our dedicated ZKsync JSON-RPC API. :: ::card --- diff --git a/content/00.build/70.api-reference/10.conventions.md b/content/00.build/70.api-reference/10.conventions.md index 69e237cd..f90f38d9 100644 --- a/content/00.build/70.api-reference/10.conventions.md +++ b/content/00.build/70.api-reference/10.conventions.md @@ -1,6 +1,6 @@ --- title: Conventions -description: Formatting conventions and references for use with zkSync Era API docs. +description: Formatting conventions and references for use with ZKsync Era API docs. --- ## Hex value encoding diff --git a/content/00.build/70.api-reference/20.zks-rpc.md b/content/00.build/70.api-reference/20.zks-rpc.md index 1c25060d..ad501e0f 100644 --- a/content/00.build/70.api-reference/20.zks-rpc.md +++ b/content/00.build/70.api-reference/20.zks-rpc.md @@ -1,11 +1,11 @@ --- title: ZKs JSON-RPC API -description: Overview of the JSON-RPC API methods specific to zkSync Era, detailing operations and functionalities within the zkSync Era ecosystem. +description: Overview of the JSON-RPC API methods specific to ZKsync Era, detailing operations and functionalities within the ZKsync Era ecosystem. github: https://github.com/matter-labs/zksync-era/blob/main/core/lib/web3_decl/src/namespaces/zks.rs --- -zkSync Era provides a suite of JSON-RPC API methods designed for seamless interaction with its ecosystem. -These methods offer developers the tools needed to integrate their applications with zkSync Era's features, +ZKsync Era provides a suite of JSON-RPC API methods designed for seamless interaction with its ecosystem. +These methods offer developers the tools needed to integrate their applications with ZKsync Era's features, enhancing the capability to perform transactions, query network data, and interact with smart contracts efficiently. ## `zks_estimateFee` @@ -225,7 +225,7 @@ curl --request POST \ ## `zks_getBridgeContracts` -Retrieves the addresses of canonical bridge contracts for zkSync Era. +Retrieves the addresses of canonical bridge contracts for ZKsync Era. #### Parameters @@ -311,7 +311,7 @@ curl --request POST \ ## `zks_getConfirmedTokens` -Lists confirmed tokens. **Confirmed** in the method name means any token bridged to zkSync Era via the official bridge. +Lists confirmed tokens. **Confirmed** in the method name means any token bridged to ZKsync Era via the official bridge. The tokens are returned in alphabetical order by their symbol. This means the token id is its position in an alphabetically sorted array of tokens. @@ -326,7 +326,7 @@ position in an alphabetically sorted array of tokens. **Array** of token objects, each containing details about a specific confirmed token. - **l1Address**: DATA, 20 bytes - Layer 1 Ethereum address of the token. -- **l2Address**: DATA, 20 bytes - Layer 2 zkSync Era address of the token. +- **l2Address**: DATA, 20 bytes - Layer 2 ZKsync Era address of the token. - **name**: String - name of the token. - **symbol**: String - symbol of the token. - **decimals**: uint8 - number of decimals the token uses. @@ -590,7 +590,7 @@ Object containing detailed information about the specified block. - **l2FairGasPrice**: uint64 - fair gas price on L2 at the time of the block's execution. - **baseSystemContractsHashes**: Object - A collection of hashes for the base system contracts. - **operatorAddress**: DATA, 20 bytes - address of the operator who committed the block. -- **protocolVersion**: String - version of the zkSync protocol the block was committed under. +- **protocolVersion**: String - version of the ZKsync protocol the block was committed under. #### Example Request @@ -947,7 +947,7 @@ None Object -- **V2**: Object - fee parameter configuration for the current version of the zkSync protocol. +- **V2**: Object - fee parameter configuration for the current version of the ZKsync protocol. - **config**: Object - settings related to transaction fee computation. - **minimal_l2_gas_price**: uint64 - minimal gas price on L2. - **compute_overhead_part**: float64 - compute overhead part in fee calculation. @@ -1062,18 +1062,18 @@ curl --request POST \ This method generates Merkle proofs for one or more storage values associated with a specific account, accompanied by a proof of their authenticity. It verifies that these values remain unaltered. -Similar to Ethereum's `eth_getProof`, this method provides verification means under zkSync Era's distinct +Similar to Ethereum's `eth_getProof`, this method provides verification means under ZKsync Era's distinct Merkle tree architecture, noting several key differences: - The retrieval of values and their respective proofs is determined by an L1 batch number instead of a block number. -- zkSync Era employs a different Merkle tree structure, necessitating a unique approach to proof verification. +- ZKsync Era employs a different Merkle tree structure, necessitating a unique approach to proof verification. Unlike Ethereum's two-level hexadecimal trie—where the top level maps to accounts and the bottom to account storage slots—Era uses a single-level, full binary tree with 256-bit keys. - In Ethereum, account-level values are mapped using specific combinations of account and storage keys. For example, to store the code hash for account address A, it uses account `0x0000000000000000000000000000000000008002` -and a storage key generated by padding A's address. Conversely, zkSync Era's Merkle tree specifics are as follows: +and a storage key generated by padding A's address. Conversely, ZKsync Era's Merkle tree specifics are as follows: -**zkSync Era Merkle Tree Details:** +**ZKsync Era Merkle Tree Details:** - The tree is a one-level, full binary tree, supporting 256-bit keys and 40-byte values. - Keys are derived by reversing the output of `reversed(blake2s256([0_u8; 12] ++ account_address ++ storage_key))`, diff --git a/content/00.build/70.api-reference/30.debug-rpc.md b/content/00.build/70.api-reference/30.debug-rpc.md index 51d1d670..25456d4c 100644 --- a/content/00.build/70.api-reference/30.debug-rpc.md +++ b/content/00.build/70.api-reference/30.debug-rpc.md @@ -1,6 +1,6 @@ --- title: Debug JSON-RPC API -description: Methods useful for debugging purposes with zkSync Era. +description: Methods useful for debugging purposes with ZKsync Era. github: https://github.com/matter-labs/zksync-era/blob/main/core/lib/web3_decl/src/namespaces/debug.rs --- diff --git a/content/00.build/70.api-reference/35.ethereum-rpc.md b/content/00.build/70.api-reference/35.ethereum-rpc.md index 44b1ec08..2758e5e1 100644 --- a/content/00.build/70.api-reference/35.ethereum-rpc.md +++ b/content/00.build/70.api-reference/35.ethereum-rpc.md @@ -1,9 +1,9 @@ --- title: Ethereum JSON-RPC API -description: JSON-RPC API methods for the eth_ namespace for zkSync Era. +description: JSON-RPC API methods for the eth_ namespace for ZKsync Era. --- -zkSync Era supports the standard [Ethereum JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/). +ZKsync Era supports the standard [Ethereum JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/). ## `eth_chainId` @@ -1293,7 +1293,7 @@ None **String** - A single string indicating the protocol version. The version is prefixed with an identifier -(e.g. "zks" for zkSync) followed by a version number. +(e.g. "zks" for ZKsync) followed by a version number. #### Example Request @@ -1477,7 +1477,7 @@ None #### Returns **String** - The client version supported by the node. -The version is prefixed with an identifier (e.g. "zkSync" for zkSync) followed by a version number. +The version is prefixed with an identifier (e.g. "ZKsync" for ZKsync) followed by a version number. #### Example Request @@ -1498,7 +1498,7 @@ curl --request POST \ ```json { "jsonrpc": "2.0", - "result": "zkSync/v2.0", + "result": "ZKsync/v2.0", "id": 1 } ``` diff --git a/content/00.build/70.api-reference/40.pub-sub-rpc.md b/content/00.build/70.api-reference/40.pub-sub-rpc.md index a70861ea..2613fc2a 100644 --- a/content/00.build/70.api-reference/40.pub-sub-rpc.md +++ b/content/00.build/70.api-reference/40.pub-sub-rpc.md @@ -1,10 +1,10 @@ --- title: PubSub JSON-RPC API -description: Methods to subscribe/unsubscribe to events and receive notifications on zkSync Era. +description: Methods to subscribe/unsubscribe to events and receive notifications on ZKsync Era. --- Clients can subscribe to specific events and receive notifications, -thus avoiding the need to poll. zkSync is fully compatible with [Geth's pubsub API](https://geth.ethereum.org/docs/interacting-with-geth/rpc/pubsub), +thus avoiding the need to poll. ZKsync is fully compatible with [Geth's pubsub API](https://geth.ethereum.org/docs/interacting-with-geth/rpc/pubsub), except for the `syncing` subscription. The WebSocket URL is `wss://mainnet.era.zksync.io/ws` diff --git a/content/00.build/90.contributing-to-documentation/10.index.md b/content/00.build/90.contributing-to-documentation/10.index.md index 97ceb94a..eb9a9f96 100644 --- a/content/00.build/90.contributing-to-documentation/10.index.md +++ b/content/00.build/90.contributing-to-documentation/10.index.md @@ -1,17 +1,17 @@ --- title: Overview -description: Explore how to contribute to zkSync's open-source projects and community. +description: Explore how to contribute to ZKsync's open-source projects and community. --- -zkSync is an open-source project. We champion community-driven development, which means you, -from any corner of the world, can contribute to shaping zkSync's future. +ZKsync is an open-source project. We champion community-driven development, which means you, +from any corner of the world, can contribute to shaping ZKsync's future. -This section outlines how you can enhance our documentation, engage with the zkSync community, +This section outlines how you can enhance our documentation, engage with the ZKsync community, and contribute to our other open-source projects. ### Edit Existing Content -We welcome your edits to any content on the zkSync Docs website. To contribute changes, +We welcome your edits to any content on the ZKsync Docs website. To contribute changes, you will need a [GitHub account](https://github.com/signup). For minor edits, use the "Edit this page" link found on pages within the Table of Contents on the right side of the page. @@ -19,14 +19,14 @@ For minor edits, use the "Edit this page" link found on pages within the Table o To suggest changes without directly editing, submit a GitHub issue via the "Share feedback" link, also located in the Table of Contents sidebar. -The best way to contribute is by [forking the zkSync-docs repo](%%zk_git_repo_zksync-docs%%/fork), +The best way to contribute is by [forking the zksync-docs repo](%%zk_git_repo_zksync-docs%%/fork), making changes in a branch, and then submitting a PR. To start, follow the README in the project repo and read the [Contribution Guidelines](/build/contributing-to-documentation/contribution-guidelines) to familiarize yourself with the project structure and the documentation editing workflow. ### Write New Content -For the best experience in creating new content, [fork our zkSync-docs project](%%zk_git_repo_zksync-docs%%/fork) +For the best experience in creating new content, [fork our zksync-docs project](%%zk_git_repo_zksync-docs%%/fork) and set up a local project on your machine. If you are unfamiliar with the forking workflow, you can learn more about it from [GitHub's articles on Forking](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/about-forks). @@ -37,15 +37,15 @@ to maintain consistency across our documentation. ### Submit a Community Tutorial or Guide -The zkSync-docs project primarily focuses on documentation that helps readers understand zkSync and develop in the ecosystem. -If your guide or tutorial includes using another tool or service with zkSync, consider submitting it to our Community content. +The zksync-docs project primarily focuses on documentation that helps readers understand ZKsync and develop in the ecosystem. +If your guide or tutorial includes using another tool or service with ZKsync, consider submitting it to our Community content. These documents, while adjacent to our technical documentation, are hosted in a separate project repo on GitHub. -### Showcase Your Projects Built on zkSync +### Showcase Your Projects Built on ZKsync -We're excited to see new projects developed by our community within the zkSync ecosystem! +We're excited to see new projects developed by our community within the ZKsync ecosystem! If you've released a project recently, we'd love to hear about it. -Our [zkSync Community Hub Discussions](https://github.com/zkSync-Community-Hub/zksync-developers) +Our [ZKsync Community Hub Discussions](https://github.com/ZKsync-Community-Hub/zksync-developers) has a section where you can -[submit your project](https://github.com/zkSync-Community-Hub/zksync-developers/discussions/new?category=show-and-tell) +[submit your project](https://github.com/ZKsync-Community-Hub/zksync-developers/discussions/new?category=show-and-tell) for the community to discover. diff --git a/content/00.build/90.contributing-to-documentation/20.contribution-guidelines.md b/content/00.build/90.contributing-to-documentation/20.contribution-guidelines.md index e79bb34c..6e8fdbd9 100644 --- a/content/00.build/90.contributing-to-documentation/20.contribution-guidelines.md +++ b/content/00.build/90.contributing-to-documentation/20.contribution-guidelines.md @@ -1,14 +1,14 @@ --- title: Contribution Guidelines -description: Learn how to contribute to zkSync Docs +description: Learn how to contribute to ZKsync Docs --- ## Environments -**Production**: Visit [zkSync Docs](https://docs.zksync.io/) for official documentation. +**Production**: Visit [ZKsync Docs](https://docs.zksync.io/) for official documentation. **Staging**: Test and preview changes on the -[zkSync Docs Staging](https://zksync-docs-staging-5eb09.web.app/) environment. +[ZKsync Docs Staging](https://zksync-docs-staging-5eb09.web.app/) environment. ## Git workflow @@ -31,7 +31,7 @@ Submit your PR against the `staging` branch. ## What the project uses -zkSync docs is built with Vue and Nuxt framework, utilizing Nuxt Modules for content development. +ZKsync docs is built with Vue and Nuxt framework, utilizing Nuxt Modules for content development. Familiarize yourself with Nuxt and review documentation for primary plugins. ### Nuxt diff --git a/content/00.build/90.contributing-to-documentation/30.documentation-styleguide.md b/content/00.build/90.contributing-to-documentation/30.documentation-styleguide.md index 427fd571..ac238980 100644 --- a/content/00.build/90.contributing-to-documentation/30.documentation-styleguide.md +++ b/content/00.build/90.contributing-to-documentation/30.documentation-styleguide.md @@ -1,9 +1,9 @@ --- title: Documentation Styleguide -description: A comprehensive guide on zkSync documentation standards, including writing style, Markdown conventions, code snippets, and documentation categorization. +description: A comprehensive guide on ZKsync documentation standards, including writing style, Markdown conventions, code snippets, and documentation categorization. --- -This guide outlines the standards for creating zkSync documentation, +This guide outlines the standards for creating ZKsync documentation, ensuring consistency in writing style, Markdown conventions, and code snippets. ## Writing Style @@ -22,31 +22,31 @@ It's crucial to create content that is inclusive, diverse, and timeless. Focus o ## Spelling -Content in zkSync Docs are run through a linter for markdown formatting and spellchecking. +Content in ZKsync Docs are run through a linter for markdown formatting and spellchecking. Some words may not pass the spellcheck linter and will need to be added to the dictionary list. New words can be added to lists in `/cspell-config`. All words added to the dictionary are checked for spelling only. ## Time & Dates -To minimize confusion due to global date format variations, adhere to the following in zkSync docs: +To minimize confusion due to global date format variations, adhere to the following in ZKsync docs: - Start calendars on Mondays. - Use the date format `month dd, yyyy`, avoiding numerals for months (e.g., January 5, 2018). -## Kinds of zkSync Documentation +## Kinds of ZKsync Documentation -Following the [Diataxis](https://diataxis.fr/) framework, zkSync Docs categorizes content into: +Following the [Diataxis](https://diataxis.fr/) framework, ZKsync Docs categorizes content into -- **Tutorials**: Step-by-step instructions to teach general skills (e.g., Deploying your first contract on zkSync Era). +- **Tutorials**: Step-by-step instructions to teach general skills (e.g., Deploying your first contract on ZKsync Era). - **Guides**: Task completion instructions for readers with basic knowledge (e.g., Debugging with zksync-cli). - **References**: Detailed technical descriptions (e.g., Ethereum JSON-RPC API). - **Explanation**: Content to deepen subject understanding -(e.g., Differences between zkSync Native Account Abstraction and Ethereum's EIP 4337). +(e.g., Differences between ZKsync Native Account Abstraction and Ethereum's EIP 4337). ### Choosing a category for writing -Leverage the [Diataxis](https://diataxis.fr/) system when crafting a new article for zkSync Docs. +Leverage the [Diataxis](https://diataxis.fr/) system when crafting a new article for ZKsync Docs. Writing without a clear category often results in unfocused content. A well-defined focus keeps the content streamlined and clarifies the takeaway for the reader. @@ -56,7 +56,7 @@ Feel encouraged to create multiple articles across different categories to compr ## Markdown and Vue -zkSync Docs combine Markdown with Vue components, available under `/components/content`. +ZKsync Docs combine Markdown with Vue components, available under `/components/content`. Use Vue components in Markdown using `::` syntax and yaml frontmatter for props. If the Vue component is an inline slot-less component, use the `{prop="val"}` format. @@ -150,7 +150,7 @@ export default defineNuxtConfig({ ## Images -Add images to the `public/images/` directory to use in zkSync docs. +Add images to the `public/images/` directory to use in ZKsync docs. Use the markdown format to display images. ```md @@ -190,12 +190,12 @@ the name of the anchor tag separated by dashes. ## Localization -Currently, zkSync Docs does not offer localized documentation. +Currently, ZKsync Docs does not offer localized documentation. Updates to this section will be provided as localization features become available. ## Use of AI -While fully AI-generated content is not accepted for zkSync Docs, +While fully AI-generated content is not accepted for ZKsync Docs, the assistance of AI tools like ChatGPT in editing content is permitted. These tools can enhance the editing process, although they may occasionally produce inaccurate information. @@ -207,7 +207,7 @@ You can use the following as a prompt for an AI tool to help with editing: The content is written in common markdown format. Use the Google Developer Documentation Style Guide and the Microsoft Style Guide, emphasizing Bias-free communication. Write in an active voice. -Do not use the definite or indefinite article with “zkSync Era”. +Do not use the definite or indefinite article with “ZKsync Era”. Assume the reader may be an international person whose first language might not be English. Don’t use overly complex words unless the technical description is lost if changed. Ensure all communication is bias-free, following the Microsoft Style Guide's directives for inclusiveness and fairness in language. diff --git a/content/00.build/95.resources/20.glossary.md b/content/00.build/95.resources/20.glossary.md index aedd4268..f5dfa7f6 100644 --- a/content/00.build/95.resources/20.glossary.md +++ b/content/00.build/95.resources/20.glossary.md @@ -1,6 +1,6 @@ --- title: Glossary -description: A dictionary of terms you'll encounter with zkSync +description: A dictionary of terms you'll encounter with ZKsync --- ### **Account Abstraction** @@ -10,9 +10,9 @@ offering more flexibility than Externally Owned Accounts (EOAs). This innovation aims to enrich user experiences and broaden the scope of transaction authorizations, differing from EIP-4337. -### **zkSync VM** +### **ZKsync VM** -zkSync VM is the name of the architecture that enables zero-knowledge proof generation +ZKsync VM is the name of the architecture that enables zero-knowledge proof generation for the execution trace of smart contracts originally written for EVM. ### **EVM Equivalent** @@ -25,4 +25,4 @@ Thus, any EVM smart contract works with 100% assurance out of the box. EVM Compatible means that a percentage of the opcodes of Ethereum’s EVM are supported; thus, a percentage of smart contracts work out of the box. -zkSync is optimized to be EVM source-code compatible (with a custom compiler), not EVM equivalent. +ZKsync is optimized to be EVM source-code compatible (with a custom compiler), not EVM equivalent. diff --git a/content/10.zk-stack/05.concepts/00.transaction-lifecycle.md b/content/10.zk-stack/05.concepts/00.transaction-lifecycle.md index fa9e2ab5..5def4054 100644 --- a/content/10.zk-stack/05.concepts/00.transaction-lifecycle.md +++ b/content/10.zk-stack/05.concepts/00.transaction-lifecycle.md @@ -1,6 +1,6 @@ --- title: Transaction Lifecycle -description: An in-depth guide on the transaction lifecycle within the ZK Stack, explaining the roles of the sequencer and prover, and detailing the transaction statuses and types in zkSync Era. +description: An in-depth guide on the transaction lifecycle within the ZK Stack, explaining the roles of the sequencer and prover, and detailing the transaction statuses and types in ZKsync Era. --- The ZK Stack facilitates the launch of rollups, which require certain operators like the sequencer and the prover. @@ -39,7 +39,7 @@ which operates efficiently on 16GB of GPU RAM, allowing for decentralization of --- ## Transaction data -Transactions in zkSync Era are [comparable to those on Ethereum](https://ethereum.org/en/developers/docs/transactions/), +Transactions in ZKsync Era are [comparable to those on Ethereum](https://ethereum.org/en/developers/docs/transactions/), allowing the use of the same wallets. Minor differences exist, particularly regarding fee settings. For details on fees, refer to the [fee model documentation](/zk-stack/concepts/fee-mechanism). @@ -60,7 +60,7 @@ Returned values from any RPC call outputting transaction details include: Contract deployment transactions interact with the `ContractDeployer` system contract and differ from standard transactions. - + --- ## Transaction statuses @@ -77,10 +77,10 @@ For more on transaction completion and irrevocability, see the [finality documen --- ## Transaction types -zkSync Era supports a range of transaction types that are compatible with Ethereum, +ZKsync Era supports a range of transaction types that are compatible with Ethereum, yet they incorporate unique settings particularly around fee configurations. Here’s a detailed look at the transaction types, -including legacy, EIP-2930, EIP-1559, and EIP-712, and how they are implemented in zkSync Era. +including legacy, EIP-2930, EIP-1559, and EIP-712, and how they are implemented in ZKsync Era. ::callout{icon="i-heroicons-information-circle" color="blue"} When using RPC methods like [`eth_getTransactionByHash`](https://ethereum.github.io/execution-apis/api-documentation/), @@ -105,7 +105,7 @@ modifies how transaction fees are handled, replacing `gasPrice` with a base fee - `maxFeePerGas`: Overall maximum fee, including the `maxPriorityFeePerGas` and the base fee determined by the network. ::callout{icon="i-heroicons-exclamation-triangle" color="amber"} -In zkSync Era, while the EIP-1559 transaction format is supported, the `maxFeePerGas` and `maxPriorityFeePerGas` parameters are not utilized. +In ZKsync Era, while the EIP-1559 transaction format is supported, the `maxFeePerGas` and `maxPriorityFeePerGas` parameters are not utilized. :: ### EIP-712: `0x71` @@ -113,7 +113,7 @@ In zkSync Era, while the EIP-1559 transaction format is supported, the `maxFeePe [EIP-712: Typed structured data hashing and signing](https://eips.ethereum.org/EIPS/eip-712) enables structured data hashing and signing within transactions. - + ```json "gasPerPubdata": "1212", @@ -153,10 +153,10 @@ These fields are handled by our SDKs. ### Priority: `0xff` - + highlighting the unique multi-layer interaction that does not exist on Ethereum L1. --- -Each of these transaction types ensures that while zkSync Era remains closely aligned with Ethereum standards, +Each of these transaction types ensures that while ZKsync Era remains closely aligned with Ethereum standards, it also optimizes for its Layer 2 specific needs and functionalities. diff --git a/content/10.zk-stack/05.concepts/10.blocks.md b/content/10.zk-stack/05.concepts/10.blocks.md index 10a9b12b..9e1bf118 100644 --- a/content/10.zk-stack/05.concepts/10.blocks.md +++ b/content/10.zk-stack/05.concepts/10.blocks.md @@ -1,16 +1,16 @@ --- title: Blocks and Batches -description: Explore how zkSync Era processes transactions by grouping them into blocks and batches, the role of sealing blocks, and the importance of rollbacks in the virtual machine. +description: Explore how ZKsync Era processes transactions by grouping them into blocks and batches, the role of sealing blocks, and the importance of rollbacks in the virtual machine. --- ## Overview of blocks and batches -zkSync Era processes transactions not only as individual units but also groups them into blocks and batches for efficiency and cost-effectiveness. +ZKsync Era processes transactions not only as individual units but also groups them into blocks and batches for efficiency and cost-effectiveness. This section covers how transactions are grouped, the concept of sealing blocks, and why rollbacks are crucial in our virtual machine (VM). ### Understanding L2 and L1 blocks -**L2 blocks**, also referred to as miniblocks, are specific to the zkSync Era network and are not recorded on the Ethereum blockchain. +**L2 blocks**, also referred to as miniblocks, are specific to the ZKsync Era network and are not recorded on the Ethereum blockchain. These blocks contain a smaller number of transactions, allowing for quick processing. Contrastingly, **L1 rollup blocks**, or batches, consist of several consecutive L2 blocks. @@ -26,7 +26,7 @@ To clarify these concepts visually, consider the following illustrations: *The Block layout image displays the organization of transactions within blocks and how L2 blocks are arranged within L1 batches.* ![Explorer example](/images/zk-stack/explorer-example.png) -*This Explorer example shows how the zkSync Era explorer represents blocks and transactions.* +*This Explorer example shows how the ZKsync Era explorer represents blocks and transactions.* --- ## Detailed look at L2 blocks @@ -53,7 +53,7 @@ The properties of an L2 block can be observed when using the `getBlock` method f | number | The current L2 block number, null if pending | | timestamp | UNIX timestamp for when the L2 block was formed | | nonce | Tracks the most recent transaction by the account's counter | -| difficulty | Always returns `2500000000000000` as zkSync does not use a proof of work consensus | +| difficulty | Always returns `2500000000000000` as ZKsync does not use a proof of work consensus | | gasLimit | Maximum gas allowed in this block, always returns `2^32-1` | | gasUsed | Actual amount of gas used in this block | | transactions | An array of transaction objects | @@ -62,13 +62,13 @@ The properties of an L2 block can be observed when using the `getBlock` method f ::callout{icon="i-heroicons-information-circle" color="blue"} **Block number and timestamp considerations**: -Recent protocol updates have changed some block properties on zkSync Era. More information is available on the [GitHub announcement](https://github.com/zkSync-Community-Hub/zkync-developers/discussions/87). +Recent protocol updates have changed some block properties on ZKsync Era. More information is available on the [GitHub announcement](https://github.com/ZKsync-Community-Hub/zkync-developers/discussions/87). :: --- ## The role of L1 batches -L1 batches are integral to zkSync Era as they represent the unit of computation for generating proofs. +L1 batches are integral to ZKsync Era as they represent the unit of computation for generating proofs. From a VM perspective, each L1 batch is akin to executing a program—the Bootloader, which processes all transactions within the batch. ### L1 batch size and processing times @@ -109,16 +109,16 @@ These oracles need to support snapshotting and rolling back operations to ensure --- ## Retrieving block and batch numbers -Accessing block and batch numbers in zkSync Era is straightforward: +Accessing block and batch numbers in ZKsync Era is straightforward: - `eth_blockNumber` retrieves the latest L2 block number. - `eth_getBlockByNumber` provides details for a specific L2 block. -- `zks_L1BatchNumber` fetches the most recent batch number, critical for understanding the scope of transactions and operations within zkSync Era. +- `zks_L1BatchNumber` fetches the most recent batch number, critical for understanding the scope of transactions and operations within ZKsync Era. --- -## Deeper dive into zkSync Era's batch and block mechanisms +## Deeper dive into ZKsync Era's batch and block mechanisms -This section delves into the intricate processes involved in initializing and managing L1 batches and L2 blocks within zkSync Era, +This section delves into the intricate processes involved in initializing and managing L1 batches and L2 blocks within ZKsync Era, providing insights into the technical frameworks and operational protocols. ### Initializing L1 batch @@ -168,7 +168,7 @@ The hash of an L2 block is To add a transaction hash to the current miniblock we use the `appendTransactionToCurrentL2Block` [function](https://github.com/code-423n4/2023-10-zksync/blob/ef99273a8fdb19f5912ca38ba46d6bd02071363d/code/system-contracts/contracts/SystemContext.sol#L373). -Since zkSync is a state-diff based rollup, there is no way to deduce the hashes of the L2 blocks based on the transactions’ in the batch +Since ZKsync is a state-diff based rollup, there is no way to deduce the hashes of the L2 blocks based on the transactions’ in the batch (because there is no access to the transaction’s hashes). At the same time, in order to serve `blockhash` method, the VM requires the knowledge of some of the previous L2 block hashes. In order to save up on pubdata (by making sure that the same storage slots are reused, i.e. we only have repeated writes) we store only the @@ -180,7 +180,7 @@ You can read more on what are the repeated writes and how the pubdata is process For blocks that predate certain system upgrades (migration upgrades), the blockhash is generated using a simplified formula that incorporates only the block number. -This method ensures backward compatibility and integrity across different block versions within the zkSync Era system. +This method ensures backward compatibility and integrity across different block versions within the ZKsync Era system. We use the following formula for their hash: @@ -188,7 +188,7 @@ We use the following formula for their hash: ### Timing invariants -zkSync Era maintains strict timing invariants to ensure that each block's timestamp is accurate and consistent relative to other system timestamps. +ZKsync Era maintains strict timing invariants to ensure that each block's timestamp is accurate and consistent relative to other system timestamps. These invariants include: diff --git a/content/10.zk-stack/05.concepts/20.fee-mechanism.md b/content/10.zk-stack/05.concepts/20.fee-mechanism.md index 7ae8b5ea..5b78a63a 100644 --- a/content/10.zk-stack/05.concepts/20.fee-mechanism.md +++ b/content/10.zk-stack/05.concepts/20.fee-mechanism.md @@ -1,19 +1,19 @@ --- -title: "zkSync Fee Mechanism" -description: "Understanding the fee mechanism in zkSync, including the influence of L1 gas prices on L2 transactions, and the unique pricing for batch overheads and operation costs." +title: "ZKsync Fee Mechanism" +description: "Understanding the fee mechanism in ZKsync, including the influence of L1 gas prices on L2 transactions, and the unique pricing for batch overheads and operation costs." --- -## Introduction to zkSync's Fee Structure +## Introduction to ZKsync's Fee Structure In Ethereum, computational and storage costs are quantified using gas, with specific gas costs for each operation, which may change during system [upgrades](https://blog.ethereum.org/2021/03/08/ethereum-berlin-upgrade-announcement). -However, zkSync and other Layer 2 solutions face challenges in adopting this model due to the necessity of publishing pubdata on Ethereum. +However, ZKsync and other Layer 2 solutions face challenges in adopting this model due to the necessity of publishing pubdata on Ethereum. As a result, the cost of L2 transactions is tied to the fluctuating gas prices on L1 and cannot be hardcoded. --- ## Gas Per Pubdata Limit -In zkSync, transaction costs are influenced by the volatile gas prices on L1, which are needed to publish pubdata, verify proofs, and more. -This is addressed in zkSync-specific EIP712 transactions which include a `gas_per_pubdata_limit` field, +In ZKsync, transaction costs are influenced by the volatile gas prices on L1, which are needed to publish pubdata, verify proofs, and more. +This is addressed in ZKsync-specific EIP712 transactions which include a `gas_per_pubdata_limit` field, indicating the maximum gas price the operator can charge users per byte of pubdata. For Ethereum transactions lacking this field, the operator is restrained from exceeding a predefined constant value. @@ -22,21 +22,21 @@ For Ethereum transactions lacking this field, the operator is restrained from ex The complexity of zero-knowledge proof operations differs significantly from standard CPU operations. For example, the `keccak256` operation, while optimized for CPU performance, -incurs higher costs in zero-knowledge systems due to its mathematical demands, leading to distinct pricing structures in zkSync compared to Ethereum. +incurs higher costs in zero-knowledge systems due to its mathematical demands, leading to distinct pricing structures in ZKsync compared to Ethereum. --- -## Intrinsic Costs in zkSync +## Intrinsic Costs in ZKsync Unlike Ethereum, which uses a base intrinsic transaction cost to cover updates to user balances, nonce, and signature verifications, -zkSync does not include these costs in its intrinsic transaction pricing. -This stems from zkSync's support for account abstraction, +ZKsync does not include these costs in its intrinsic transaction pricing. +This stems from ZKsync's support for account abstraction, allowing different account types to potentially lower transaction costs through optimizations or more zk-friendly signature schemes. -The costs in zkSync primarily cover the intrinsic zero-knowledge proving costs, which are measured through testing and hardcoded due to their complexity. +The costs in ZKsync primarily cover the intrinsic zero-knowledge proving costs, which are measured through testing and hardcoded due to their complexity. --- ## Understanding Batch Overhead -zkSync incurs operational costs for proving each batch, referred to as "batch overhead," which includes: +ZKsync incurs operational costs for proving each batch, referred to as "batch overhead," which includes: 1. **L2 Costs**: These are the costs in L2 gas required for proving circuits. 2. **L1 Costs**: These cover proof verification and general batch processing on L1. @@ -46,7 +46,7 @@ Several factors determine when a batch is sealed, such as time constraints for u the transaction slot capacity of the bootloader, memory usage from transaction encoding, and pubdata bytes limitations, which currently stand at 128kb per transaction due to node constraints. -In the case of zkSync batches, here are the resources the protocol watches to decide when a batch is sealed: +In the case of ZKsync batches, here are the resources the protocol watches to decide when a batch is sealed: 1. **Time.** The same as on Ethereum, the batch should generally not take too much time to be closed in order to provide better UX. To represent the time needed we use a batch gas limit, note that it is higher than the gas limit for a @@ -60,7 +60,7 @@ In the case of zkSync batches, here are the resources the protocol watches to de single slot happening in the same batch need to be published only once, we need to publish all the batch’s public data only after the transaction has been processed. Right now, we publish all the data with the storage diffs as well as L2→L1 messages, etc in a single transaction at the end of the batch. Most nodes have limit of 128kb per transaction - and so this is the limit that each zkSync batch should adhere to. + and so this is the limit that each ZKsync batch should adhere to. Each transaction spends the batch overhead proportionally to how much of these resources it requires. @@ -71,7 +71,7 @@ transaction. --- ## Base Fee and Gas Limits -To safeguard against DDoS attacks, zkSync implements a `MAX_TRANSACTION_GAS_LIMIT`. +To safeguard against DDoS attacks, ZKsync implements a `MAX_TRANSACTION_GAS_LIMIT`. The `baseFee` reflects the real costs of computation for the proof, and the `gas_per_pubdata_limit` must be set sufficiently high to cover the fees for the required L1 gas per byte of pubdata. During periods of high L1 gas demand, adjustments to these limits ensure that transactions remain feasible without exceeding resource allocations. @@ -103,9 +103,9 @@ sure that the excess gas will be spent on the pubdata. --- ## Refunds -Another distinctive feature of the fee model used on zkSync is the availability of refunds. +Another distinctive feature of the fee model used on ZKsync is the availability of refunds. Refunds can be issued for unused limited system resources and overpaid computation. -This is needed because of the relatively big upfront payments required in zkSync to provide DDoS security. +This is needed because of the relatively big upfront payments required in ZKsync to provide DDoS security. --- ## Formulas and constants for calculating fees @@ -139,7 +139,7 @@ contain almost any arbitrary value depending on the capacity of batch that we wa `BOOTLOADER_MEMORY_FOR_TXS` (_BM_) — The size of the bootloader memory that is used for transaction encoding (i.e. excluding the constant space, preallocated for other purposes). -`GUARANTEED_PUBDATA_PER_TX` (_PG_) — The guaranteed number of pubdata that should be possible to pay for in one zkSync +`GUARANTEED_PUBDATA_PER_TX` (_PG_) — The guaranteed number of pubdata that should be possible to pay for in one ZKsync batch. This is a number that should be enough for most reasonable cases. ### Derived constants diff --git a/content/10.zk-stack/05.concepts/30.finality.md b/content/10.zk-stack/05.concepts/30.finality.md index a84f88fa..d8f67864 100644 --- a/content/10.zk-stack/05.concepts/30.finality.md +++ b/content/10.zk-stack/05.concepts/30.finality.md @@ -13,19 +13,19 @@ which translates to approximately 13 minutes under normal network conditions. This duration allows for sufficient block confirmations to prevent reversals and ensure that transactions are settled securely. --- -## Finality on zkSync Era +## Finality on ZKsync Era -zkSync Era, as a Layer 2 (L2) rollup, ties its finality and security mechanisms to those of the underlying Layer 1 (L1) Ethereum chain. -The steps involved in reaching finality in zkSync Era include: +ZKsync Era, as a Layer 2 (L2) rollup, ties its finality and security mechanisms to those of the underlying Layer 1 (L1) Ethereum chain. +The steps involved in reaching finality in ZKsync Era include: 1. **Batch Formation**: Transactions are collected and grouped into a batch. This step generally takes a few minutes. 2. **Batch Commitment**: The complete batch is committed to the Ethereum blockchain. 3. **Proof Generation**: A cryptographic proof that validates the entire batch is generated. This process typically takes about an hour. 4. **Proof Submission**: The generated proof is submitted to an Ethereum smart contract for verification. 5. **Batch Finalization**: The batch undergoes a final verification and is settled on Ethereum. - This step includes a delay of approximately 21 hours as a security measure during the alpha phase of zkSync Era. + This step includes a delay of approximately 21 hours as a security measure during the alpha phase of ZKsync Era. -Overall, the complete finality time for a transaction on zkSync Era is around 24 hours, aligning with the finality of the corresponding Ethereum block. +Overall, the complete finality time for a transaction on ZKsync Era is around 24 hours, aligning with the finality of the corresponding Ethereum block. ::callout{icon="i-heroicons-information-circle" color="blue"} Advancements in validity proof research are continuously being made, @@ -35,11 +35,11 @@ promising potential reductions in proof generation times and, consequently, fast --- ## Instant confirmations -While the full finality process on zkSync Era can take up to 24 hours, transactions are treated with instant confirmation for user convenience: +While the full finality process on ZKsync Era can take up to 24 hours, transactions are treated with instant confirmation for user convenience: - **Immediate Transaction Display**: Once submitted, transactions are quickly shown in the user interface and API as unconfirmed. - **Immediate Asset Usability**: Users can immediately utilize the transferred assets for further transactions, - which may even be included in the same zkSync Era batch. + which may even be included in the same ZKsync Era batch. This feature enables a seamless user experience, although more cautious users may opt to wait for the transaction to reach full finality diff --git a/content/10.zk-stack/05.concepts/40.system-upgrades.md b/content/10.zk-stack/05.concepts/40.system-upgrades.md index 9e758cc8..7d69db8d 100644 --- a/content/10.zk-stack/05.concepts/40.system-upgrades.md +++ b/content/10.zk-stack/05.concepts/40.system-upgrades.md @@ -1,11 +1,11 @@ --- title: System Upgrades -description: Explore the structured approach to system upgrades in zkSync Era, including the roles of different branches and the audit process to ensure security and reliability. +description: Explore the structured approach to system upgrades in ZKsync Era, including the roles of different branches and the audit process to ensure security and reliability. --- -The [system contracts](https://github.com/matter-labs/era-contracts) at zkSync Era are pivotal for the functionality and security of the platform. +The [system contracts](https://github.com/matter-labs/era-contracts) at ZKsync Era are pivotal for the functionality and security of the platform. To ensure that these contracts meet the highest standards of security and reliability, a rigorous update and audit process is followed. -Here's a detailed breakdown of the system upgrade process for zkSync Era. +Here's a detailed breakdown of the system upgrade process for ZKsync Era. --- ## Main branch @@ -13,7 +13,7 @@ Here's a detailed breakdown of the system upgrade process for zkSync Era. The `main` branch of the [system contracts repository](https://github.com/matter-labs/era-contracts/blob/main/README.md) serves as the production-ready codebase. It contains the latest, most stable version of the protocol that has passed through all required audits. -This branch represents the secure backbone of zkSync Era, ready for deployment. +This branch represents the secure backbone of ZKsync Era, ready for deployment. ## Development branch @@ -53,6 +53,6 @@ This strategy helps in keeping the `main` branch up-to-date with all non-critica --- ## Conclusion -The structured upgrade process at zkSync Era not only ensures that system contracts are robust and secure +The structured upgrade process at ZKsync Era not only ensures that system contracts are robust and secure but also maintains a clear pathway from development to deployment. -This process underscores zkSync Era's commitment to reliability, security, and continuous improvement in its blockchain solutions. +This process underscores ZKsync Era's commitment to reliability, security, and continuous improvement in its blockchain solutions. diff --git a/content/10.zk-stack/05.concepts/50.hyperchains-hyperscaling.md b/content/10.zk-stack/05.concepts/50.hyperchains-hyperscaling.md index ec6f2e2e..2a8032b0 100644 --- a/content/10.zk-stack/05.concepts/50.hyperchains-hyperscaling.md +++ b/content/10.zk-stack/05.concepts/50.hyperchains-hyperscaling.md @@ -246,7 +246,7 @@ zkPorter is detailed extensively in [this informative post](https://blog.matter- Key aspects include: - **Cost Efficiency**: Designed for users seeking lower transaction costs, potentially at the expense of higher security risks. -- **Guardian Networks**: Developers can utilize the zkSync main zkPorter implementation, +- **Guardian Networks**: Developers can utilize the ZKsync main zkPorter implementation, establish their own guardian network, or integrate external DA solutions like EigenDA. #### Validium @@ -294,5 +294,5 @@ Hyperchains support various methods to enhance privacy: - **Validium Mode**: Naturally provides privacy as long as the data is kept confidential by the operator. - **Privacy Protocols**: Specialized L3 protocols like Aztec or Tornado can be integrated to provide user-level privacy - while benefiting from zkSync Era’s features like account abstraction. + while benefiting from ZKsync Era’s features like account abstraction. - **Self-hosted Rollups**: Represent a long-term solution for privacy and scalability, where users manage their data and confirm state transitions off-chain. diff --git a/content/10.zk-stack/05.concepts/60.data-availability/00.index.md b/content/10.zk-stack/05.concepts/60.data-availability/00.index.md index 27517619..807599b4 100644 --- a/content/10.zk-stack/05.concepts/60.data-availability/00.index.md +++ b/content/10.zk-stack/05.concepts/60.data-availability/00.index.md @@ -1,9 +1,9 @@ --- title: Overview -description: An in-depth look at how zkSync ensures data availability through state diffs and compresses data to optimize L1 submissions, plus tools for reconstructing L2 state from L1 public data. +description: An in-depth look at how ZKsync ensures data availability through state diffs and compresses data to optimize L1 submissions, plus tools for reconstructing L2 state from L1 public data. --- -Data availability is a cornerstone of zkSync's architecture, +Data availability is a cornerstone of ZKsync's architecture, ensuring that the entire Layer 2 (L2) state can be [reconstructed](https://github.com/matter-labs/zksync-era/blob/main/docs/specs/data_availability/reconstruction.md) from the data submitted to Ethereum's Layer 1 (L1). @@ -11,17 +11,17 @@ This process not only secures the network but also optimizes cost-efficiency thr ## State diffs: Optimizing storage slots -Instead of submitting detailed transaction data, zkSync focuses on posting **state diffs** to L1. -These diffs represent changes in the blockchain's state, enabling zkSync to efficiently manage how data is stored and referenced: +Instead of submitting detailed transaction data, ZKsync focuses on posting **state diffs** to L1. +These diffs represent changes in the blockchain's state, enabling ZKsync to efficiently manage how data is stored and referenced: - **Efficient Use of Storage Slots**: Changes to the same storage slots across multiple transactions can be grouped, reducing the amount of data that needs to be sent to L1 and thereby lowering gas costs. - **Compression Techniques**: All data sent to L1, including state diffs, is compressed to further reduce costs. - [Read more about zkSync's compression methods](https://github.com/matter-labs/zksync-era/blob/main/docs/specs/data_availability/compression.md). + [Read more about ZKsync's compression methods](https://github.com/matter-labs/zksync-era/blob/main/docs/specs/data_availability/compression.md). ## Additional data posted to L1 -In addition to state diffs, zkSync also posts other crucial information to ensure comprehensive data availability: +In addition to state diffs, ZKsync also posts other crucial information to ensure comprehensive data availability: - **L2 to L1 Logs and Messages**: These ensure that communications and events are recorded and accessible. - **Published Bytecodes**: The bytecodes of deployed smart contracts are made available, crucial for contract interaction and verification. @@ -38,11 +38,11 @@ allowing some storage slots to remain off-chain while critical data is posted to ## Recreating L2 State From L1 Pubdata -zkSync provides tools to validate and reconstruct the L2 state from data available on L1. Here's how this process is typically managed: +ZKsync provides tools to validate and reconstruct the L2 state from data available on L1. Here's how this process is typically managed: ## Basic Flow -1. First, we need to filter all of the transactions to the L1 zkSync contract for only the `commitBlocks` transactions +1. First, we need to filter all of the transactions to the L1 ZKsync contract for only the `commitBlocks` transactions where the proposed block has been referenced by a corresponding `executeBlocks` call (the reason for this is that a committed or even proven block can be reverted but an executed one cannot). diff --git a/content/10.zk-stack/05.concepts/99.account-abstraction.md b/content/10.zk-stack/05.concepts/99.account-abstraction.md index a4a20094..01e8902c 100644 --- a/content/10.zk-stack/05.concepts/99.account-abstraction.md +++ b/content/10.zk-stack/05.concepts/99.account-abstraction.md @@ -1,9 +1,9 @@ --- title: Account Abstraction -description: Explore the nuances of account abstraction in zkSync, including account versioning, nonce ordering, and the significance of returned magic values in transaction validation. +description: Explore the nuances of account abstraction in ZKsync, including account versioning, nonce ordering, and the significance of returned magic values in transaction validation. --- -Account abstraction (AA) is a pivotal feature in zkSync that allows for greater flexibility and functionality +Account abstraction (AA) is a pivotal feature in ZKsync that allows for greater flexibility and functionality in how accounts operate and interact with transactions. - + ## IR Compilers @@ -72,13 +72,13 @@ easier to maintain outside of the framework. We recommend using our IR compilers via [their corresponding Hardhat plugins](/build/tooling/hardhat/getting-started). Add these plugins to the Hardhat's config file to compile new projects or migrate -existing ones to zkSync Era. For a lower-level approach, download our compiler binaries via the +existing ones to ZKsync Era. For a lower-level approach, download our compiler binaries via the links above and use their CLI interfaces. ### Installing and configuring plugins Add the plugins below to the Hardhat's config file to compile new projects or migrate -existing ones to zkSync Era. For a lower-level approach, download our compiler binaries +existing ones to ZKsync Era. For a lower-level approach, download our compiler binaries [links above](#ir-compilers) and use their CLI interfaces. - [hardhat-zksync-solc documentation](/build/tooling/hardhat/hardhat-zksync-solc) diff --git a/content/10.zk-stack/10.components/70.compiler/10.toolchain/20.solidity.md b/content/10.zk-stack/10.components/70.compiler/10.toolchain/20.solidity.md index 667cb001..3438cd0c 100644 --- a/content/10.zk-stack/10.components/70.compiler/10.toolchain/20.solidity.md +++ b/content/10.zk-stack/10.components/70.compiler/10.toolchain/20.solidity.md @@ -1,12 +1,8 @@ --- -head: - - - meta - - name: "twitter:title" - content: Solidity Compiler | zkSync Docs +title: Solidity Compiler +description: --- -# Solidity - The compiler we provide as a part of our toolchain is called [zksolc](%%zk_git_repo_zksolc-bin%%). It operates on IR and metadata received from the underlying [solc](https://docs.soliditylang.org/en/latest/) compiler, which must be available in `$PATH`, or its path must be explicitly passed via the CLI (command-line interface). @@ -109,7 +105,7 @@ sufficient level of abstraction over EVM. Projects written in Solidity `>=0.8` are compiled by default through the Yul pipeline, whereas those written in `<=0.7` are compiled via EVM legacy assembly which is a less friendly IR due to its obfuscation of control-flow and call graphs. -Due to this obfuscation, there are several limitations in zkSync for contracts written in Solidity `<=0.7`: +Due to this obfuscation, there are several limitations in ZKsync for contracts written in Solidity `<=0.7`: 1. Recursion on the stack is not supported. 2. Internal function pointers are not supported. @@ -117,7 +113,7 @@ Due to this obfuscation, there are several limitations in zkSync for contracts w ## Using libraries -The usage of libraries in Solidity is supported in zkSync Era with the following considerations: +The usage of libraries in Solidity is supported in ZKsync Era with the following considerations: - If a Solidity library can be inlined (i.e. it only contains `private` or `internal` methods), it can be used without any additional configuration. diff --git a/content/10.zk-stack/10.components/70.compiler/10.toolchain/30.vyper.md b/content/10.zk-stack/10.components/70.compiler/10.toolchain/30.vyper.md index b6dfb3fd..b180f72b 100644 --- a/content/10.zk-stack/10.components/70.compiler/10.toolchain/30.vyper.md +++ b/content/10.zk-stack/10.components/70.compiler/10.toolchain/30.vyper.md @@ -1,12 +1,8 @@ --- -head: - - - meta - - name: "twitter:title" - content: Vyper Compiler | zkSync Docs +title: Vyper Compiler +description: --- -# Vyper - The Vyper compiler we provide as part of our toolchain is called [zkvyper](%%zk_git_repo_zkvyper-bin%%). It operates on Vyper’s LLL IR, and metadata received from the underlying [vyper](https://docs.vyperlang.org/en/latest/index.html) compiler, which must be available in `$PATH`, or its path must be explicitly passed via the CLI (command-line interface). diff --git a/content/10.zk-stack/10.components/70.compiler/10.toolchain/40.llvm.md b/content/10.zk-stack/10.components/70.compiler/10.toolchain/40.llvm.md index 131c0379..51d54263 100644 --- a/content/10.zk-stack/10.components/70.compiler/10.toolchain/40.llvm.md +++ b/content/10.zk-stack/10.components/70.compiler/10.toolchain/40.llvm.md @@ -1,12 +1,8 @@ --- -head: - - - meta - - name: "twitter:title" - content: LLVM Framework | zkSync Docs +title: LLVM Framework +description: --- -# LLVM Framework - ::callout{icon="i-heroicons-exclamation-triangle" color="amber"} To safeguard the security and efficiency of your application, always use the latest compiler version. :: diff --git a/content/10.zk-stack/10.components/70.compiler/20.specification/10.overview.md b/content/10.zk-stack/10.components/70.compiler/20.specification/10.overview.md index ab2fd663..7b3896f3 100644 --- a/content/10.zk-stack/10.components/70.compiler/20.specification/10.overview.md +++ b/content/10.zk-stack/10.components/70.compiler/20.specification/10.overview.md @@ -17,7 +17,7 @@ to better understand the workflow or --> | solc | The original Solidity compiler, developed by the Ethereum community. Called by zksolc as a subprocess to get the IRs of the source code of the project. | | LLVM | The compiler framework, used for optimizations and assembly generation. | | EraVM assembler/linker | The tool written in Rust. Translates the assembly emitted by LLVM to the target bytecode. | -| Virtual machine | The zkSync Era virtual machine called EraVM with a custom instruction set. | +| Virtual machine | The ZKsync Era virtual machine called EraVM with a custom instruction set. | | [EraVM specification](%%zk_git_repo_eravm-spec%%/spec.html) | A combination of a human readable documentation and a formal description of EraVM, including its structure and operation, instruction syntax, semantic, and encoding. | | Intermediate representation (IR) | The data structure or code used internally by the compiler to represent source code. | | Yul | One of the Solidity IRs. Is a superset of the assembly available in Solidity. Used by default for contracts written in Solidity ≥0.8. | @@ -27,11 +27,11 @@ to better understand the workflow or --> | EraVM bytecode | The smart contract bytecode, executed by EraVM. | | Stack | The segment of the non-persistent contract memory. Consists of two parts: global data and function stack frame. | | Heap | The segment of the non-persistent contract memory. All the data is globally accessible by both the compiler and user code. The allocation is handled by the solc’s Yul/EVMLA allocator only. | -| Auxiliary heap | The segment of the non-persistent contract memory, introduced to avoid conflicts with the solc’s allocator. All the data is globally accessible by the compiler only. The allocation is handled by the zksolc’s compiler only. All contract calls specific to zkSync, including the system contracts, are made via the auxiliary heap. It is also used to return data (e.g. the array of immutables) from the constructor. | +| Auxiliary heap | The segment of the non-persistent contract memory, introduced to avoid conflicts with the solc’s allocator. All the data is globally accessible by the compiler only. The allocation is handled by the zksolc’s compiler only. All contract calls specific to ZKsync, including the system contracts, are made via the auxiliary heap. It is also used to return data (e.g. the array of immutables) from the constructor. | | Calldata | The segment of the non-persistent contract memory. The heap or auxiliary heap of the parent/caller contract. | | Return data | The segment of the non-persistent contract memory. The heap or auxiliary heap of the child/callee contract. | | Contract storage | The persistent contract memory. No relevant differences from that of EVM. | -| System contracts | The special set of zkSync kernel contracts written in Solidity by Matter Labs. | +| System contracts | The special set of ZKsync kernel contracts written in Solidity by Matter Labs. | | Contract context | The special storage of VM that keeps data like the current address, the caller’s address, etc. | ## Concepts diff --git a/content/10.zk-stack/10.components/70.compiler/20.specification/30.system-contracts.md b/content/10.zk-stack/10.components/70.compiler/20.specification/30.system-contracts.md index 8903691f..c798e724 100644 --- a/content/10.zk-stack/10.components/70.compiler/20.specification/30.system-contracts.md +++ b/content/10.zk-stack/10.components/70.compiler/20.specification/30.system-contracts.md @@ -8,7 +8,7 @@ Many EVM instructions require special handling by the System Contracts. Among th handling, see [the EVM instructions reference](instructions/evm/overview). -There are several types of System Contracts from the perspective of how they are handled by the zkSync Era compilers: +There are several types of System Contracts from the perspective of how they are handled by the ZKsync Era compilers: 1. [Environmental data storage](#environmental-data-storage). 2. [KECCAK256 hash function](#keccak256-hash-function). @@ -47,7 +47,7 @@ For reference, see Handling of this function is similar to [Environmental Data Storage](#environmental-data-storage) with one difference: Since EVM also uses heap to store the calldata for `KECCAK256`, the required memory chunk is allocated by the IR -generator, and zkSync Era compiler does not need to use [the auxiliary heap](#auxiliary-heap). +generator, and ZKsync Era compiler does not need to use [the auxiliary heap](#auxiliary-heap). For reference, see [the LLVM IR codegen source code](%%zk_git_repo_era-compiler-llvm-context%%/blob/main/src/eravm/context/function/llvm_runtime.rs). @@ -57,7 +57,7 @@ For reference, see +on ZKsync Era documentation. --> For reference, see LLVM IR codegen for [the deployer call](%%zk_git_repo_era-compiler-llvm-context%%/blob/main/src/eravm/context/function/runtime/deployer_call.rs) @@ -96,7 +96,7 @@ For reference, see [the LLVM IR codegen source code](%%zk_git_repo_era-compiler- +on ZKsync Era documentation. --> For reference, see LLVM IR codegen for [instructions for immutables](%%zk_git_repo_era-compiler-llvm-context%%/blob/main/src/eravm/evm/immutable.rs) diff --git a/content/10.zk-stack/10.components/70.compiler/20.specification/60.instructions/10.overview.md b/content/10.zk-stack/10.components/70.compiler/20.specification/60.instructions/10.overview.md index 60d8a250..aef64ba0 100644 --- a/content/10.zk-stack/10.components/70.compiler/20.specification/60.instructions/10.overview.md +++ b/content/10.zk-stack/10.components/70.compiler/20.specification/60.instructions/10.overview.md @@ -27,7 +27,7 @@ Every instruction is translated via two IRs available in the Solidity compiler u ## Yul Extensions -At the moment there is no way of adding zkSync-specific instructions to Yul as long as we use the official Solidity +At the moment there is no way of adding ZKsync-specific instructions to Yul as long as we use the official Solidity compiler, which would produce an error on an unknown instruction. There are two ways of supporting such instructions: one for Solidity and one for Yul. @@ -42,7 +42,7 @@ The reference of such extensions is coming soon. ### The Yul Mode -The non-call zkSync-specific instructions are only available in the Yul mode of **zksolc**. +The non-call ZKsync-specific instructions are only available in the Yul mode of **zksolc**. To have better compatibility, they are implemented as `verbatim` instructions with some predefined keys. The reference of such extensions is coming soon. diff --git a/content/10.zk-stack/10.components/70.compiler/20.specification/60.instructions/20.evm/10.overview.md b/content/10.zk-stack/10.components/70.compiler/20.specification/60.instructions/20.evm/10.overview.md index 0888a432..ca858b32 100644 --- a/content/10.zk-stack/10.components/70.compiler/20.specification/60.instructions/20.evm/10.overview.md +++ b/content/10.zk-stack/10.components/70.compiler/20.specification/60.instructions/20.evm/10.overview.md @@ -21,9 +21,9 @@ Such instructions are grouped into the following categories according to [the or - [Create](create) - [Return](return) -### zkSync VM Assembly +### ZKsync VM Assembly Assembly emitted for LLVM standard library functions depends on available optimizations which differ between versions. If there is no assembly example under an instruction, compile a reproducing contract with the latest version of `zksolc`. -zkSync VM specification contains a list of [all zkSync VM instructions (see the table of contents)](%%zk_git_repo_eravm-spec%%/spec.html). +ZKsync VM specification contains a list of [all ZKsync VM instructions (see the table of contents)](%%zk_git_repo_eravm-spec%%/spec.html). diff --git a/content/10.zk-stack/10.components/70.compiler/20.specification/60.instructions/20.evm/calls.md b/content/10.zk-stack/10.components/70.compiler/20.specification/60.instructions/20.evm/calls.md index ac85433d..e27ceecd 100644 --- a/content/10.zk-stack/10.components/70.compiler/20.specification/60.instructions/20.evm/calls.md +++ b/content/10.zk-stack/10.components/70.compiler/20.specification/60.instructions/20.evm/calls.md @@ -9,7 +9,7 @@ The call type is encoded on the assembly level, so we will describe the common h +[ZKsync Era documentation](https://era.zksync.io/docs/reference/architecture/differences-with-ethereum.html#call-staticcall-delegatecall). --> ## CALL diff --git a/content/10.zk-stack/10.components/70.compiler/20.specification/60.instructions/20.evm/create.md b/content/10.zk-stack/10.components/70.compiler/20.specification/60.instructions/20.evm/create.md index fd809037..cc9e57d8 100644 --- a/content/10.zk-stack/10.components/70.compiler/20.specification/60.instructions/20.evm/create.md +++ b/content/10.zk-stack/10.components/70.compiler/20.specification/60.instructions/20.evm/create.md @@ -5,7 +5,7 @@ description: The EVM CREATE instructions are handled similarly. -For more information, see the [zkSync Era documentation](https://era.zksync.io/docs/reference/architecture/differences-with-ethereum.html#create-create2). +For more information, see the [ZKsync Era documentation](https://era.zksync.io/docs/reference/architecture/differences-with-ethereum.html#create-create2). ## CREATE diff --git a/content/10.zk-stack/10.components/70.compiler/20.specification/60.instructions/20.evm/return.md b/content/10.zk-stack/10.components/70.compiler/20.specification/60.instructions/20.evm/return.md index 45f87640..aff04da4 100644 --- a/content/10.zk-stack/10.components/70.compiler/20.specification/60.instructions/20.evm/return.md +++ b/content/10.zk-stack/10.components/70.compiler/20.specification/60.instructions/20.evm/return.md @@ -20,7 +20,7 @@ is common for Yul and EVMLA representations. Original [EVM](https://www.evm.codes/#f3?fork=shanghai) instruction. -This instruction works differently in deploy code. For more information, see [the zkSync Era documentation](https://era.zksync.io/docs/reference/architecture/differences-with-ethereum.html#return). +This instruction works differently in deploy code. For more information, see [the ZKsync Era documentation](https://era.zksync.io/docs/reference/architecture/differences-with-ethereum.html#return). ### LLVM IR diff --git a/content/10.zk-stack/10.components/70.compiler/20.specification/60.instructions/30.evmla.md b/content/10.zk-stack/10.components/70.compiler/20.specification/60.instructions/30.evmla.md index e47aa6fa..0c79b127 100644 --- a/content/10.zk-stack/10.components/70.compiler/20.specification/60.instructions/30.evmla.md +++ b/content/10.zk-stack/10.components/70.compiler/20.specification/60.instructions/30.evmla.md @@ -3,7 +3,7 @@ title: EVM Legacy Assembly description: --- -These instructions do not have a direct representation in EVM or zkSync VM. Instead, they perform auxiliary operations +These instructions do not have a direct representation in EVM or ZKsync VM. Instead, they perform auxiliary operations required for generating the target bytecode. ## PUSH [$] @@ -12,17 +12,18 @@ The same as [datasize](yul#datasize). LLVM IR codegen references: + 1. [zksolc compiler](%%zk_git_repo_era-compiler-solidity%%/blob/main/src/evmla/ethereal_ir/function/block/element/mod.rs#L144) -2. [Shared FE code](%%zk_git_repo_era-compiler-llvm-context%%/blob/main/src/zkSync VM/evm/create.rs#L149) +2. [Shared FE code](%%zk_git_repo_era-compiler-llvm-context%%/blob/main/src/zkevm/evm/create.rs#L149) ## PUSH #[$] The same as [dataoffset](yul#dataoffset). LLVM IR codegen references: - + 1. [zksolc compiler](%%zk_git_repo_era-compiler-solidity%%/blob/main/src/evmla/ethereal_ir/function/block/element/mod.rs#L135) -2. [Shared FE code](%%zk_git_repo_era-compiler-llvm-context%%/blob/main/src/zkSync VM/evm/create.rs#L97) +2. [Shared FE code](%%zk_git_repo_era-compiler-llvm-context%%/blob/main/src/zkevm/evm/create.rs#L97) ## ASSIGNIMMUTABLE @@ -33,9 +34,9 @@ The same as [setimmutable](yul#setimmutable). [Differences with Ethereum](/build/developer-reference/differences-with-ethereum.md#setimmutable-loadimmutable). --> LLVM IR codegen references: - + 1. [zksolc compiler](%%zk_git_repo_era-compiler-solidity%%/blob/main/src/evmla/ethereal_ir/function/block/element/mod.rs#L760) -2. [Shared FE code](%%zk_git_repo_era-compiler-llvm-context%%/blob/main/src/zkSync VM/evm/immutable.rs#L79) +2. [Shared FE code](%%zk_git_repo_era-compiler-llvm-context%%/blob/main/src/zkevm/evm/immutable.rs#L79) ## PUSHIMMUTABLE @@ -46,9 +47,9 @@ The same as [loadimmutable](yul#loadimmutable). [Differences with Ethereum](/build/developer-reference/differences-with-ethereum.md#setimmutable-loadimmutable). --> LLVM IR codegen references: - + 1. [zksolc compiler](%%zk_git_repo_era-compiler-solidity%%/blob/main/src/evmla/ethereal_ir/function/block/element/mod.rs#L747) -2. [Shared FE code](%%zk_git_repo_era-compiler-llvm-context%%/blob/main/src/zkSync VM/evm/immutable.rs#L17) +2. [Shared FE code](%%zk_git_repo_era-compiler-llvm-context%%/blob/main/src/zkevm/evm/immutable.rs#L17) ## PUSHLIB @@ -70,7 +71,7 @@ Returns the address the contract is deployed to. Can be only found in deploy code. On EVM, returns the total size of the runtime code and constructor arguments. -On zkSync VM, it is always 0, since zkSync VM does not operate on runtime code in deploy code. +On ZKsync VM, it is always 0, since ZKsync VM does not operate on runtime code in deploy code. [The LLVM IR generator code](%%zk_git_repo_era-compiler-solidity%%/blob/main/src/yul/parser/statement/expression/function_call/mod.rs#L907). diff --git a/content/10.zk-stack/10.components/70.compiler/20.specification/60.instructions/40.yul.md b/content/10.zk-stack/10.components/70.compiler/20.specification/60.instructions/40.yul.md index 6d19bae5..5761105c 100644 --- a/content/10.zk-stack/10.components/70.compiler/20.specification/60.instructions/40.yul.md +++ b/content/10.zk-stack/10.components/70.compiler/20.specification/60.instructions/40.yul.md @@ -3,27 +3,27 @@ title: Yul description: --- -These instructions do not have a direct representation in EVM or zkSync VM. Instead, they perform auxiliary operations +These instructions do not have a direct representation in EVM or ZKsync VM. Instead, they perform auxiliary operations required for generating the target bytecode. ## datasize Original [Yul](https://docs.soliditylang.org/en/latest/yul.html#datasize-dataoffset-datacopy) auxiliary instruction. -Unlike on EVM, on zkSync VM target this instruction returns the size of the header part of the calldata sent to the +Unlike on EVM, on ZKsync VM target this instruction returns the size of the header part of the calldata sent to the [ContractDeployer](../system-contracts#contract-deployer). For more information, see [CREATE](evm/create). LLVM IR codegen references: 1. [zksolc compiler](%%zk_git_repo_era-compiler-solidity%%/blob/main/src/yul/parser/statement/expression/function_call/mod.rs#L928) -2. [Shared FE code](%%zk_git_repo_era-compiler-llvm-context%%/blob/main/src/zkSync VM/evm/create.rs#L149) +2. [Shared FE code](%%zk_git_repo_era-compiler-llvm-context%%/blob/main/src/zkevm/evm/create.rs#L149) ## dataoffset Original [Yul](https://docs.soliditylang.org/en/latest/yul.html#datasize-dataoffset-datacopy) auxiliary instruction. -Unlike on EVM, on zkSync VM target this instruction has nothing to do with the offset. Instead, it returns the bytecode hash +Unlike on EVM, on ZKsync VM target this instruction has nothing to do with the offset. Instead, it returns the bytecode hash of the contract referenced by the Yul object identifier. Since our compiler translates instructions without analyzing the surrounding context, it is not possible to get the bytecode hash from anywhere else in [datacopy](#datacopy). For more information, see [CREATE](evm/create). @@ -31,13 +31,13 @@ more information, see [CREATE](evm/create). LLVM IR codegen references: 1. [zksolc compiler](%%zk_git_repo_era-compiler-solidity%%/blob/main/src/yul/parser/statement/expression/function_call/mod.rs#L918) -2. [Shared FE code](%%zk_git_repo_era-compiler-llvm-context%%/blob/main/src/zkSync VM/evm/create.rs#L97) +2. [Shared FE code](%%zk_git_repo_era-compiler-llvm-context%%/blob/main/src/zkevm/evm/create.rs#L97) ## datacopy Original [Yul](https://docs.soliditylang.org/en/latest/yul.html#datasize-dataoffset-datacopy) auxiliary instruction. -Unlike on EVM, on zkSync VM target this instruction copies the bytecode hash passed as [dataoffset](#dataoffset) to the +Unlike on EVM, on ZKsync VM target this instruction copies the bytecode hash passed as [dataoffset](#dataoffset) to the destination. For more information, see [CREATE](evm/create). [The LLVM IR generator code](%%zk_git_repo_era-compiler-solidity%%/blob/main/src/yul/parser/statement/expression/function_call/mod.rs#L938). @@ -100,8 +100,8 @@ Is a Yul optimizer hint which is not used by our compiler. Instead, its only arg Original [Yul](https://docs.soliditylang.org/en/latest/yul.html#verbatim) auxiliary instruction. -Unlike on EVM, on zkSync VM target this instruction has nothing to do with inserting of EVM bytecode. Instead, it is used to implement -[zkSync VM Yul Extensions](../instructions/overview#yul-extensions) available in the system mode. In order to compile a Yul contract +Unlike on EVM, on ZKsync VM target this instruction has nothing to do with inserting of EVM bytecode. Instead, it is used to implement +[ZKsync VM Yul Extensions](../instructions/overview#yul-extensions) available in the system mode. In order to compile a Yul contract with extensions, both Yul and system mode must be enabled (`zksolc --yul --system-mode ...`). [The LLVM IR generator code](%%zk_git_repo_era-compiler-solidity%%/blob/main/src/yul/parser/statement/expression/function_call/verbatim.rs). diff --git a/content/10.zk-stack/20.running-a-hyperchain/10.locally.md b/content/10.zk-stack/20.running-a-hyperchain/10.locally.md index c8f9c1ae..15aea084 100644 --- a/content/10.zk-stack/20.running-a-hyperchain/10.locally.md +++ b/content/10.zk-stack/20.running-a-hyperchain/10.locally.md @@ -51,7 +51,7 @@ to set up dependencies on your machine (don't worry about the Environment sectio ::callout{icon="i-heroicons-exclamation-triangle" color="amber"} The commands above are not just running docker containers, but are actually building the code from the repo to spin up your hyperchain. For this reason the process might take some time. -If you just want to run docker containers to play around with a zkSync chain, you can use `zksync-cli dev`. +If you just want to run docker containers to play around with a ZKsync chain, you can use `zksync-cli dev`. Learn more [here](/build/tooling/zksync-cli). :: @@ -103,7 +103,7 @@ Learn more about it [here](/build/api-reference). ### Using zksync-cli -zkSync CLI allows you to easily interact and develop applications on your hyperchain. +ZKsync CLI allows you to easily interact and develop applications on your hyperchain. When executing any command with zksync-cli, you can specify RPC urls for both L1 and L2. Your local server contains RPCs for both. An example deposit command via the bridge would look like: diff --git a/content/10.zk-stack/20.running-a-hyperchain/99.dependencies.md b/content/10.zk-stack/20.running-a-hyperchain/99.dependencies.md index 7bdb5197..b0152449 100644 --- a/content/10.zk-stack/20.running-a-hyperchain/99.dependencies.md +++ b/content/10.zk-stack/20.running-a-hyperchain/99.dependencies.md @@ -33,7 +33,7 @@ sudo systemctl start docker ## Supported operating systems -zkSync currently can be launched on any \*nix operating system (e.g. any linux distribution or MacOS). +ZKsync currently can be launched on any \*nix operating system (e.g. any linux distribution or MacOS). If you're using Windows, then make sure to use WSL 2, since WSL 1 is known to cause troubles. @@ -41,7 +41,7 @@ Additionally, if you are going to use WSL 2, make sure that your project is loca accessing NTFS partitions from inside of WSL is very slow. If you're using MacOS with an ARM processor (e.g. M1/M2), make sure that you are working in the _native_ environment -(e.g. your terminal and IDE don't run in Rosetta, and your toolchain is native). Trying to work with zkSync code via +(e.g. your terminal and IDE don't run in Rosetta, and your toolchain is native). Trying to work with ZKsync code via Rosetta may cause problems that are hard to spot and debug, so make sure to check everything before you start. If you are a NixOS user or would like to have a reproducible environment, skip to the section about `nix`. diff --git a/content/20.external-node/00.index.md b/content/20.external-node/00.index.md index 50360dd0..c47ba460 100644 --- a/content/20.external-node/00.index.md +++ b/content/20.external-node/00.index.md @@ -7,7 +7,7 @@ description: For local testing, we recommend setting up an in-memory node and forking mainnet. :: -This documentation explains the basics of the zkSync Era External Node. +This documentation explains the basics of the ZKsync Era External Node. ## Disclaimers @@ -19,7 +19,7 @@ This documentation explains the basics of the zkSync Era External Node. ## What is the External Node? The external node (herein EN) is a read-replica of the main (centralized) node that can be run by external parties. It -functions by fetching data from the zkSync API and re-applying transactions locally, starting from the genesis block. +functions by fetching data from the ZKsync API and re-applying transactions locally, starting from the genesis block. The EN shares most of its codebase with the main node. Consequently, when it re-applies transactions, it does so exactly as the main node did in the past. @@ -37,9 +37,9 @@ At a high level, the EN can be seen as an application that has the following mod With the EN, you are able to: -- Locally recreate and verify the zkSync Era mainnet/testnet state. +- Locally recreate and verify the ZKsync Era mainnet/testnet state. - Interact with the recreated state in a trustless way (in a sense that the validity is locally verified, and you should - not rely on a third-party API zkSync Era provides). + not rely on a third-party API ZKsync Era provides). - Use the Web3 API without having to query the main node. - Send L2 transactions (that will be proxied to the main node). diff --git a/content/20.external-node/10.component-breakdown.md b/content/20.external-node/10.component-breakdown.md index c33620ff..ab12f734 100644 --- a/content/20.external-node/10.component-breakdown.md +++ b/content/20.external-node/10.component-breakdown.md @@ -46,11 +46,11 @@ The actual execution of batches takes place within the VM, which is identical in ## Reorg Detector -In zkSync Era, it is theoretically possible for L1 batches to be reverted before the corresponding "execute" operation +In ZKsync Era, it is theoretically possible for L1 batches to be reverted before the corresponding "execute" operation is applied on L1, that is before the block is [final](https://docs.zksync.io/zk-stack/concepts/finality.html). Such situations are highly uncommon and typically occur due to significant issues: e.g. a bug in the sequencer implementation preventing L1 batch commitment. -Prior to batch finality, the zkSync operator can perform a rollback, +Prior to batch finality, the ZKsync operator can perform a rollback, reverting one or more batches and restoring the blockchain state to a previous point. Finalized batches cannot be reverted at all. diff --git a/content/20.external-node/20.configuration.md b/content/20.external-node/20.configuration.md index 0598b600..4a97957a 100644 --- a/content/20.external-node/20.configuration.md +++ b/content/20.external-node/20.configuration.md @@ -5,7 +5,7 @@ description: This document outlines various configuration options for the EN. Currently, the EN requires the definition of numerous environment variables. -To streamline this process, we provide prepared configs for the zkSync Era - for both mainnet and testnet. +To streamline this process, we provide prepared configs for the ZKsync Era - for both mainnet and testnet. You can use these files as a starting point and modify only the necessary sections. ## Database diff --git a/content/30.ecosystem/00.index.md b/content/30.ecosystem/00.index.md index 36d8abbd..6a28c5a6 100644 --- a/content/30.ecosystem/00.index.md +++ b/content/30.ecosystem/00.index.md @@ -1,10 +1,10 @@ --- title: Explore the Ecosystem -description: Explore the zkSync Era ecosystem, a comprehensive suite of services and tools from wallets to marketplaces that empower and enhance your experience. +description: Explore the ZKsync Era ecosystem, a comprehensive suite of services and tools from wallets to marketplaces that empower and enhance your experience. --- Explore Wallets, Data services, Node providers, Marketplaces, Oracles, and much, much more -in the zkSync Era ecosystem. +in the ZKsync Era ecosystem. ::card-group ::card @@ -29,7 +29,7 @@ in the zkSync Era ecosystem. icon: i-heroicons-server-solid to: /ecosystem/node-providers --- - Connect to zkSync Era reliably with robust and scalable node services. + Connect to ZKsync Era reliably with robust and scalable node services. :: ::card --- @@ -61,7 +61,7 @@ in the zkSync Era ecosystem. icon: i-heroicons-currency-dollar-solid to: /ecosystem/network-faucets --- - Get free test tokens for development purposes in the zkSync test network. + Get free test tokens for development purposes in the ZKsync test network. :: ::card --- diff --git a/content/30.ecosystem/10.bridges.md b/content/30.ecosystem/10.bridges.md index ce12d649..17fab019 100644 --- a/content/30.ecosystem/10.bridges.md +++ b/content/30.ecosystem/10.bridges.md @@ -4,17 +4,17 @@ description: --- Bridges are pivotal in enhancing interoperability between different networks or layers, facilitating seamless asset and -data transfer. In this section, we delve into various bridge solutions integrated within the zkSync ecosystem, providing +data transfer. In this section, we delve into various bridge solutions integrated within the ZKsync ecosystem, providing developers and users with diverse options for cross-chain or cross-layer interactions. ::callout{icon="i-heroicons-information-circle-16-solid" color="green"} -For an extended list of bridging options within the zkSync ecosystem, feel free to explore the +For an extended list of bridging options within the ZKsync ecosystem, feel free to explore the [bridges](https://zksync.dappradar.com/ecosystem?category-de=bridges) category on Dappradar. :: -## zkSync Portal Bridge +## ZKsync Portal Bridge -The [Portal Bridge](https://bridge.zksync.io/) on zkSync provides a gateway for assets between Ethereum and the zkSync +The [Portal Bridge](https://bridge.zksync.io/) on ZKsync provides a gateway for assets between Ethereum and the ZKsync network, ensuring secure and efficient transfers. ## Omnibtc Finance @@ -24,7 +24,7 @@ and borrowing services. Its primary objective is to integrate and harmonize on-c ## Orbiter Finance -[Orbiter Finance](https://www.orbiter.finance/?source=Ethereum&dest=zkSync%20Era&token=ETH) is a cross-chain rollup +[Orbiter Finance](https://www.orbiter.finance/?source=Ethereum&dest=ZKsync%20Era&token=ETH) is a cross-chain rollup protocol designed to enable safe, economical, and swift transfer of messages or assets across different networks. ## Owlto Finance diff --git a/content/30.ecosystem/100.wallets.md b/content/30.ecosystem/100.wallets.md index 81aac225..c3243ddc 100644 --- a/content/30.ecosystem/100.wallets.md +++ b/content/30.ecosystem/100.wallets.md @@ -3,19 +3,19 @@ title: Wallets description: --- -The following wallets are known for their robustness, ease of use, and compatibility with zkSync +The following wallets are known for their robustness, ease of use, and compatibility with ZKsync Era. These wallets offer various features including, but not limited to, DeFi, NFT management, and multiple chain support. ## BlockWallet -[BlockWallet](https://blockwallet.io/networks/zksync-wallet) is designed for zkSync users seeking +[BlockWallet](https://blockwallet.io/networks/zksync-wallet) is designed for ZKsync users seeking a decentralized wallet in a user-friendly package.\ **Availability**: Chrome extension ## Clave -[Clave](https://getclave.io/) is a zkSync native non-custodial smart wallet powered by account +[Clave](https://getclave.io/) is a ZKsync native non-custodial smart wallet powered by account abstraction and the hardware-level security elements to simplify the onchain experience for the next billions. **Availability**: App Store (IOS and MacOS), Google Play Store @@ -28,7 +28,7 @@ smart contract wallet with low-cost Layer 2 capabilities. ## Enkrypt -[Enkrypt](https://www.enkrypt.com/networks/zksync-wallet/) provides native support for zkSync and enables seamless building and deployment on zkSync. +[Enkrypt](https://www.enkrypt.com/networks/zksync-wallet/) provides native support for ZKsync and enables seamless building and deployment on ZKsync. **Availability**: Browser extension (all browsers) ## Holdstation diff --git a/content/30.ecosystem/30.data-indexers.md b/content/30.ecosystem/30.data-indexers.md index 6f928aa5..1cd1dbc0 100644 --- a/content/30.ecosystem/30.data-indexers.md +++ b/content/30.ecosystem/30.data-indexers.md @@ -6,8 +6,8 @@ description: ## Overview Welcome to the Analytics page, a comprehensive hub dedicated to interacting with data services, -analytic tooling on zkSync Era. Each guide includes hands-on examples, ensuring that both -newcomers and experienced developers can seamlessly harness the power of the analytical tooling within the zkSync Era. +analytic tooling on ZKsync Era. Each guide includes hands-on examples, ensuring that both +newcomers and experienced developers can seamlessly harness the power of the analytical tooling within the ZKsync Era. ## Covalent @@ -32,7 +32,7 @@ to make it easy to receive, transform, store and access your on-chain data. [The Graph](https://thegraph.com/) is a decentralized protocol for indexing and querying blockchain data. The Graph makes it possible to query data that is difficult to query directly. -Use The Graph network today to index protocol data on zkSync! +Use The Graph network today to index protocol data on ZKsync! ## Space & Time diff --git a/content/30.ecosystem/40.ide.md b/content/30.ecosystem/40.ide.md index 62fc5434..9c360602 100644 --- a/content/30.ecosystem/40.ide.md +++ b/content/30.ecosystem/40.ide.md @@ -6,22 +6,22 @@ description: ## Overview Welcome to the **IDE page**, a comprehensive hub dedicated to interacting with ready-to-use -interactive developer environments using zkSync Era. Each guide has been curated to offer +interactive developer environments using ZKsync Era. Each guide has been curated to offer hands-on examples, ensuring that both newcomers and experienced developers can seamlessly get -started with developing on zkSync Era. +started with developing on ZKsync Era. ## Atlas IDE [**Atlas**](https://www.atlaszk.com/) provides a robust and user-friendly environment to write, test, and deploy your smart contracts in a matter of minutes. Discover the potential and get -started with Atlas today and deploy your first contract on zkSync Era by following this [video tutorial](https://www.youtube.com/watch?v=TL-QnxoPyUY)! +started with Atlas today and deploy your first contract on ZKsync Era by following this [video tutorial](https://www.youtube.com/watch?v=TL-QnxoPyUY)! ## Remix IDE -The [Remix](https://remix.ethereum.org/) plugin for zkSync Era is live, providing a smooth, -user-friendly interface for developers of all skill levels to engage with the zkSync ecosystem. -The plugin simplifies the writing and deployment of zkSync’s smart contracts, making it +The [Remix](https://remix.ethereum.org/) plugin for ZKsync Era is live, providing a smooth, +user-friendly interface for developers of all skill levels to engage with the ZKsync ecosystem. +The plugin simplifies the writing and deployment of ZKsync’s smart contracts, making it accessible to newcomers and experienced users. -Follow the [The zkSync Era Remix Plugin: A How-To Guide](https://medium.com/nethermind-eth/the-zksync-era-remix-plugin-a-how-to-guide-fc54e8d24bd3), +Follow the [The ZKsync Era Remix Plugin: A How-To Guide](https://medium.com/nethermind-eth/the-zksync-era-remix-plugin-a-how-to-guide-fc54e8d24bd3), written by [Nethermind](https://twitter.com/NethermindEth), the team who developed the plugin. diff --git a/content/30.ecosystem/50.monitoring.md b/content/30.ecosystem/50.monitoring.md index b340af24..164a1678 100644 --- a/content/30.ecosystem/50.monitoring.md +++ b/content/30.ecosystem/50.monitoring.md @@ -6,7 +6,7 @@ description: Monitoring is a crucial aspect of the development and maintenance phases for any blockchain network. It provides insights into the performance, health, and other operational aspects of the network and applications. In this section, we explore key tools that offer monitoring -solutions, aiding developers in keeping a close watch on their projects within the zkSync +solutions, aiding developers in keeping a close watch on their projects within the ZKsync ecosystem. These tools provide a platform for analytics, real-time monitoring, and data aggregation which are essential for making informed decisions. diff --git a/content/30.ecosystem/60.network-faucets.md b/content/30.ecosystem/60.network-faucets.md index 4ebff0ea..28ee9f33 100644 --- a/content/30.ecosystem/60.network-faucets.md +++ b/content/30.ecosystem/60.network-faucets.md @@ -13,7 +13,7 @@ every 24 hours**. Chainstack API key is required. ## LearnWeb3 -You can use [LearnWeb3's zkSync Sepolia Faucet](https://learnweb3.io/faucets/zksync_sepolia/) +You can use [LearnWeb3's %%zk_testnet_name%%](https://learnweb3.io/faucets/zksync_sepolia/) to claim %%zk_testnet_name%% **0.01 ETH per day**. GitHub authentication is required. ## Sepolia faucets @@ -30,4 +30,4 @@ using the [TxSync bridge](https://portal.txsync.io/bridge/?network=era-sepolia). ## Sepolia USDC faucet -You can use [Circle's Testnet Faucet](https://faucet.circle.com/) to claim testnet USDC on zkSync Sepolia or Ethereum Sepolia Testnet. +You can use [Circle's Testnet Faucet](https://faucet.circle.com/) to claim testnet USDC on ZKsync Sepolia or Ethereum Sepolia Testnet. diff --git a/content/30.ecosystem/70.nft-marketplaces.md b/content/30.ecosystem/70.nft-marketplaces.md index 4fde68f8..7d06cea0 100644 --- a/content/30.ecosystem/70.nft-marketplaces.md +++ b/content/30.ecosystem/70.nft-marketplaces.md @@ -15,8 +15,8 @@ buy and sell NFTs across different platforms, save money, and earn rewards. ## Kreatorland [Kreatorland](https://kreatorland.com/) is a native NFT marketplace built specifically for the -zkSync Era. -**Specialty**: zkSync Era Native +ZKsync Era. +**Specialty**: ZKsync Era Native ## OKX NFT @@ -27,12 +27,12 @@ market, allowing you to create and trade NFTs across multiple blockchains and pl ## Tevaera [Tevaera](https://market.tevaera.com/) is the first paymasters and ONFT powered marketplace on -the zkSync Era. It offers the lowest transaction fees while being fully secured by the Ethereum consensus. -**Specialty**: zkSync Era, Low Fees, Paymasters and ONFT +the ZKsync Era. It offers the lowest transaction fees while being fully secured by the Ethereum consensus. +**Specialty**: ZKsync Era, Low Fees, Paymasters and ONFT ## zkMarkets -[zkMarkets](https://www.zkmarkets.com/zksync-era) is a native NFT marketplace on zkSync, +[zkMarkets](https://www.zkmarkets.com/zksync-era) is a native NFT marketplace on ZKsync, supporting paymasters and Smart Wallets like Clave. It features a Launchpad, rarity tools, and aggregated listings. **Specialty**: Aggregated Marketplace, Paymasters, Smart Accounts, Rarity tools @@ -45,5 +45,5 @@ user interface. **Specialty**: Ethereum Layer-2, User-Centric Design Choose a marketplace that aligns with your requirements, whether it's low fees, -multi-blockchain support, or specific zkSync Era functionalities. Always perform your own due +multi-blockchain support, or specific ZKsync Era functionalities. Always perform your own due diligence before using any third-party platforms. diff --git a/content/30.ecosystem/80.oracles.md b/content/30.ecosystem/80.oracles.md index dbd190c4..c019a6cd 100644 --- a/content/30.ecosystem/80.oracles.md +++ b/content/30.ecosystem/80.oracles.md @@ -6,7 +6,7 @@ description: ## Overview Welcome to the Oracles page, a comprehensive hub dedicated to interacting with oracle services -on zkSync Era. As the demand for decentralized applications continues, the need for reliable +on ZKsync Era. As the demand for decentralized applications continues, the need for reliable and efficient oracle services becomes paramount. Within these sections, you'll unearth specialized usage guides and tangible examples designed to facilitate seamless interactions with a variety of different oracle services. @@ -21,7 +21,7 @@ trusted, high-volume DEXs and CEXs. Check out the usage guide below to get start [Redstone](https://docs.redstone.finance/docs/introduction) delivers frequently updated, reliable, and diverse data feeds for your dApp and smart contracts. Check out all the price -feeds available to zkSync Era and get started with the provided usage guide. +feeds available to ZKsync Era and get started with the provided usage guide. ## Pyth diff --git a/content/30.ecosystem/90.node-providers.md b/content/30.ecosystem/90.node-providers.md index 293c7c2a..3f72d4f4 100644 --- a/content/30.ecosystem/90.node-providers.md +++ b/content/30.ecosystem/90.node-providers.md @@ -6,13 +6,13 @@ description: ## Ankr [Ankr](https://www.ankr.com/rpc/zksync_era/) provides private and public RPC endpoints for -zkSync, powered by a globally distributed and decentralized network of nodes. They offer free +ZKsync, powered by a globally distributed and decentralized network of nodes. They offer free and [paid plans](https://www.ankr.com/rpc/pricing/) with increased request limits. ## BlockPI [BlockPI](https://blockpi.io/zksync) is a high-quality, robust, and efficient RPC service -network that provides access to zkSync nodes with [free and paid plans](https://docs.blockpi.io/documentations/pricing). +network that provides access to ZKsync nodes with [free and paid plans](https://docs.blockpi.io/documentations/pricing). ## Chainstack @@ -21,32 +21,32 @@ Build, run and scale blockchain applications using Chainstack nodes. ## Chainbase -[Chainbase](https://chainbase.com/chainNetwork/zkSync) API is supercharged for reliability, +[Chainbase](https://chainbase.com/chainNetwork/zksync) API is supercharged for reliability, data correctness, and scalability. Chainbase will handle all the forks, upgrades, and network interruptions ## DRPC [DRPC](https://drpc.org/public-endpoints/zksync) offers access to distributed network of -independent third-party partners and public nodes for zkSync. They provide a free tier that +independent third-party partners and public nodes for ZKsync. They provide a free tier that allows for an unlimited amount of requests over public nodes, or a paid tier which provides access to all providers, as well as other additional features. ## GetBlock -[GetBlock](https://getblock.io/nodes/zksync/) provides access to zkSync API endpoint for your -project. With GetBlock you don’t need to know how to run zkSync nodes as they are already are +[GetBlock](https://getblock.io/nodes/zksync/) provides access to ZKsync API endpoint for your +project. With GetBlock you don’t need to know how to run ZKsync nodes as they are already are available for mainnet and testnets. ## Quicknode -[QuickNode](https://www.quicknode.com/chains/zkSync) offers access to hosted zkSync nodes as +[QuickNode](https://www.quicknode.com/chains/zksync) offers access to hosted ZKsync nodes as part of their free Discover Plan. You can configure add-ons, like "Trace Mode" and "Archive Mode" for an additional cost by upgrading to one of their paid plans. ## Unifra [Unifra](https://unifra.io/) is a Web3 developer platform that provides tools, APIs, and node -infrastructure, and provides access to zkSync nodes that are nodes are reliable, scalable, and +infrastructure, and provides access to ZKsync nodes that are nodes are reliable, scalable, and easy to use. ### Public RPCs diff --git a/content/_partials/_compile-solidity-contracts.md b/content/_partials/_compile-solidity-contracts.md index 27e6d4fa..e7b51f54 100644 --- a/content/_partials/_compile-solidity-contracts.md +++ b/content/_partials/_compile-solidity-contracts.md @@ -2,7 +2,7 @@ title: Compile Solidity Contract --- -Smart contracts deployed to zkSync must be compiled using our custom compiler. +Smart contracts deployed to ZKsync must be compiled using our custom compiler. `zksolc` is the compiler used for Solidity. To compile the contracts in a project, run the following command: diff --git a/content/_partials/_enable-remix-zksync-plugin.md b/content/_partials/_enable-remix-zksync-plugin.md index 341f9049..7423ef51 100644 --- a/content/_partials/_enable-remix-zksync-plugin.md +++ b/content/_partials/_enable-remix-zksync-plugin.md @@ -1,15 +1,15 @@ --- -title: Enable zkSync plugin in Remix +title: Enable ZKsync plugin in Remix --- -### Enable the Remix zkSync plugin +### Enable the Remix ZKsync plugin -To deploy smart contracts to zkSync via Remix you need to enable the zkSync plugin. +To deploy smart contracts to ZKsync via Remix you need to enable the ZKsync plugin. 1. Open :external-link{text="the Remix website" href="https://remix.ethereum.org/"} 2. Click on the **“🔌 Plugin Manager”** button in the bottom-left corner 3. Search “zksync” and click on the **"Activate"** button. -![Enable zkSync plugin in Remix](/images/enable-remix-plugin.gif) +![Enable ZKsync plugin in Remix](/images/enable-remix-plugin.gif) -Once activated, you’ll see a new menu item with the zkSync logo. Click on it to see the different options to compile, -deploy, and interact with smart contracts on zkSync. +Once activated, you’ll see a new menu item with the ZKsync logo. Click on it to see the different options to compile, +deploy, and interact with smart contracts on ZKsync. diff --git a/content/_partials/_environment-setup-with-foundry.md b/content/_partials/_environment-setup-with-foundry.md index 7829370c..bf33aab9 100644 --- a/content/_partials/_environment-setup-with-foundry.md +++ b/content/_partials/_environment-setup-with-foundry.md @@ -1,5 +1,5 @@ --- -title: Foundry-zksync Installation +title: foundry-zksync Installation --- ::callout{icon="i-heroicons-information-circle-16-solid" color="amber"} diff --git a/content/_zksync.json b/content/_zksync.json index d711b872..7885aa35 100644 --- a/content/_zksync.json +++ b/content/_zksync.json @@ -1,9 +1,9 @@ { "zkevm": { - "label": "zkSync VM" + "label": "ZKsync VM" }, "mainnet": { - "name": "zkSync Era Mainnet", + "name": "ZKsync Era Mainnet", "identifier": "mainnet", "rpc_url": "https://mainnet.era.zksync.io", "websocket_url": "wss://mainnet.era.zksync.io/ws", @@ -12,7 +12,7 @@ "block_explorer_url": "https://explorer.zksync.io" }, "testnet": { - "name": "zkSync Sepolia Testnet", + "name": "ZKsync Sepolia Testnet", "identifier": "sepolia", "rpc_url": "https://sepolia.era.zksync.dev", "websocket_url": "wss://sepolia.era.zksync.dev/ws", @@ -43,7 +43,7 @@ "zksolc-bin": "https://github.com/matter-labs/zksolc-bin", "zksync-cli": "https://github.com/matter-labs/zksync-cli", "zksync-contract-templates": "https://github.com/matter-labs/zksync-contract-templates", - "zksync-developers": "https://github.com/zkSync-Community-Hub/zksync-developers", + "zksync-developers": "https://github.com/ZKsync-Community-Hub/zksync-developers", "zksync-docs": "https://github.com/matter-labs/zksync-docs", "zksync-era": "https://github.com/matter-labs/zksync-era", "zksync-frontend-templates": "https://github.com/matter-labs/zksync-frontend-templates", diff --git a/content/index.yml b/content/index.yml index d49d6d6d..84b8694d 100644 --- a/content/index.yml +++ b/content/index.yml @@ -1,18 +1,18 @@ -title: 'zkSync Docs' +title: 'ZKsync Docs' description: Nuxt UI Pro is a collection of premium Vue components built on top of Nuxt UI to create beautiful & responsive Nuxt applications in minutes. navigation: false hero: - title: 'Unlock the Potential of Layer 2 Scaling with zkSync' - description: 'Explore comprehensive guides, developer tools, and resources to innovate on the zkSync platform.' + title: 'Unlock the Potential of Layer 2 Scaling with ZKsync' + description: 'Explore comprehensive guides, developer tools, and resources to innovate on the ZKsync platform.' orientation: vertical headline: label: See what's new in 21.1.0 to: https://github.com/matter-labs/zksync-era/releases icon: i-heroicons-arrow-top-right-on-square-20-solid links: - - label: Start building on zkSync + - label: Start building on ZKsync icon: i-heroicons-arrow-right-20-solid trailing: true to: '/build/quick-start' @@ -24,10 +24,10 @@ hero: # to: https://github.com/nuxt-ui-pro/docs # target: _blank features: - title: 'Explore zkSync Docs' + title: 'Explore ZKsync Docs' items: - - title: 'Getting Started with zkSync' - description: 'Jumpstart your zkSync journey with quickstart guides and fundamental concepts for developers.' + - title: 'Getting Started with ZKsync' + description: 'Jumpstart your ZKsync journey with quickstart guides and fundamental concepts for developers.' icon: 'i-zksync-zksync-logo' to: '#' - title: 'Develop with zksync-cli' @@ -35,13 +35,13 @@ features: icon: 'i-simple-icons-windowsterminal' to: '#' - title: 'Architecture' - description: 'Learn about the zkSync architecture and how it works under the hood.' + description: 'Learn about the ZKsync architecture and how it works under the hood.' icon: 'i-heroicons-sparkles-20-solid' to: '#' community: - title: 'Join the zkSync Community' + title: 'Join the ZKsync Community' links: - - label: 'Learn more about zkSync' + - label: 'Learn more about ZKsync' icon: 'i-zksync-zksync-logo' trailingIcon: 'i-heroicons-arrow-right-20-solid' color: 'gray' @@ -49,14 +49,14 @@ community: size: lg items: - title: 'Developer Updates' - description: 'Keep up to date with the latest from the zkSync team on X.' + description: 'Keep up to date with the latest from the ZKsync team on X.' icon: 'i-simple-icons-x' to: '#' - title: 'GitHub Discussions' - description: 'Get help from the community and contribute to the zkSync project.' + description: 'Get help from the community and contribute to the ZKsync project.' icon: 'i-simple-icons-github' to: '#' - - title: 'zkSync Discord' - description: 'Connect with devs and zkSync enthusiasts on Discord.' + - title: 'ZKsync Discord' + description: 'Connect with devs and ZKsync enthusiasts on Discord.' icon: 'i-simple-icons-discord' to: '#' diff --git a/cspell-config/cspell-dev.txt b/cspell-config/cspell-dev.txt index 26b34817..456a2d09 100644 --- a/cspell-config/cspell-dev.txt +++ b/cspell-config/cspell-dev.txt @@ -89,7 +89,7 @@ Viem viem Zerion Rabby -tesnet +!tesnet devs // devs diff --git a/cspell-config/cspell-zksync.txt b/cspell-config/cspell-zksync.txt index 5236ff4b..0f305b04 100644 --- a/cspell-config/cspell-zksync.txt +++ b/cspell-config/cspell-zksync.txt @@ -1,4 +1,4 @@ -// zkSync-related words +// ZKsync-related words boojum MatterLabs Zeek @@ -10,7 +10,8 @@ zkforge zkout zksolc zkstack -zkSync +ZKsync zksync +!zkSync zksync-cli zkvyper diff --git a/package.json b/package.json index d6df4047..0d048d3b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "zksync-docs", "type": "module", - "description": "zkSync Docs V3", + "description": "ZKsync Docs V3", "version": "0.0.0", "license": "MIT", "author": "Matter Labs",