Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/dev' into feat/local-use-break…
Browse files Browse the repository at this point in the history
…point-value
  • Loading branch information
TylerAPfledderer committed Sep 7, 2024
2 parents 8daf17d + 065a055 commit 1d4ef15
Show file tree
Hide file tree
Showing 221 changed files with 5,112 additions and 3,080 deletions.
81 changes: 81 additions & 0 deletions .all-contributorsrc
Original file line number Diff line number Diff line change
Expand Up @@ -12398,6 +12398,87 @@
"contributions": [
"content"
]
},
{
"login": "yannggg",
"name": "Yann Gerardi",
"avatar_url": "https://avatars.githubusercontent.com/u/29145014?v=4",
"profile": "https://www.mtpelerin.com",
"contributions": [
"code"
]
},
{
"login": "panditdhamdhere",
"name": "Pandit Dhamdhere",
"avatar_url": "https://avatars.githubusercontent.com/u/85685981?v=4",
"profile": "https://github.com/panditdhamdhere",
"contributions": [
"code"
]
},
{
"login": "ferreiramarcelo",
"name": "M@rC3L0",
"avatar_url": "https://avatars.githubusercontent.com/u/11818521?v=4",
"profile": "http://linkedin.com/in/fmarcelo",
"contributions": [
"ideas"
]
},
{
"login": "Refdeveloper",
"name": "DevOFtoken",
"avatar_url": "https://avatars.githubusercontent.com/u/87125773?v=4",
"profile": "https://github.com/Refdeveloper",
"contributions": [
"ideas"
]
},
{
"login": "vvvvvv1vvvvvv",
"name": "vvvvvv1vvvvvv",
"avatar_url": "https://avatars.githubusercontent.com/u/86296331?v=4",
"profile": "https://github.com/vvvvvv1vvvvvv",
"contributions": [
"doc"
]
},
{
"login": "abraj",
"name": "Abhishek Raj",
"avatar_url": "https://avatars.githubusercontent.com/u/8170980?v=4",
"profile": "https://raj.me",
"contributions": [
"content"
]
},
{
"login": "p1kalys",
"name": "Pavan Emani",
"avatar_url": "https://avatars.githubusercontent.com/u/85685112?v=4",
"profile": "https://github.com/p1kalys",
"contributions": [
"content"
]
},
{
"login": "makoshan",
"name": "Mako Shan",
"avatar_url": "https://avatars.githubusercontent.com/u/7024451?v=4",
"profile": "https://v2eth.com/",
"contributions": [
"content"
]
},
{
"login": "cratiu222",
"name": "Christina",
"avatar_url": "https://avatars.githubusercontent.com/u/156356273?v=4",
"profile": "https://github.com/cratiu222",
"contributions": [
"content"
]
}
],
"contributorsPerLine": 7,
Expand Down
32 changes: 32 additions & 0 deletions .github/workflows/wallets-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Check Wallet Data for new_to_crypto

on:
pull_request:
paths:
- "src/data/wallets/wallet-data.ts"

jobs:
check_new_to_crypto:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3

- name: Check for new_to_crypto
id: check_new_to_crypto
run: |
if git diff --name-only HEAD^ | grep -q "data/wallets/wallet-data.ts"; then
if git diff -U0 HEAD^ HEAD data/wallets/wallet-data.ts | grep -q "+.*new_to_crypto: true"; then
echo "New wallet added with 'new_to_crypto: true'"
echo "new_to_crypto_found=true" >> $GITHUB_OUTPUT
else
echo "new_to_crypto_found=false" >> $GITHUB_OUTPUT
fi
fi
- name: Comment on PR if new_to_crypto is added
if: steps.check_new_to_crypto.outputs.new_to_crypto_found == 'true'
uses: actions-ecosystem/action-add-comment@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
body: "A wallet has been added with 'new_to_crypto: true'. Please ensure this meets our guidelines."
1 change: 1 addition & 0 deletions .storybook/i18next.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ export const ns = [
"page-developers-index",
"page-what-is-ethereum",
"page-upgrades-index",
"page-developers-docs",
] as const
const supportedLngs = Object.keys(baseLocales)

