-
-)
-
-export default PreMergeBanner
diff --git a/src/content/developers/docs/development-networks/index.md b/src/content/developers/docs/development-networks/index.md
index 1ab2a754a7e..8cac676a572 100644
--- a/src/content/developers/docs/development-networks/index.md
+++ b/src/content/developers/docs/development-networks/index.md
@@ -3,7 +3,6 @@ title: Development Networks
description: An overview of development networks and the tools available to help build Ethereum applications.
lang: en
sidebar: true
-preMergeBanner: true
---
When building an Ethereum application with smart contracts, you'll want to run it on a local network to see how it works before deploying it.
diff --git a/src/content/developers/docs/intro-to-ethereum/index.md b/src/content/developers/docs/intro-to-ethereum/index.md
index 44f5d6c102f..b2b78a530c9 100644
--- a/src/content/developers/docs/intro-to-ethereum/index.md
+++ b/src/content/developers/docs/intro-to-ethereum/index.md
@@ -3,7 +3,6 @@ title: Intro to Ethereum
description: A dapp developer's introduction to the core concepts of Ethereum.
lang: en
sidebar: true
-preMergeBanner: true
---
## What is a blockchain? {#what-is-a-blockchain}
diff --git a/src/content/developers/docs/nodes-and-clients/index.md b/src/content/developers/docs/nodes-and-clients/index.md
index b2eb497efce..160ba591f46 100644
--- a/src/content/developers/docs/nodes-and-clients/index.md
+++ b/src/content/developers/docs/nodes-and-clients/index.md
@@ -4,7 +4,6 @@ description: An overview of Ethereum nodes and client software, plus how to set
lang: en
sidebar: true
sidebarDepth: 2
-preMergeBanner: true
---
Ethereum is a distributed network of computers (known as nodes) running software that can verify blocks and transaction data. The software application, known as a client, must be run on your computer to turn it into an Ethereum node.
diff --git a/src/content/developers/docs/nodes-and-clients/run-a-node/index.md b/src/content/developers/docs/nodes-and-clients/run-a-node/index.md
index c278b0f70fb..018d863cb12 100644
--- a/src/content/developers/docs/nodes-and-clients/run-a-node/index.md
+++ b/src/content/developers/docs/nodes-and-clients/run-a-node/index.md
@@ -4,7 +4,6 @@ description: General introduction to running your own instance of an Ethereum cl
lang: en
sidebar: true
sidebarDepth: 2
-preMergeBanner: true
---
Running your own node provides you various benefits, opens new possibilities, and helps to support the ecosystem. This page will guide you through spinning up your own node and taking part in validating Ethereum transactions.
diff --git a/src/content/developers/tutorials/hello-world-smart-contract-fullstack/index.md b/src/content/developers/tutorials/hello-world-smart-contract-fullstack/index.md
index 9d6786ff9a7..d59d04e4feb 100644
--- a/src/content/developers/tutorials/hello-world-smart-contract-fullstack/index.md
+++ b/src/content/developers/tutorials/hello-world-smart-contract-fullstack/index.md
@@ -20,6 +20,7 @@ skill: beginner
lang: en
sidebar: true
published: 2021-10-25
+postMergeBannerTranslation: page-upgrades-post-merge-banner-tutorial-ood
---
This guide is for you if you are new to blockchain development and don't know where to start or how to deploy and interact with smart contracts. We will walk through creating and deploying a simple, smart contract on the Ropsten test network using [MetaMask](https://metamask.io), [Solidity](https://docs.soliditylang.org/en/v0.8.0/), [Hardhat](https://hardhat.org), and [Alchemy](https://alchemyapi.io/eth).
diff --git a/src/content/developers/tutorials/run-light-node-geth/index.md b/src/content/developers/tutorials/run-light-node-geth/index.md
index 6f398363d8e..10c71042675 100644
--- a/src/content/developers/tutorials/run-light-node-geth/index.md
+++ b/src/content/developers/tutorials/run-light-node-geth/index.md
@@ -7,7 +7,7 @@ skill: beginner
lang: en
sidebar: true
published: 2022-03-04
-preMergeBanner: true
+postMergeBannerTranslation: page-upgrades-post-merge-banner-tutorial-light-node-ood
---
**Please note that Geth light clients can be very slow to find peers. This is because they rely on full-node operators volunteering themselves as light servers from which the light clients can request data. There are usually only a small number of light servers available.**
diff --git a/src/content/developers/tutorials/run-node-raspberry-pi/index.md b/src/content/developers/tutorials/run-node-raspberry-pi/index.md
index f66e06dc6b9..3cdd220323c 100644
--- a/src/content/developers/tutorials/run-node-raspberry-pi/index.md
+++ b/src/content/developers/tutorials/run-node-raspberry-pi/index.md
@@ -9,7 +9,7 @@ skill: intermediate
published: 2022-06-10
source: Ethereum on ARM
sourceUrl: https://ethereum-on-arm-documentation.readthedocs.io/en/latest/kiln/kiln-testnet.html
-preMergeBanner: true
+postMergeBannerTranslation: page-upgrades-post-merge-banner-tutorial-ood
---
**Ethereum on Arm is a custom Linux image that can turn a Raspberry Pi into an Ethereum node.**
diff --git a/src/content/governance/index.md b/src/content/governance/index.md
index 7bff3d0e388..92c1fa354e0 100644
--- a/src/content/governance/index.md
+++ b/src/content/governance/index.md
@@ -3,6 +3,7 @@ title: Ethereum Governance
description: An introduction to how decisions about Ethereum are made.
lang: en
sidebar: true
+postMergeBannerTranslation: page-upgrades-post-merge-banner-governance-ood
---
# Introduction to Ethereum governance {#introduction}
diff --git a/src/intl/en/page-upgrades.json b/src/intl/en/page-upgrades.json
index eb1036db228..5dbe8cadc8b 100644
--- a/src/intl/en/page-upgrades.json
+++ b/src/intl/en/page-upgrades.json
@@ -6,5 +6,8 @@
"page-upgrades-shards-date": "~2023",
"page-upgrades-merge-banner-intro": "The Merge is approaching, and comes with changes to Ethereum.",
"page-upgrades-merge-banner-content-outdated": "Some content on this page is out-of-date related to these changes. Updates are coming soon.",
- "page-upgrades-merge-banner-developers-landing": "Some docs have a banner indicating they are out-of-date. Updates coming soon."
+ "page-upgrades-merge-banner-developers-landing": "Some docs have a banner indicating they are out-of-date. Updates coming soon.",
+ "page-upgrades-post-merge-banner-tutorial-ood": "This tutorial is out of date after the merge and may not work. Please raise a PR if you would like to contribute.",
+ "page-upgrades-post-merge-banner-tutorial-light-node-ood": "This tutorial is out of date after the merge. Light nodes do not currently work on proof-of-stake, but are expected to ship soon.",
+ "page-upgrades-post-merge-banner-governance-ood": "Some content on this page is out-of-date after the merge. Please raise a PR if you would like to contribute."
}
diff --git a/src/pages/developers/index.tsx b/src/pages/developers/index.tsx
index 59cf99dbf0e..839e25a158a 100644
--- a/src/pages/developers/index.tsx
+++ b/src/pages/developers/index.tsx
@@ -9,7 +9,6 @@ import Card from "../../components/Card"
import Callout from "../../components/Callout"
import Link from "../../components/Link"
import Translation from "../../components/Translation"
-import PreMergeBanner from "../../components/PreMergeBanner"
import ButtonLink from "../../components/ButtonLink"
import PageMetadata from "../../components/PageMetadata"
import {
@@ -248,9 +247,6 @@ const DevelopersPage = ({
title={translateMessageId("page-developer-meta-title", intl)}
description={translateMessageId("page-developers-meta-desc", intl)}
/>
-
-
-
diff --git a/src/pages/developers/tutorials.tsx b/src/pages/developers/tutorials.tsx
index 1ddf6f4c4da..63378e73b63 100644
--- a/src/pages/developers/tutorials.tsx
+++ b/src/pages/developers/tutorials.tsx
@@ -563,7 +563,6 @@ export const query = graphql`
skill
published
lang
- preMergeBanner
}
}
}
diff --git a/src/pages/index.tsx b/src/pages/index.tsx
index 5b3fef0ed13..3ade9225fd5 100644
--- a/src/pages/index.tsx
+++ b/src/pages/index.tsx
@@ -24,7 +24,6 @@ import {
LeftColumn,
} from "../components/SharedStyledComponents"
import { translateMessageId, isLangRightToLeft } from "../utils/translations"
-import PreMergeBanner from "../components/PreMergeBanner"
import SimpleWalletContent from "!!raw-loader!../data/SimpleWallet.sol"
import SimpleTokenContent from "!!raw-loader!../data/SimpleToken.sol"
@@ -560,7 +559,6 @@ const HomePage = ({
title={translateMessageId("page-index-meta-title", intl)}
description={translateMessageId("page-index-meta-description", intl)}
/>
-
@@ -204,13 +204,7 @@ const DocsPage = ({
)}
- {showMergeBanner && (
-
- {isDevelopersHome && (
-
- )}
-
- )}
+ {showPostMergeBanner && }
{mdx.frontmatter.title}
@@ -270,7 +264,6 @@ export const query = graphql`
sidebar
sidebarDepth
isOutdated
- preMergeBanner
}
body
tableOfContents
diff --git a/src/templates/static.tsx b/src/templates/static.tsx
index ba6430eccdc..e7a4affb3cd 100644
--- a/src/templates/static.tsx
+++ b/src/templates/static.tsx
@@ -44,9 +44,10 @@ import UpcomingEventsList from "../components/UpcomingEventsList"
import Icon from "../components/Icon"
import SocialListItem from "../components/SocialListItem"
import YouTube from "../components/YouTube"
+import PostMergeBanner from "../components/Banners/PostMergeBanner"
import { getLocaleTimestamp } from "../utils/time"
-import { isLangRightToLeft } from "../utils/translations"
+import { isLangRightToLeft, TranslationKey } from "../utils/translations"
import { Lang } from "../utils/languages"
import { Context } from "../types"
@@ -164,6 +165,10 @@ const StaticPage = ({
const isRightToLeft = isLangRightToLeft(mdx.frontmatter.lang as Lang)
+ const showPostMergeBanner = !!mdx.frontmatter.postMergeBannerTranslation
+ const postMergeBannerTranslationString = mdx.frontmatter
+ .postMergeBannerTranslation as TranslationKey | null
+
// FIXME: remove this any, currently not sure how to fix the ts error
const parent: any = mdx.parent
const lastUpdatedDate = parent.fields
@@ -181,38 +186,45 @@ const StaticPage = ({
const slug = mdx.fields?.slug || ""
return (
-
-
-
-
-
- :{" "}
- {getLocaleTimestamp(intl.locale as Lang, lastUpdatedDate)}
-
-
-
- {mdx.body}
-
-
-
- {mdx.frontmatter.sidebar && tocItems && (
-
+ {showPostMergeBanner && (
+
)}
-
+
+
+
+
+
+ :{" "}
+ {getLocaleTimestamp(intl.locale as Lang, lastUpdatedDate)}
+
+
+
+ {mdx.body}
+
+
+
+ {mdx.frontmatter.sidebar && tocItems && (
+
+ )}
+
+
)
}
@@ -234,6 +246,7 @@ export const staticPageQuery = graphql`
sidebar
sidebarDepth
isOutdated
+ postMergeBannerTranslation
}
body
tableOfContents
diff --git a/src/templates/tutorial.tsx b/src/templates/tutorial.tsx
index 5810dc6abfd..31c4a2d889b 100644
--- a/src/templates/tutorial.tsx
+++ b/src/templates/tutorial.tsx
@@ -31,10 +31,10 @@ import {
} from "../components/SharedStyledComponents"
import Emoji from "../components/Emoji"
import YouTube from "../components/YouTube"
-import PreMergeBanner from "../components/PreMergeBanner"
+import PostMergeBanner from "../components/Banners/PostMergeBanner"
import FeedbackCard from "../components/FeedbackCard"
-import { isLangRightToLeft } from "../utils/translations"
+import { isLangRightToLeft, TranslationKey } from "../utils/translations"
import { Lang } from "../utils/languages"
import { Context } from "../types"
@@ -163,7 +163,10 @@ const TutorialPage = ({
throw new Error("Required `relativePath` is missing on pageContext")
const isRightToLeft = isLangRightToLeft(mdx.frontmatter.lang as Lang)
- const showMergeBanner = !!mdx.frontmatter.preMergeBanner
+
+ const showPostMergeBanner = !!mdx.frontmatter.postMergeBannerTranslation
+ const postMergeBannerTranslationString = mdx.frontmatter
+ .postMergeBannerTranslation as TranslationKey | null
const tocItems = mdx.tableOfContents?.items as Array
@@ -171,7 +174,11 @@ const TutorialPage = ({
const absoluteEditPath = `${editContentUrl}${relativePath}`
return (