Skip to content

Commit

Permalink
Merge pull request #514 from ethereum/wait-for-ttd
Browse files Browse the repository at this point in the history
Await TTD notice added for MergeReadiness [Fixes #511]
  • Loading branch information
samajammin authored Jun 27, 2022
2 parents 0a46a2e + e25e94a commit ce5a2cc
Show file tree
Hide file tree
Showing 3 changed files with 140 additions and 13 deletions.
56 changes: 56 additions & 0 deletions src/intl/compiled/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -403,6 +403,12 @@
"value": "Documentation on running Nethermind"
}
],
"1wSJQU": [
{
"type": 0,
"value": "Timing:"
}
],
"22EpKq": [
{
"type": 0,
Expand Down Expand Up @@ -1225,6 +1231,24 @@
"value": "Overview"
}
],
"9vLu6E": [
{
"type": 1,
"value": "note"
},
{
"type": 0,
"value": " This step should be performed on "
},
{
"type": 1,
"value": "testnetsOnly"
},
{
"type": 0,
"value": " until the Mainnet TTD (terminal total difficulty) has been announced and clients have released an update. Info is presented for preparation in the meantime."
}
],
"9xeLhs": [
{
"type": 0,
Expand Down Expand Up @@ -1867,6 +1891,12 @@
"value": "Terms of service"
}
],
"FqztZR": [
{
"type": 0,
"value": "Note:"
}
],
"FzkbsB": [
{
"type": 0,
Expand Down Expand Up @@ -3009,6 +3039,20 @@
"value": " to max out your effective balance."
}
],
"Q8fnvz": [
{
"type": 0,
"value": "testnets only (e.g. "
},
{
"type": 1,
"value": "kiln"
},
{
"type": 0,
"value": ")"
}
],
"QKFeMq": [
{
"type": 0,
Expand Down Expand Up @@ -6243,6 +6287,12 @@
"value": "What should the address be?"
}
],
"tgvES0": [
{
"type": 0,
"value": "Now"
}
],
"tigMuZ": [
{
"type": 0,
Expand Down Expand Up @@ -6473,6 +6523,12 @@
"value": "Proceed with caution. Our on-chain data source is down and we are unable to flag any double deposits."
}
],
"vUxy+H": [
{
"type": 0,
"value": "After TTD client releases"
}
],
"vV6ua0": [
{
"type": 0,
Expand Down
18 changes: 18 additions & 0 deletions src/intl/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,9 @@
"1pUw7Y": {
"message": "Documentation on running Nethermind"
},
"1wSJQU": {
"message": "Timing:"
},
"22EpKq": {
"description": "{JSON} is filetype extension",
"message": "This isn't a valid {JSON} file"
Expand Down Expand Up @@ -453,6 +456,9 @@
"9uOFF3": {
"message": "Overview"
},
"9vLu6E": {
"message": "{note} This step should be performed on {testnetsOnly} until the Mainnet TTD (terminal total difficulty) has been announced and clients have released an update. Info is presented for preparation in the meantime."
},
"9xeLhs": {
"message": "Ethereum address withdrawal: If you want to withdraw to your Mainnet wallet address (formerly 'Eth1' address) after the post-merge cleanup upgrade, you can set {ethAddressWithdraw} when running deposit-cli. {boldWarning}"
},
Expand Down Expand Up @@ -710,6 +716,9 @@
"FqgDIV": {
"message": "Terms of service"
},
"FqztZR": {
"message": "Note:"
},
"FzkbsB": {
"message": "validators"
},
Expand Down Expand Up @@ -1157,6 +1166,9 @@
"Q8P0rZ": {
"message": "Validators have a maximum effective balance of {PRICE_PER_VALIDATOR} {TICKER_NAME}. You only need to top up {maxTopupValue} {TICKER_NAME} to max out your effective balance."
},
"Q8fnvz": {
"message": "testnets only (e.g. {kiln})"
},
"QKFeMq": {
"message": "Internet"
},
Expand Down Expand Up @@ -2395,6 +2407,9 @@
"teyxVk": {
"message": "What should the address be?"
},
"tgvES0": {
"message": "Now"
},
"tigMuZ": {
"message": "Wait at least 30 minutes before trying to resubmit a transaction with this {depositData} file. This will give our on-chain data source time to flag any duplicate deposits."
},
Expand Down Expand Up @@ -2485,6 +2500,9 @@
"vJez0K": {
"message": "Proceed with caution. Our on-chain data source is down and we are unable to flag any double deposits."
},
"vUxy+H": {
"message": "After TTD client releases"
},
"vV6ua0": {
"message": "Step 1: Download the Wagyu Key Gen app for your operating system"
},
Expand Down
79 changes: 66 additions & 13 deletions src/pages/MergeReadiness/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ const ChecklistPageStyles = styled.div`
margin-bottom: 5px;
}
}
section.pending {
filter: grayscale(100%);
opacity: 75%;
}
label {
padding: 1rem;
}
Expand Down Expand Up @@ -54,33 +58,47 @@ const Subtitle = styled.p`
const CardContainer = styled.div`
display: grid;
grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
grid-auto-rows: 1fr;
gap: 1rem;
@media only screen and (max-width: ${p => p.theme.screenSizes.medium}) {
flex-direction: column;
}
`;

const Card = styled.div`
display: flex;
padding: 24px;
border: 1px solid ${p => p.theme.gray.dark};
border-radius: 4px;
width: 100%;
height: 100%;
background: white;
display: flex;
align-items: center;
width: 100%;
justify-content: space-between;
@media only screen and (max-width: ${p => p.theme.screenSizes.medium}) {
margin: 0px;
margin-top: 16px;
}
&.pending {
filter: grayscale(75%);
opacity: 60%;
}
transform: scale(1);
transition: transform 0.1s;
&:hover {
cursor: pointer;
box-shadow: 0px 8px 17px rgba(0, 0, 0, 0.15);
transition: transform 0.1s;
transform: scale(1.02);
}
p.timing {
font-size: 0.875rem;
line-height: 140%;
margin-bottom: 0;
}
`;

const BoldGreen = styled.span`
Expand Down Expand Up @@ -113,18 +131,23 @@ export const MergeReadiness = () => {
const sections = [
{
heading: <FormattedMessage defaultMessage="Task 1" />,
timing: <FormattedMessage defaultMessage="Now" />,
title: <FormattedMessage defaultMessage="Both layers required" />,
id: 'el-plus-cl',
},
{
heading: <FormattedMessage defaultMessage="Task 2" />,
timing: <FormattedMessage defaultMessage="After TTD client releases" />,
title: <FormattedMessage defaultMessage="Authenticate Engine API" />,
id: 'authenticate',
pending: true,
},
{
heading: <FormattedMessage defaultMessage="Task 3" />,
timing: <FormattedMessage defaultMessage="After TTD client releases" />,
title: <FormattedMessage defaultMessage="Set fee recipient" />,
id: 'fee-recipient',
pending: true,
},
{
heading: <FormattedMessage defaultMessage="Bonus" />,
Expand All @@ -133,6 +156,33 @@ export const MergeReadiness = () => {
},
];

const TimingWarning = () => (
<SectionHeader className="m0 pt0">
<Alert variant="error" className="m0">
<Text>
<FormattedMessage
defaultMessage="{note} This step should be performed on {testnetsOnly} until the Mainnet TTD (terminal total difficulty) has been announced and clients have released an update. Info is presented for preparation in the meantime."
values={{
note: (
<strong>
<FormattedMessage defaultMessage="Note:" />
</strong>
),
testnetsOnly: (
<Link to="#testing-the-merge" inline primary>
<FormattedMessage
defaultMessage="testnets only (e.g. {kiln})"
values={{ kiln: 'Kiln' }}
/>
</Link>
),
}}
/>
</Text>
</Alert>
</SectionHeader>
);

return (
<PageTemplate
title={formatMessage({ defaultMessage: 'Merge readiness checklist' })}
Expand All @@ -148,23 +198,27 @@ export const MergeReadiness = () => {
</Subtitle>

<CardContainer>
{sections.map(({ heading, title, id }) => (
{sections.map(({ heading, title, timing, pending, id }) => (
<StyledLink to={`#${id}`} inline isTextLink={false} key={id}>
<Card>
<Card className={pending ? 'pending' : ''}>
<div>
<Heading level={4} className="mb10">
{heading}
</Heading>
<BoldGreen className="mr10" fontSize={24}>
{title}
</BoldGreen>
{timing && (
<p className={`timing ${pending ? 'pending' : null}`}>
<FormattedMessage defaultMessage="Timing:" /> {timing}
</p>
)}
</div>
<FormNext size="large" />
</Card>
</StyledLink>
))}
</CardContainer>