Expand Down
12 changes: 8 additions & 4 deletions .storybook/preview.tsx
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
import isChromatic from "chromatic/isChromatic"
import { MotionGlobalConfig } from "framer-motion"
import { withThemeByDataAttribute } from "@storybook/addon-themes"
import type { Preview } from "@storybook/react"

import ThemeProvider from "@/components/ThemeProvider"
import { TooltipProvider } from "@/components/ui/tooltip"

import i18n, { baseLocales } from "./i18next"
import { withNextThemes } from "./withNextThemes"

import "@docsearch/css"
import "../src/styles/global.css"
import "../src/styles/fonts.css"
import "../src/styles/docsearch.css"

import "@docsearch/css"

MotionGlobalConfig.skipAnimations = isChromatic()

export const breakpointSet: [token: string, value: string][] = [
Expand All @@ -29,7 +31,7 @@ const preview: Preview = {
locales: baseLocales,
},
decorators: [
withThemeByDataAttribute({
withNextThemes({
themes: {
light: "light",
dark: "dark",
Expand All @@ -38,7 +40,9 @@ const preview: Preview = {
}),
(Story) => (
<ThemeProvider>
<Story />
<TooltipProvider>
<Story />
</TooltipProvider>
</ThemeProvider>
),
],
Expand Down
28 changes: 28 additions & 0 deletions .storybook/withNextThemes.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import { useEffect } from "react"
import { useTheme } from "next-themes"
import {
type DataAttributeStrategyConfiguration,
DecoratorHelpers,
} from "@storybook/addon-themes"
import type { Decorator } from "@storybook/react/*"

const { initializeThemeState, pluckThemeFromContext } = DecoratorHelpers

export const withNextThemes = ({
themes,
defaultTheme,
}: DataAttributeStrategyConfiguration): Decorator => {
initializeThemeState(Object.keys(themes), defaultTheme)

return (getStory, context) => {
const selectedTheme = pluckThemeFromContext(context)
const selected = selectedTheme || defaultTheme
const { setTheme } = useTheme()

useEffect(() => {
setTheme(selected)
}, [selected, setTheme])

return getStory(context)
}
}
15 changes: 14 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[![Netlify Status](https://api.netlify.com/api/v1/badges/e8f2e766-888b-4954-8500-1b647d84db99/deploy-status)](https://app.netlify.com/sites/ethereumorg/deploys)
[![All Contributors](https://img.shields.io/github/all-contributors/ethereum/ethereum-org-website?color=orange&style=flat-square)](#contributors-)
[![Discord](https://img.shields.io/discord/714888181740339261?color=1C1CE1&label=ethereum.org%20%7C%20Discord%20%F0%9F%91%8B%20&style=flat-square)](https://discord.gg/ethereum-org)
[![Twitter Follow](https://img.shields.io/twitter/follow/ethdotorg.svg?style=social)](https://twitter.com/ethdotorg)
[![Twitter Follow](https://img.shields.io/twitter/follow/ethdotorg.svg?style=social)](https://x.com/ethdotorg)
[![Crowdin](https://badges.crowdin.net/ethereum-org/localized.svg)](https://crowdin.com/project/ethereum-org)
[![gitpoap badge](https://public-api.gitpoap.io/v1/repo/ethereum/ethereum-org-website/badge)](https://www.gitpoap.io/gh/ethereum/ethereum-org-website)

Expand Down Expand Up @@ -1896,6 +1896,19 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
<td align="center" valign="top" width="14.28%"><a href="https://github.com/sanjanaynvsdl"><img src="https://avatars.githubusercontent.com/u/142678317?v=4?s=100" width="100px;" alt="Sanjana"/><br /><sub><b>Sanjana</b></sub></a><br /><a href="https://github.com/ethereum/ethereum-org-website/issues?q=author%3Asanjanaynvsdl" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.zaryabs.com/"><img src="https://avatars.githubusercontent.com/u/42082608?v=4?s=100" width="100px;" alt="Zaryab"/><br /><sub><b>Zaryab</b></sub></a><br /><a href="#content-zaryab2000" title="Content">🖋</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://www.mtpelerin.com"><img src="https://avatars.githubusercontent.com/u/29145014?v=4?s=100" width="100px;" alt="Yann Gerardi"/><br /><sub><b>Yann Gerardi</b></sub></a><br /><a href="https://github.com/ethereum/ethereum-org-website/commits?author=yannggg" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/panditdhamdhere"><img src="https://avatars.githubusercontent.com/u/85685981?v=4?s=100" width="100px;" alt="Pandit Dhamdhere"/><br /><sub><b>Pandit Dhamdhere</b></sub></a><br /><a href="https://github.com/ethereum/ethereum-org-website/commits?author=panditdhamdhere" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://linkedin.com/in/fmarcelo"><img src="https://avatars.githubusercontent.com/u/11818521?v=4?s=100" width="100px;" alt="M@rC3L0"/><br /><sub><b>M@rC3L0</b></sub></a><br /><a href="#ideas-ferreiramarcelo" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Refdeveloper"><img src="https://avatars.githubusercontent.com/u/87125773?v=4?s=100" width="100px;" alt="DevOFtoken"/><br /><sub><b>DevOFtoken</b></sub></a><br /><a href="#ideas-Refdeveloper" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/vvvvvv1vvvvvv"><img src="https://avatars.githubusercontent.com/u/86296331?v=4?s=100" width="100px;" alt="vvvvvv1vvvvvv"/><br /><sub><b>vvvvvv1vvvvvv</b></sub></a><br /><a href="https://github.com/ethereum/ethereum-org-website/commits?author=vvvvvv1vvvvvv" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://raj.me"><img src="https://avatars.githubusercontent.com/u/8170980?v=4?s=100" width="100px;" alt="Abhishek Raj"/><br /><sub><b>Abhishek Raj</b></sub></a><br /><a href="#content-abraj" title="Content">🖋</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/p1kalys"><img src="https://avatars.githubusercontent.com/u/85685112?v=4?s=100" width="100px;" alt="Pavan Emani"/><br /><sub><b>Pavan Emani</b></sub></a><br /><a href="#content-p1kalys" title="Content">🖋</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://v2eth.com/"><img src="https://avatars.githubusercontent.com/u/7024451?v=4?s=100" width="100px;" alt="Mako Shan"/><br /><sub><b>Mako Shan</b></sub></a><br /><a href="#content-makoshan" title="Content">🖋</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cratiu222"><img src="https://avatars.githubusercontent.com/u/156356273?v=4?s=100" width="100px;" alt="Christina"/><br /><sub><b>Christina</b></sub></a><br /><a href="#content-cratiu222" title="Content">🖋</a></td>
</tr>
</tbody>
</table>

Expand Down
10 changes: 7 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ethereum-org-website",
"version": "8.9.0",
"version": "8.10.1",
"license": "MIT",
"private": true,
"scripts": {
Expand Down Expand Up @@ -46,6 +46,7 @@
"@radix-ui/react-radio-group": "^1.2.0",
"@radix-ui/react-slot": "^1.1.0",
"@radix-ui/react-switch": "^1.1.0",
"@radix-ui/react-tooltip": "^1.1.2",
"@radix-ui/react-visually-hidden": "^1.1.0",
"@sentry/nextjs": "^8.19.0",
"@socialgouv/matomo-next": "^1.8.0",
Expand All @@ -63,7 +64,6 @@
"lodash.merge": "^4.6.2",
"lodash.shuffle": "^4.2.0",
"lodash.union": "^4.6.0",
"lucide-react": "^0.400.0",
"next": "^14.2.3",
"next-i18next": "^14.0.3",
"next-mdx-remote": "^3.0.8",
Expand All @@ -82,6 +82,7 @@
"react-select": "5.8.0",
"reading-time": "^1.5.0",
"remark-gfm": "^3.0.1",
"swiper": "^11.1.10",
"tailwind-merge": "^2.3.0",
"tailwindcss-animate": "^1.0.7",
"usehooks-ts": "^3.1.0",
Expand All @@ -104,6 +105,8 @@
"@types/node": "^20.4.2",
"@types/react": "18.2.57",
"@types/react-dom": "18.2.19",
"@types/swiper": "^6.0.0",
"@types/xml2js": "^0.4.14",
"@typescript-eslint/eslint-plugin": "^6.19.0",
"@typescript-eslint/parser": "^6.19.0",
"autoprefixer": "^10.4.19",
Expand Down Expand Up @@ -133,7 +136,8 @@
"tsconfig-paths-webpack-plugin": "4.1.0",
"typescript": "^5.5.2",
"unified": "^10.0.0",
"unist-util-visit": "^5.0.0"
"unist-util-visit": "^5.0.0",
"xml2js": "^0.6.2"
},
"resolutions": {
"jackspeak": "2.1.1",
Expand Down
9 changes: 9 additions & 0 deletions public/content/bridges/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,15 @@ Many bridging solutions adopt models between these two extremes with varying deg

<Divider />

## Use bridge {#use-bridge}

Using bridges allows you to move your assets across different blockchains. Here are some resources that can help you find and use bridges:

- **[L2BEAT Bridges Summary](https://l2beat.com/bridges/summary) & [L2BEAT Bridges Risk Analysis](https://l2beat.com/bridges/risk)**: A comprehensive summary of various bridges, including details on market share, bridge type, and destination chains. L2BEAT also has a risk analysis for bridges, helping users make informed decisions when selecting a bridge.
- **[DefiLlama Bridge Summary](https://defillama.com/bridges/Ethereum)**: A summary of bridge volumes across Ethereum networks.

<Divider />

## Risk using bridges {#bridge-risk}

Bridges are in the early stages of development. It is likely that the optimal bridge design has not yet been discovered. Interacting with any type of bridge carries risk:
Expand Down
1 change: 1 addition & 0 deletions public/content/community/support/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,5 +100,6 @@ Most of the teams building Ethereum clients also have dedicated, public-facing,
- [Lighthouse](https://discord.gg/cyAszAh)
- [Teku](https://discord.gg/7hPv2T6)
- [Lodestar](https://discord.gg/aMxzVcr)
- [Grandine](https://discord.gg/H9XCdUSyZd)

You can also [learn how to run a node here](/developers/docs/nodes-and-clients/run-a-node/).
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ For any custom software or smart contracts involved:

For software products related to node or client setup, management or migration:

**Which consensus layer clients (i.e. Lighthouse, Teku, Nimbus, Prysm) are supported?**
**Which consensus layer clients (i.e. Lighthouse, Teku, Nimbus, Prysm, Grandine) are supported?**

- Which clients are supported? Can the user choose?
- This is used to determine the products "multi-client" score.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ All translations will also be subject to a thorough review before being added to
</ExpandableCard>

<ExpandableCard title="Which languages can I translate into?">
<p>You can translate into any language! It is recommended to only translate into your native language to ensure sufficient quality, but in short, all language available in Crowdin are in scope for the Translatathon.</p>
<p>You can translate into any language! It is recommended to only translate into your native language to ensure sufficient quality, but in short, all languages available in Crowdin are in scope for the Translatathon.</p>
<p>If you want to translate into a language that isn't available in Crowdin, reach out to us and we will add any language per request.</p>
</ExpandableCard>

Expand Down
2 changes: 1 addition & 1 deletion public/content/cookie-policy/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ hideEditButton: true
Our Websites may use cookies to distinguish you from other users of our Websites. This may help us to provide you with a good experience when you browse our Websites and may also allow us to improve our Websites. By continuing to browse the Websites, you are agreeing to our use of cookies as well as the terms of this policy (the “Cookie Policy”). A cookie is a small file of letters and numbers that we may store on your browser or the hard drive of your computer if you agree. Cookies contain information that is transferred to your computer's hard drive. We may use the following cookies:

- **Strictly necessary cookies.** These are cookies that are required for the operation of our websites. They include, for example, cookies that enable you to log into secure areas of our websites, use a shopping cart or make use of e-commerce payment processing services.
- **Analytical/performance cookies.** They allow us to recognise and count the number of visitors and to see how visitors move around our websites when they are using it. This may help us to improve the way our websites work, for example, by ensuring that users are finding what they are looking for easily.
- **Analytical/performance cookies.** They allow us to recognise and count the number of visitors and to see how visitors move around our websites when they are using them. This may help us to improve the way our websites work, for example, by ensuring that users are finding what they are looking for easily.
- **Functionality cookies.** These cookies are used to recognise you when you return to our websites. They may enable us to personalise our content for you, greet you by name, or remember your preferences (for example, your choice of language or region).
- **Targeting cookies.** These cookies record your visit to our websites, the pages you have visited and the links you have followed.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ Whereas under proof-of-work, the timing of blocks is determined by the mining di

The following provides an end-to-end explanation of how a transaction gets executed in Ethereum proof-of-stake.

1. A user creates and signs a [transaction](/developers/docs/transactions/) with their private key. This is usually handled by a wallet or a library such as [ether.js](https://docs.ethers.io/v5/), [web3js](https://docs.web3js.org/), [web3py](https://web3py.readthedocs.io/en/v5/) etc but under the hood the user is making a request to a node using the Ethereum [JSON-RPC API](/developers/docs/apis/json-rpc/). The user defines the amount of gas that they are prepared to pay as a tip to a validator to encourage them to include the transaction in a block. The [tips](/developers/docs/gas/#priority-fee) get paid to the validator while the [base fee](/developers/docs/gas/#base-fee) gets burned.
1. A user creates and signs a [transaction](/developers/docs/transactions/) with their private key. This is usually handled by a wallet or a library such as [ethers.js](https://docs.ethers.org/v6/), [web3js](https://docs.web3js.org/), [web3py](https://web3py.readthedocs.io/en/v5/) etc but under the hood the user is making a request to a node using the Ethereum [JSON-RPC API](/developers/docs/apis/json-rpc/). The user defines the amount of gas that they are prepared to pay as a tip to a validator to encourage them to include the transaction in a block. The [tips](/developers/docs/gas/#priority-fee) get paid to the validator while the [base fee](/developers/docs/gas/#base-fee) gets burned.
2. The transaction is submitted to an Ethereum [execution client](/developers/docs/nodes-and-clients/#execution-client) which verifies its validity. This means ensuring that the sender has enough ETH to fulfill the transaction and they have signed it with the correct key.
3. If the transaction is valid, the execution client adds it to its local mempool (list of pending transactions) and also broadcasts it to other nodes over the execution layer gossip network. When other nodes hear about the transaction they add it to their local mempool too. Advanced users might refrain from broadcasting their transaction and instead forward it to specialized block builders such as [Flashbots Auction](https://docs.flashbots.net/flashbots-auction/overview). This allows them to organize the transactions in upcoming blocks for maximum profit ([MEV](/developers/docs/mev/#mev-extraction)).
4. One of the validator nodes on the network is the block proposer for the current slot, having previously been selected pseudo-randomly using RANDAO. This node is responsible for building and broadcasting the next block to be added to the Ethereum blockchain and updating the global state. The node is made up of three parts: an execution client, a consensus client and a validator client. The execution client bundles transactions from the local mempool into an "execution payload" and executes them locally to generate a state change. This information is passed to the consensus client where the execution payload is wrapped as part of a "beacon block" that also contains information about rewards, penalties, slashings, attestations etc. that enable the network to agree on the sequence of blocks at the head of the chain. The communication between the execution and consensus clients is described in more detail in [Connecting the Consensus and Execution Clients](/developers/docs/networking-layer/#connecting-clients).
Expand Down
Loading

0 comments on commit 1d4ef15

Please sign in to comment.