Skip to content

Update from Scroll #4

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 16 commits into from
Dec 1, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
423 changes: 139 additions & 284 deletions package-lock.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
"turndown": "^7.1.2"
},
"devDependencies": {
"@astrojs/mdx": "^0.11.6",
"@astrojs/mdx": "^0.19.7",
"@astrojs/preact": "^1.2.0",
"@astrojs/react": "^2.2.0",
"@astrojs/sitemap": "^1.0.0",
Expand Down
14 changes: 12 additions & 2 deletions public/locales/en/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@
"commonErrors": "Common Errors",
"rollupExplorer": "Rollup Explorer",
"scrollSepoliaBlockExplorer": "Scroll Sepolia Explorer",
"scrollMainnet": "Scroll Mainnet",
"scrollscan": "Scrollscan Block Explorer",
"sepoliaBlockExplorer": "Sepolia Explorer",
"community": "Community",
"discord": "Discord",
Expand Down Expand Up @@ -96,9 +98,13 @@
"bridgingERC1155ThroughCustomGateway": "Bridging ERC1155 through Custom Gateway",
"estimatingGasAndTxFees": "Estimating Gas & Tx Fees",
"resources": "Resources",
"mainnetResources": "Mainnet Resources",
"sepoliaResources": "Sepolia Resources",
"scrollBlockExplorer": "Scrollscan Explorer",
"rollupExplorer": "Rollup Explorer",
"scrollSepoliaBlockExplorer": "Scroll Sepolia Explorer",
"sepoliaBlockExplorer": "Sepolia Explorer"
"sepoliaRollupExplorer": "Rollup Explorer",
"sepoliaBlockExplorer": "Scrollscan Explorer"
},
"technology": {
"introduction": "Introduction",
Expand Down Expand Up @@ -129,7 +135,11 @@
"bridgeOverview": "Bridge Overview",
"prover": "Prover",
"proofGeneration": "Proof Generation",
"cpuProverRepo": "CPU Prover Repo"
"cpuProverRepo": "CPU Prover Repo",

"security": "Security",
"auditsAndBugBounty": "Audits & Bug Bounty",
"l2BeatAssessment": "L2Beat Assessment"
},
"learn": {
"ethereumAndProtocols": "Ethereum & Protocols",
Expand Down
14 changes: 12 additions & 2 deletions public/locales/es/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@
"commonErrors": "Errores Comunes",
"rollupExplorer": "Rollup Explorer",
"scrollSepoliaBlockExplorer": "Scroll Sepolia Explorer",
"scrollMainnet": "Scroll Mainnet",
"scrollscan": "Explorador Scrollscan",
"sepoliaBlockExplorer": "Sepolia Explorer",
"community": "Comunidad",
"discord": "Discord",
Expand Down Expand Up @@ -96,9 +98,13 @@
"bridgingERC1155ThroughCustomGateway": "Bridging de un ERC1155 a través de una Gateway Personalizada",
"estimatingGasAndTxFees": "Estimación de las Tarifas de Gas y Tx",
"resources": "Recursos",
"mainnetResources": "Recursos de Mainnet",
"sepoliaResources": "Recursos de Sepolia",
"scrollBlockExplorer": "Explorador Scrollscan",
"rollupExplorer": "Rollup Explorer",
"scrollSepoliaBlockExplorer": "Scroll Sepolia Explorer",
"sepoliaBlockExplorer": "Sepolia Explorer"
"sepoliaRollupExplorer": "Explorador de Rollup",
"sepoliaBlockExplorer": "Explorador de bloques Scrollscan"
},
"technology": {
"introduction": "Introducción",
Expand Down Expand Up @@ -129,7 +135,11 @@
"bridgeOverview": "Vista General del Bridge",
"prover": "Prover",
"proofGeneration": "Proof Generation",
"cpuProverRepo": "CPU Prover Repo"
"cpuProverRepo": "Repo de probador de CPU",

"security": "Seguridad",
"auditsAndBugBounty": "Auditorías y recompenzas por encontrar bugs",
"l2BeatAssessment": "Análisis de L2Beat"
},
"learn": {
"ethereumAndProtocols": "Ethereum y Protocolos",
Expand Down
4 changes: 4 additions & 0 deletions src/components/Footer/helper.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ const TwitterIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (
)

export const aboutList = [
{
name: "Bug Bounty",
href: "https://immunefi.com/bounty/scroll/",
},
{
name: "Join Us",
href: "https://jobs.lever.co/ScrollFoundation",
Expand Down
41 changes: 37 additions & 4 deletions src/config/sidebar.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,19 @@ export const getSidebar = () => {
},
{
title: t("sidebar.gettingStarted.scrollSepoliaBlockExplorer"),
url: "https://sepolia-blockscout.scroll.io/",
url: "https://sepolia.scrollscan.com/",
},
{ title: t("sidebar.gettingStarted.sepoliaBlockExplorer"), url: "https://sepolia.etherscan.io/" },
{ title: t("sidebar.gettingStarted.rollupExplorer"), url: "https://sepolia.scroll.io/rollupscan" },
],
},
{
section: t("sidebar.gettingStarted.scrollMainnet"),
contents: [
{
title: t("sidebar.gettingStarted.scrollscan"),
url: "https://scrollscan.com/",
},
{ title: t("sidebar.gettingStarted.rollupExplorer"), url: "https://scroll.io/rollupscan" },
],
},
Expand Down Expand Up @@ -154,11 +164,17 @@ export const getSidebar = () => {
],
},
{
section: t("sidebar.developers.resources"),
section: t("sidebar.developers.mainnetResources"),
contents: [
{ title: t("sidebar.developers.rollupExplorer"), url: "https://scroll.io/rollupscan" },
{ title: t("sidebar.developers.scrollSepoliaBlockExplorer"), url: "https://sepolia-blockscout.scroll.io/" },
{ title: t("sidebar.developers.sepoliaBlockExplorer"), url: "https://sepolia.etherscan.io/" },
{ title: t("sidebar.developers.scrollBlockExplorer"), url: "https://scrollscan.com/" },
],
},
{
section: t("sidebar.developers.sepoliaResources"),
contents: [
{ title: t("sidebar.developers.sepoliaRollupExplorer"), url: "https://sepolia.scroll.io/rollupscan" },
{ title: t("sidebar.developers.scrollSepoliaBlockExplorer"), url: "https://sepolia.scrollscan.dev/" },
],
},
],
Expand Down Expand Up @@ -252,6 +268,23 @@ export const getSidebar = () => {
},
],
},
{
section: t("sidebar.technology.security"),
contents: [
{
title: t("sidebar.technology.auditsAndBugBounty"),
url: formatUrl("technology/security/audits-and-bug-bounty"),
},
// {
// title: t("sidebar.technology.risks"),
// url: formatUrl("technology/security/risks"),
// },
// {
// title: t("sidebar.technology.l2BeatAssessment"),
// url: "https://l2beat.com/scaling/projects/scroll",
// },
],
},
],
learn: [
{
Expand Down
64 changes: 52 additions & 12 deletions src/content/docs/en/developers/developer-quickstart.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -12,29 +12,69 @@ import Aside from "../../../../components/Aside.astro"
import ClickToZoom from "../../../../components/ClickToZoom.astro"
import networkSelection from "./_images/mmNetworkSelection.png"
import injectedProviderMM from "./_images/injectedProviderMM.png"
import ToggleElement from "../../../../components/ToggleElement.astro"

With Scroll, your favorite tools for building and testing smart contracts just work.

Since Scroll is bytecode equivalent with the EVM, you’ll just need to point your favorite builder tools at a Scroll Sepolia Testnet RPC Provider.
Since Scroll is bytecode equivalent with the EVM, you’ll just need to point your favorite builder tools at a Scroll RPC Provider.

If you run into any issues, please reach out in [our Discord](https://discord.gg/scroll).

## Acquiring Testnet Ether
## Acquiring Ether

To start building on Scroll, you'll first need to acquire some testnet ETH. See the [Faucet](/user-guide/faucet) page for tips on getting test tokens on Sepolia. After this, you can bridge your testnet ETH to the Scroll Sepolia Testnet (Layer 2) using our [Bridge](/user-guide/bridge).
Scroll uses ETH as its native currency, which will be needed to pay transaction fees for deploying and interacting with the network.

To start building on Scroll, we suggest you begin with using our Scroll Sepolia testnet. You'll first need to acquire some testnet ETH. See the [Faucet](/user-guide/faucet) page for tips on getting test tokens on Sepolia. After this, you can bridge your testnet ETH to the Scroll Sepolia Testnet (Layer 2) using our [Sepolia Bridge](https://sepolia.scroll.io/bridge), as described in the [Bridge article](/user-guide/bridge).

For a walkthrough, start with the User Guide's [Setup](/user-guide/setup) page.

Once you're ready to deploy on Scroll's mainnet, you can bridge over ETH using [our native bridge](https://scroll.io/bridge/) or one of the 3rd-party bridges.

## Network Configuration

### Scroll Mainnet

Use the table below to configure your Ethereum tools to the Scroll mainnet.

| Network Name | Scroll | Ethereum Mainnet |
| ------------------ | -------------------------------------------------- | ---------------------------------------------------- |
| RPC URL | [https://rpc.scroll.io/](https://rpc.scroll.io/) | [https://eth.llamarpc.com](https://eth.llamarpc.com) |
| Chain ID | 534352 | 1 |
| Currency Symbol | ETH | ETH |
| Block Explorer URL | [https://scrollscan.com/](https://scrollscan.com/) | [https://etherscan.io](https://etherscan.io) |

<ToggleElement anchor="mainnet-additional-infra">
<div slot="title">Additional Scroll Mainnet RPCs and Infra</div>
- [Scroll Native Bridge](https://scroll.io/bridge)
- [Scroll RPC Providers on ChainList.org](https://chainlist.org/chain/534352)
- [Ethereum RPC Providers on ChainList.org](https://chainlist.org/chain/1)
{/* - Additional Block Explorers:
- [Dora](https://www.ondora.xyz/network/scroll/interactions)
- [L2Scan](https://scroll.l2scan.co/) */}

</ToggleElement>

### Scroll Sepolia Testnet

Use the table below to configure your Ethereum tools to the Scroll Sepolia Testnet.

| Network Name | Scroll Sepolia Testnet | Sepolia Testnet |
| ------------------ | ----------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| RPC URL | [https://sepolia-rpc.scroll.io/](https://sepolia-rpc.scroll.io/) | [https://eth-sepolia-public.unifra.io](https://eth-sepolia-public.unifra.io) |
| Chain ID | 534351 | 11155111 |
| Currency Symbol | ETH | ETH |
| Block Explorer URL | [https://sepolia-blockscout.scroll.io](https://sepolia-blockscout.scroll.io/) | [https://sepolia.etherscan.io](https://sepolia.etherscan.io) |
| Network Name | Scroll Sepolia | Ethereum Sepolia |
| ------------------ | ----------------------------------------------------------------- | ------------------------------------------------------------ |
| RPC URL | [https://sepolia-rpc.scroll.io/](https://sepolia-rpc.scroll.io/) | [https://rpc2.sepolia.org](https://rpc2.sepolia.org) |
| Chain ID | 534351 | 11155111 |
| Currency Symbol | ETH | ETH |
| Block Explorer URL | [https://sepolia.scrollscan.com](https://sepolia.scrollscan.com/) | [https://sepolia.etherscan.io](https://sepolia.etherscan.io) |

<ToggleElement anchor="sepolia-additional-infra">
<div slot="title">Additional Scroll Sepolia RPCs and Infra</div>
- [Scroll Sepolia Native Bridge](https://sepolia.scroll.io/bridge)
- [Scroll Sepolia RPC Providers on ChainList.org](https://chainlist.org/chain/534351)
- [Ethereum Sepolia RPC Providers on ChainList.org](https://chainlist.org/chain/11155111)
- Additional Block Explorers:
- [Dora](https://www.ondora.xyz/network/scroll-sepolia/interactions)
- [L2Scan](https://scroll.l2scan.co/)

</ToggleElement>

## Configure your tooling

Expand Down Expand Up @@ -126,7 +166,7 @@ live:
- name: Ethereum
networks:
- chainid: 534351
explorer: https://sepolia-blockscout.scroll.io/
explorer: https://sepolia.scrollscan.com/
host: https://sepolia-rpc.scroll.io
id: scrollSepolia
name: Scroll Sepolia Testnet
Expand Down Expand Up @@ -195,7 +235,7 @@ Be sure to fund the deployment wallet as well! Run `yarn generate` to create the

To configure your frontend, you need to add the Scroll Sepolia Testnet as a network option, then select it as default.

To add the network, modify `packages/react-app/src/constants.js` .
To add the network, modify `packages/react-app/src/constants.js`.

```jsx
...
Expand All @@ -206,7 +246,7 @@ export const NETWORKS = {
color: "#e9d0b8",
chainId: 534351,
rpcUrl: "https://sepolia-rpc.scroll.io/",
blockExplorer: "https://sepolia-blockscout.scroll.io",
blockExplorer: "https://sepolia.scrollscan.com",
},
...
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ excerpt: "There are a number of technical details that differ between Ethereum m

import Aside from "../../../../components/Aside.astro"

A number of technical details differ between Ethereum mainnet's EVM and Scroll's modified design for a zkEVM. Below you can see those differences as they exist on Scroll Sepolia.
A number of technical details differ between Ethereum mainnet's EVM and Scroll's modified design for a zkEVM. Below you can see those differences as they exist on Scroll and Scroll Sepolia.

For open-source contributors and infrastructure builders, please contact our team for additional support.

Expand Down Expand Up @@ -71,7 +71,7 @@ When verifying `EXTCODESIZE`, it is expensive to load the whole contract data in

## Block Time

The Sepolia Testnet aims for a constant block time of 3 seconds. This is shorter and more consistent than the 12 seconds used in the Ethereum under ideal conditions.
Scroll aims for a constant block time of 3 seconds. This is shorter and more consistent than the 12 seconds used in the Ethereum under ideal conditions.

This was chosen for two reasons:

Expand All @@ -90,7 +90,7 @@ You can read in more detail on Shanghai hard fork differences from London on the

## Transaction Fees

The fee charged to Scroll Sepolia transactions contains two parts:
The fee charged to Scroll transactions contains two parts:

- **L2 gas fee:** similar to L1, the amount of L2 execution fee equals to `L2_gas_price * L2_gas_used`, covering the following costs:
- L2 sequencer execution & storage cost
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ But it also exposes the `getL1Fee(bytes memory data)` function, which abstracts

First of all, let’s quickly go over the key folders inside our project structure.

It’s a standard Hardhat project, but most of our work is inside the c*ontracts* and _scripts_ folders.
It’s a standard Hardhat project, but most of our work is inside the *contracts* and _scripts_ folders.

<ClickToZoom src={txFeesProjectStructure} />

Expand Down
8 changes: 4 additions & 4 deletions src/content/docs/en/developers/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ ensuring that all code executed on the Scroll Layer 2 behaves just as if it were

## Getting Started

**Looking to build on the Scroll Sepolia Testnet?**
**Looking to build on the Scroll?**

- For the essentials: Check out the [Developer Quickstart](/developers/developer-quickstart)
- For a tutorial walking through deploying your first smart contract on Scroll, read our [contract deployment tutorial](/developers/guides/contract-deployment-tutorial)
Expand Down Expand Up @@ -78,9 +78,9 @@ ensuring that all code executed on the Scroll Layer 2 behaves just as if it were
<ToggleElement anchor="community">
<div slot="title">Community — Scroll brings together users and builders.</div>
<p>
We know the challenges of building in the open and getting user engagement before mainnet release! Scroll has a
blossoming community of users and builders, and with a Discord community of over 100,000 users eager to try out
applications on our testnet, we’re excited to connect builders with users that can provide real-world feedback.
We know the challenges of building in the open and getting user engagement! Scroll has a blossoming community of
users and builders, and with a Discord community of over 500,000 members eager to try out applications on our
testnet or mainnet, we’re excited to connect builders with users that can provide real-world feedback.
</p>
</ToggleElement>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ The Gateway Router allows ETH and ERC20 token bridging from L1 to L2 using the `
When bridging ERC20 tokens, you don’t have to worry about selecting the right Gateway. This is because the `L1GatewayRouter` will choose the correct underlying entry point to send the message:

- **`L1StandardERC20Gateway`:** This Gateway permits any ERC20 deposit and will be selected as the default by the L1GatewayRouter for an ERC20 token that doesn’t need custom logic on L2. On the very first token bridging, a new token will be created on L2 that implements the ScrollStandardERC20. To bridge a token, call the `depositERC20` function on the `L1GatewayRouter`.
- **`L1CustomERC20Gateway`:** This Gateway will be selected by the `L1GatewayRouter` for tokens with custom logic. For an L1/L2 token pair to work on the Scroll Custom ERC20 Bridge, the L2 token contract has to implement `IScrollStandardERC20`. Additionally, the token should grant `mint` or `burn` capability to the `L2CustomERC20Gateway`. Visit the [Bridge an ERC20 through the Custom Gateway](/developers/developer-guides/bridge-erc20-through-the-custom-gateway) guide for a step-by-step example of how to bridge a custom token.
- **`L1CustomERC20Gateway`:** This Gateway will be selected by the `L1GatewayRouter` for tokens with custom logic. For an L1/L2 token pair to work on the Scroll Custom ERC20 Bridge, the L2 token contract has to implement `IScrollStandardERC20`. Additionally, the token should grant `mint` or `burn` capability to the `L2CustomERC20Gateway`. Visit the [Bridge an ERC20 through the Custom Gateway](/developers/guides/bridge-erc20-through-the-custom-gateway) guide for a step-by-step example of how to bridge a custom token.

All Gateway contracts will form the message and send it to the `L1ScrollMessenger` which can send arbitrary messages to L2. The `L1ScrollMessenger` passes the message to the `L1MessageQueue`. Any user can send messages directly to the Messenger to execute arbitrary data on L2. This means they can execute any function on L2 from a transaction made on L1 via the bridge. Although an application could directly pass messages to existing token contracts, the Gateway abstracts the specifics and simplifies making transfers and calls.

Expand Down
Loading