diff --git a/package.json b/package.json
index 7c97536588b..152c4c47894 100644
--- a/package.json
+++ b/package.json
@@ -36,6 +36,7 @@
"@hookform/resolvers": "^3.8.0",
"@radix-ui/react-accordion": "^1.2.0",
"@radix-ui/react-navigation-menu": "^1.2.0",
+ "@radix-ui/react-popover": "^1.1.1",
"@radix-ui/react-slot": "^1.1.0",
"@radix-ui/react-visually-hidden": "^1.1.0",
"@socialgouv/matomo-next": "^1.8.0",
@@ -121,7 +122,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",
+ "usehooks-ts": "^3.1.0"
},
"resolutions": {
"jackspeak": "2.1.1",
diff --git a/public/content/defi/index.md b/public/content/defi/index.md
index b940700a7e7..50c42acc22f 100644
--- a/public/content/defi/index.md
+++ b/public/content/defi/index.md
@@ -334,7 +334,7 @@ DeFi is an open-source movement. The DeFi protocols and applications are all ope
More on building dapps
-## Further reading {#futher-reading}
+## Further reading {#further-reading}
### DeFi data {#defi-data}
diff --git a/public/content/developers/docs/apis/backend/index.md b/public/content/developers/docs/apis/backend/index.md
index dc858857217..7bfdb6cac91 100644
--- a/public/content/developers/docs/apis/backend/index.md
+++ b/public/content/developers/docs/apis/backend/index.md
@@ -52,6 +52,9 @@ These libraries abstract away much of the complexity of interacting directly wit
- [cloudflare-eth.com](https://www.cloudflare.com/application-services/products/web3/)
+**Etherscan - Block Explorer and Transaction APIs**
+- [Documentation](https://docs.etherscan.io/)
+
**GetBlock-** **_Blockchain-as-a-service for Web3 development_**
- [GetBlock.io](https://getblock.io/)
diff --git a/public/content/developers/docs/oracles/index.md b/public/content/developers/docs/oracles/index.md
index 2572a3f4dab..15e0d8c95e4 100644
--- a/public/content/developers/docs/oracles/index.md
+++ b/public/content/developers/docs/oracles/index.md
@@ -388,6 +388,8 @@ There are multiple oracle applications you can integrate into your Ethereum dapp
**[Chainlink](https://chain.link/)** - _Chainlink decentralized oracle networks provide tamper-proof inputs, outputs, and computations to support advanced smart contracts on any blockchain._
+**[Chronicle](https://chroniclelabs.org/)** - _Chronicle overcomes the current limitations of transferring data on-chain by developing truly scalable, cost-efficient, decentralized, and verifiable oracles._
+
**[Witnet](https://witnet.io/)** - _Witnet is a permissionless, decentralized, and censorship-resistant oracle helping smart contracts to react to real world events with strong crypto-economic guarantees._
**[UMA Oracle](https://uma.xyz)** - _UMA's optimistic oracle allows smart contracts to quickly and receive any kind of data for different applications, including insurance, financial derivatives, and prediction markets._
@@ -424,6 +426,7 @@ There are multiple oracle applications you can integrate into your Ethereum dapp
**Tutorials**
- [How to Fetch the Current Price of Ethereum in Solidity](https://blog.chain.link/fetch-current-crypto-price-data-solidity/) โ _Chainlink_
+- [Consuming Oracle Data](https://docs.chroniclelabs.org/Developers/tutorials/Remix) โ _Chronicle_
**Example projects**
diff --git a/public/content/roadmap/danksharding/index.md b/public/content/roadmap/danksharding/index.md
index 8bb974c0ce0..534f95c8665 100644
--- a/public/content/roadmap/danksharding/index.md
+++ b/public/content/roadmap/danksharding/index.md
@@ -43,7 +43,7 @@ KZG stands for Kate-Zaverucha-Goldberg - the names of the three [original author
The KZG ceremony was a way for many people from across the Ethereum community to collectively generate a secret random string of numbers that can be used to verify some data. It is very important that this string of numbers is not known and cannot be recreated by anyone. To ensure this, each person that participated in the ceremony received a string from the previous participant. They then created some new random values (e.g. by allowing their browser to measure the movement of their mouse) and mix it in with the previous value. They then sent the value on to the next participant and destroyed it from their local machine. As long as one person in the ceremony did this honestly, the final value will be unknowable to an attacker.
-The EIP-4844 KZG ceremony was open to the public and tens of thousands of people participated to add their own entropy (randomness). In total there were over 140,000 contributions, making it the worlds largest ceremony of its kind. For the ceremony to be undermined, 100% of those participants would have to be actively dishonest. From the perspective of the participants, if they know they were honest, there is no need to trust anyone else because they know that they secured the ceremony (they individually satisfied the 1-out-of-N honest participant requirement).
+The EIP-4844 KZG ceremony was open to the public and tens of thousands of people participated to add their own entropy (randomness). In total there were over 140,000 contributions, making it the world's largest ceremony of its kind. For the ceremony to be undermined, 100% of those participants would have to be actively dishonest. From the perspective of the participants, if they know they were honest, there is no need to trust anyone else because they know that they secured the ceremony (they individually satisfied the 1-out-of-N honest participant requirement).
@@ -58,7 +58,7 @@ If someone knows the random locations used for the commitment, it is easy for th
- Neither Danksharding nor Proto-Danksharding follow the traditional "sharding" model that aimed to split the blockchain into multiple parts. Shard chains are no longer part of the roadmap. Instead, Danksharding uses distributed data sampling across blobs to scale Ethereum. This is much simpler to implement. This model has sometimes been referred to as "data-sharding".
+ Neither Danksharding nor Proto-Danksharding follow the traditional "sharding" model that aims to split the blockchain into multiple parts. Shard chains are no longer part of the roadmap. Instead, Danksharding uses distributed data sampling across blobs to scale Ethereum. This is much simpler to implement. This model has sometimes been referred to as "data-sharding".
## What is Danksharding? {#what-is-danksharding}
diff --git a/public/content/roadmap/future-proofing/index.md b/public/content/roadmap/future-proofing/index.md
index 3ff72b4cc9a..8570938bab3 100644
--- a/public/content/roadmap/future-proofing/index.md
+++ b/public/content/roadmap/future-proofing/index.md
@@ -29,7 +29,7 @@ Similarly, there are updates that can be made to other parts of present-day Ethe
## Current progress {#current-progress}
-Most of the upgrades required for future-proofing Ethereum are **still in the research phase and may be several years away** from being implemented. Upgrades such as removing SELF-DESTRUCT and harmonizing the compression scheme used in the execution and consensus clients are likely to come sooner than quantum resistant cryptography.
+Most of the upgrades required for future-proofing Ethereum are **still in the research phase and may be several years away** from being implemented. Upgrades such as removing SELFDESTRUCT and harmonizing the compression scheme used in the execution and consensus clients are likely to come sooner than quantum resistant cryptography.
**Further reading**
diff --git a/public/content/roadmap/index.md b/public/content/roadmap/index.md
index f1c9cb9900f..8c06c14c23a 100644
--- a/public/content/roadmap/index.md
+++ b/public/content/roadmap/index.md
@@ -76,7 +76,7 @@ The roadmap is mostly the result of years of work by researchers and developers
**Yesโalmost definitely**. The roadmap is the current plan for upgrading Ethereum, covering both near-term and future plans. We expect the roadmap to change as new information and technology become available.
-Think of Ethereum's roadmap as a set of intentions for improving Ethereum; it is the core researchers' and developers' best hypothesize of Ethereum's most optimal path forward.
+Think of Ethereum's roadmap as a set of intentions for improving Ethereum; it is the core researchers' and developers' best hypothesis of Ethereum's most optimal path forward.
## When will the roadmap be finished? {#when-will-the-roadmap-be-finished}
diff --git a/public/content/roadmap/merge/index.md b/public/content/roadmap/merge/index.md
index 3c23d5bfffb..aff0da7d792 100644
--- a/public/content/roadmap/merge/index.md
+++ b/public/content/roadmap/merge/index.md
@@ -108,7 +108,7 @@ For more information, check out this blog post by Tim Beiko on & {
isExpanded: boolean
+ offsetBottom?: boolean
+ suppressScale?: boolean
}
-const FixedDot = ({ bottomOffset, isExpanded, ...props }: FixedDotProps) => {
- const { t } = useTranslation("common")
- const size = "12"
- return (
- }
- iconSpacing={{ base: 0, lg: "3" }}
- sx={{
- ".chakra-button__icon": {
- me: !isExpanded ? 0 : undefined,
- },
- }}
- {...props}
- >
-
- (
+ ({ offsetBottom, isExpanded, suppressScale, className, ...props }, ref) => {
+ const { t } = useTranslation("common")
+ return (
+
+ )
+ }
+)
+
+FixedDot.displayName = "FixedDot"
export default FixedDot
diff --git a/src/components/FeedbackWidget/index.tsx b/src/components/FeedbackWidget/index.tsx
index 336ce5086f6..f0fd51214cb 100644
--- a/src/components/FeedbackWidget/index.tsx
+++ b/src/components/FeedbackWidget/index.tsx
@@ -1,27 +1,24 @@
import { useTranslation } from "next-i18next"
+import { MdClose } from "react-icons/md"
+
import {
- AlertDialog,
- AlertDialogBody,
- AlertDialogCloseButton,
- AlertDialogContent,
- AlertDialogFooter,
- AlertDialogHeader,
- AlertDialogOverlay,
- Box,
- Button,
- HStack,
-} from "@chakra-ui/react"
+ Popover,
+ PopoverClose,
+ PopoverContent,
+ PopoverTrigger,
+} from "../ui/popover"
import FixedDot from "./FixedDot"
import { useFeedbackWidget } from "./useFeedbackWidget"
+import { Button } from "@/../tailwind/ui/buttons/Button"
+
const FeedbackWidget = () => {
const { t } = useTranslation("common")
const {
- bottomOffset,
+ offsetBottom,
cancelRef,
feedbackSubmitted,
- getButtonProps,
handleClose,
handleOpen,
handleSubmit,
@@ -31,99 +28,74 @@ const FeedbackWidget = () => {
} = useFeedbackWidget()
return (
<>
-
-
- (open ? handleOpen : handleClose)()}
+ open={isOpen}
>
-
-
-
-
-
- {feedbackSubmitted
- ? t("feedback-widget-thank-you-title")
- : t("feedback-widget-prompt")}
-
-
-
+
+
+
+
+
+