<ChecklistPageStyles>
<SectionHeader id={sections[0].id}>
<Heading level={3}>
Expand All @@ -176,7 +230,7 @@ export const MergeReadiness = () => {
<FormattedMessage defaultMessage="Post-merge, an Ethereum node will be comprised of both an execution client, and a consensus client." />
</Text>
</SectionHeader>
<section>
<section className={sections[0].pending ? 'pending' : ''}>
<Text className="mt20">
<FormattedMessage defaultMessage="Since the genesis of the Beacon Chain, many validators running their own consensus client have opted to use third-party services for their execution layer connection. This has been acceptable since the only thing being listened to has been the staking deposit contract." />
</Text>
Expand Down Expand Up @@ -219,10 +273,8 @@ export const MergeReadiness = () => {
<FormattedMessage defaultMessage="The execution and consensus layers work together tightly, and require authentication to stay safe. " />
</Text>
</SectionHeader>
<section>
{/* <Heading level={3} id="engine-api-jwt">
<FormattedMessage defaultMessage="Engine API" />
</Heading> */}
<TimingWarning />
<section className={sections[1].pending ? 'pending' : ''}>
<Text className="mt20">
<FormattedMessage
defaultMessage="Communication between the execution layer and consensus layer will occur using the {engineApi}. This is a new set of JSON RPC methods that can be used to communicate between the two client layers."
Expand All @@ -239,9 +291,6 @@ export const MergeReadiness = () => {
}}
/>
</Text>
{/* <Heading level={3} id="engine-api-jwt">
<FormattedMessage defaultMessage="JWT" />
</Heading> */}
<Text className="mt20">
<FormattedMessage
defaultMessage="This communication is secured using a {jwt} secret, which is a secret key that is shared only between the two clients to authenticate one another. This shared JWT secret must be made available to each client (both EL and CL) to properly authenticate the Engine API, allowing them to properly communicate between one another."
Expand Down Expand Up @@ -353,6 +402,7 @@ export const MergeReadiness = () => {
/>
</Text>
}
disabled={sections[1].pending}
/>
</section>
<SectionHeader id={sections[2].id}>
Expand All @@ -365,7 +415,8 @@ export const MergeReadiness = () => {
<FormattedMessage defaultMessage="Fees rewards are coming to validators, don't miss out!" />
</Text>
</SectionHeader>
<section>
<TimingWarning />
<section className={sections[2].pending ? 'pending' : ''}>
<Text className="mt20">
<FormattedMessage defaultMessage="Now that transactions must be processed by validators, the validators that propose blocks including these transactions are eligible to receive the transaction fee tips. These are also known as priority fees, and are the unburnt portion of gas fees." />
</Text>
Expand Down Expand Up @@ -435,13 +486,15 @@ export const MergeReadiness = () => {
<FormattedMessage defaultMessage="I understand that I will earn the unburnt transaction fees (tips/priority fees) when I propose a block, and this is accounted for on the execution layer, not my validator balance." />
</Text>
}
disabled={sections[2].pending}
/>
<CheckBox
label={
<Text className="checkbox-label">
<FormattedMessage defaultMessage="I have provided an Ethereum address to my validator where I would like my fee rewards to be deposited." />
</Text>
}
disabled={sections[2].pending}
/>
</section>
<SectionHeader id={sections[3].id}>
Expand Down

0 comments on commit ce5a2cc

Please sign in to comment.