diff --git a/.env.goerli b/.env.goerli index e24d0260..8dc1aa09 100644 --- a/.env.goerli +++ b/.env.goerli @@ -1,6 +1,6 @@ export REACT_APP_IS_MAINNET=false export REACT_APP_PRICE_PER_VALIDATOR=3 -export REACT_APP_CONTRACT_ADDRESS=0xd137d1f936b7fa4d885d1ed1901f9388ec9fa166 +export REACT_APP_CONTRACT_ADDRESS=0x0190DD210DDacEA1323edBB69ca135F4a74d6b11 export REACT_APP_ETH_REQUIREMENT=524288 export REACT_APP_ETH_DEPOSIT_OFFSET=6720000 export REACT_APP_TESTNET_LAUNCHPAD_NAME=Goerli diff --git a/package.json b/package.json index 1d72bea2..626f6917 100644 --- a/package.json +++ b/package.json @@ -107,7 +107,7 @@ }, "scripts": { "start": "rescripts start", - "start:goerli": "REACT_APP_IS_MAINNET=false REACT_APP_PRICE_PER_VALIDATOR=3 REACT_APP_CONTRACT_ADDRESS=0xd137d1f936b7fa4d885d1ed1901f9388ec9fa166 rescripts start", + "start:goerli": "REACT_APP_IS_MAINNET=false REACT_APP_PRICE_PER_VALIDATOR=3 REACT_APP_CONTRACT_ADDRESS=0x0190DD210DDacEA1323edBB69ca135F4a74d6b11 REACT_APP_GENESIS_FORK_VERSION=0x00001020 rescripts start", "build": "rescripts build", "test": "rescripts test", "eject": "rescripts eject", diff --git a/src/components/WorkflowPage/WorkflowProgressBar.tsx b/src/components/WorkflowPage/WorkflowProgressBar.tsx index 7098465d..57bd4c10 100644 --- a/src/components/WorkflowPage/WorkflowProgressBar.tsx +++ b/src/components/WorkflowPage/WorkflowProgressBar.tsx @@ -61,7 +61,7 @@ export const WorkflowProgressBar = ({ workflow }: Props): JSX.Element => { }, { step: WorkflowStep.UPLOAD_VALIDATOR_FILE, - text: formatMessage({ defaultMessage: 'Upload deposit data 1 of 2' }), + text: formatMessage({ defaultMessage: 'Upload Deposit Data' }), }, { step: WorkflowStep.CONNECT_WALLET, @@ -69,11 +69,11 @@ export const WorkflowProgressBar = ({ workflow }: Props): JSX.Element => { }, { step: WorkflowStep.WAIT_3_HRS, - text: formatMessage({ defaultMessage: 'Wait 3 hours' }), + text: formatMessage({ defaultMessage: 'Create Earth Node' }), }, { step: WorkflowStep.UPLOAD_VALIDATOR_FILE_STEP_2, - text: formatMessage({ defaultMessage: 'Upload deposit data 2 of 2' }), + text: formatMessage({ defaultMessage: 'Begin Staking' }), }, { step: WorkflowStep.SUMMARY, diff --git a/src/intl/compiled/ar.json b/src/intl/compiled/ar.json index 226793b9..ba0c7850 100644 --- a/src/intl/compiled/ar.json +++ b/src/intl/compiled/ar.json @@ -7846,7 +7846,7 @@ "xbet2w": [ { "type": 0, - "value": "تثبيت python3.7+" + "value": "تثبيت python3.10" } ], "xh7oVn": [ diff --git a/src/intl/compiled/bg.json b/src/intl/compiled/bg.json index 7d23b7eb..3d59e267 100644 --- a/src/intl/compiled/bg.json +++ b/src/intl/compiled/bg.json @@ -7802,7 +7802,7 @@ "xbet2w": [ { "type": 0, - "value": "Инсталирайте python3.7+" + "value": "Инсталирайте python3.10" } ], "xh7oVn": [ diff --git a/src/intl/compiled/cs.json b/src/intl/compiled/cs.json index b72f292c..77c17c32 100644 --- a/src/intl/compiled/cs.json +++ b/src/intl/compiled/cs.json @@ -7866,7 +7866,7 @@ "xbet2w": [ { "type": 0, - "value": "Nainstalovat python3.7+" + "value": "Nainstalovat python3.10" } ], "xh7oVn": [ diff --git a/src/intl/compiled/el.json b/src/intl/compiled/el.json index b87dce0b..63641de1 100644 --- a/src/intl/compiled/el.json +++ b/src/intl/compiled/el.json @@ -7866,7 +7866,7 @@ "xbet2w": [ { "type": 0, - "value": "Εγκατάσταση python3.7+" + "value": "Εγκατάσταση python3.10" } ], "xh7oVn": [ diff --git a/src/intl/compiled/en.json b/src/intl/compiled/en.json index f2966264..1d3313f2 100644 --- a/src/intl/compiled/en.json +++ b/src/intl/compiled/en.json @@ -703,20 +703,6 @@ "value": "Client diversity is extremely important for the network health of Ethereum: A bug in a client with a share of over 33% can cause Ethereum to go offline. If the client has a supermajority (>66%), a bug could cause the chain to incorrectly split, potentially leading to slashing." } ], - "2t/3ab": [ - { - "type": 0, - "value": "The other file you just generated is " - }, - { - "type": 1, - "value": "depositDataJson" - }, - { - "type": 0, - "value": ". This file contains the public key(s) associated with your validator(s); You will need to upload this in the next step." - } - ], "32rBNK": [ { "type": 0, @@ -1251,12 +1237,6 @@ "value": " is not supported in offline mode." } ], - "7D453L": [ - { - "type": 0, - "value": "Upload deposit data 2 of 2" - } - ], "7DFXQj": [ { "type": 0, @@ -2699,12 +2679,6 @@ "value": "Sign transaction with your wallet" } ], - "ISXrvR": [ - { - "type": 0, - "value": "Upload deposit data 1 of 2" - } - ], "IWlazt": [ { "type": 0, @@ -3441,6 +3415,12 @@ "value": ")" } ], + "Nn/D40": [ + { + "type": 0, + "value": "Create Earth Node" + } + ], "NwzcYT": [ { "type": 0, @@ -3513,6 +3493,12 @@ "value": "Documentation on running Erigon" } ], + "OKQQ4L": [ + { + "type": 0, + "value": "Generate key pair" + } + ], "ON2tXT": [ { "type": 0, @@ -3837,6 +3823,28 @@ "value": "networkName" } ], + "QjhLkO": [ + { + "type": 0, + "value": "The other files you just generated are " + }, + { + "type": 1, + "value": "depositDataJson" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "depositDataJson2" + }, + { + "type": 0, + "value": ". These file contains the public key(s) associated with your validator(s); You will need to upload this in the next steps to join the Earth Ether staking protocol." + } + ], "QlsDcr": [ { "type": 0, @@ -4153,6 +4161,12 @@ "value": "Validators and Ethereum" } ], + "TJNz5y": [ + { + "type": 0, + "value": "Install python3.10" + } + ], "TKCr16": [ { "type": 0, @@ -5177,12 +5191,6 @@ "value": "Ethereum uses proof-of-stake to reach consensus." } ], - "cXHsYt": [ - { - "type": 0, - "value": "Wait 3 hours" - } - ], "cav520": [ { "type": 0, @@ -5601,6 +5609,12 @@ "value": "Moreover, you can set your Validator Client (VC) and Beacon Node (BN) on separate machines and IPs so that even if your beacon node is vulnerable, your keystore is stored on a different machine." } ], + "g2kTRg": [ + { + "type": 0, + "value": "Upload Deposit Data" + } + ], "g37XKP": [ { "type": 0, @@ -6663,6 +6677,12 @@ "value": "Erigon documentation" } ], + "nWzc7h": [ + { + "type": 0, + "value": "Begin Staking" + } + ], "nZTFTz": [ { "type": 0, @@ -7725,12 +7745,6 @@ "value": ". It is possible to drop below this with poor node performance, but it is not possible to raise above it." } ], - "ubKWX8": [ - { - "type": 0, - "value": "Generate key pairs" - } - ], "uhapiE": [ { "type": 0, @@ -8023,12 +8037,6 @@ "value": "testnet" } ], - "xbet2w": [ - { - "type": 0, - "value": "Install python3.7+" - } - ], "xh7oVn": [ { "type": 0, diff --git a/src/intl/compiled/es.json b/src/intl/compiled/es.json index 1cac27f4..13848ac3 100644 --- a/src/intl/compiled/es.json +++ b/src/intl/compiled/es.json @@ -7870,7 +7870,7 @@ "xbet2w": [ { "type": 0, - "value": "Instalar python3.7+" + "value": "Instalar python3.10" } ], "xh7oVn": [ diff --git a/src/intl/compiled/fr.json b/src/intl/compiled/fr.json index f59daa10..de2dc87e 100644 --- a/src/intl/compiled/fr.json +++ b/src/intl/compiled/fr.json @@ -7866,7 +7866,7 @@ "xbet2w": [ { "type": 0, - "value": "Installer python3.7+" + "value": "Installer python3.10" } ], "xh7oVn": [ diff --git a/src/intl/compiled/hu.json b/src/intl/compiled/hu.json index c38f362e..5815c4f5 100644 --- a/src/intl/compiled/hu.json +++ b/src/intl/compiled/hu.json @@ -7894,7 +7894,7 @@ "xbet2w": [ { "type": 0, - "value": "A python3.7+ telepítése" + "value": "A python3.10 telepítése" } ], "xh7oVn": [ diff --git a/src/intl/compiled/id.json b/src/intl/compiled/id.json index 0845a9f4..807f5cc0 100644 --- a/src/intl/compiled/id.json +++ b/src/intl/compiled/id.json @@ -7842,7 +7842,7 @@ "xbet2w": [ { "type": 0, - "value": "Instal python3.7+" + "value": "Instal python3.10" } ], "xh7oVn": [ diff --git a/src/intl/compiled/it.json b/src/intl/compiled/it.json index dfe86d7f..3b716190 100644 --- a/src/intl/compiled/it.json +++ b/src/intl/compiled/it.json @@ -7854,7 +7854,7 @@ "xbet2w": [ { "type": 0, - "value": "Installa python3.7+" + "value": "Installa python3.10" } ], "xh7oVn": [ diff --git a/src/intl/compiled/pl.json b/src/intl/compiled/pl.json index f222754d..ffe80813 100644 --- a/src/intl/compiled/pl.json +++ b/src/intl/compiled/pl.json @@ -7838,7 +7838,7 @@ "xbet2w": [ { "type": 0, - "value": "Zainstaluj python3.7+" + "value": "Zainstaluj python3.10" } ], "xh7oVn": [ diff --git a/src/intl/compiled/pt-br.json b/src/intl/compiled/pt-br.json index 3c16b591..a77e92b3 100644 --- a/src/intl/compiled/pt-br.json +++ b/src/intl/compiled/pt-br.json @@ -7862,7 +7862,7 @@ "xbet2w": [ { "type": 0, - "value": "Instalar python3.7+" + "value": "Instalar python3.10" } ], "xh7oVn": [ diff --git a/src/intl/compiled/ro.json b/src/intl/compiled/ro.json index a2205d35..99ede761 100644 --- a/src/intl/compiled/ro.json +++ b/src/intl/compiled/ro.json @@ -7858,7 +7858,7 @@ "xbet2w": [ { "type": 0, - "value": "Instalează python3.7+" + "value": "Instalează python3.10" } ], "xh7oVn": [ diff --git a/src/intl/compiled/sl.json b/src/intl/compiled/sl.json index edc91a9d..adc07d8a 100644 --- a/src/intl/compiled/sl.json +++ b/src/intl/compiled/sl.json @@ -7826,7 +7826,7 @@ "xbet2w": [ { "type": 0, - "value": "Namesti python3.7+" + "value": "Namesti python3.10" } ], "xh7oVn": [ diff --git a/src/intl/compiled/tr.json b/src/intl/compiled/tr.json index e641d1f7..766851f3 100644 --- a/src/intl/compiled/tr.json +++ b/src/intl/compiled/tr.json @@ -7838,7 +7838,7 @@ "xbet2w": [ { "type": 0, - "value": "python3.7+ kurulumunu yapın" + "value": "python3.10 kurulumunu yapın" } ], "xh7oVn": [ diff --git a/src/intl/compiled/zh.json b/src/intl/compiled/zh.json index 27af2e83..8d85748e 100644 --- a/src/intl/compiled/zh.json +++ b/src/intl/compiled/zh.json @@ -7890,7 +7890,7 @@ "xbet2w": [ { "type": 0, - "value": "安装 python3.7+" + "value": "安装 python3.10" } ], "xh7oVn": [ diff --git a/src/intl/en.json b/src/intl/en.json index c3f46372..65bd1877 100644 --- a/src/intl/en.json +++ b/src/intl/en.json @@ -273,9 +273,6 @@ "2rflCq": { "message": "Client diversity is extremely important for the network health of Ethereum: A bug in a client with a share of over 33% can cause Ethereum to go offline. If the client has a supermajority (>66%), a bug could cause the chain to incorrectly split, potentially leading to slashing." }, - "2t/3ab": { - "message": "The other file you just generated is {depositDataJson}. This file contains the public key(s) associated with your validator(s); You will need to upload this in the next step." - }, "32rBNK": { "message": "Terms of Service" }, @@ -443,9 +440,6 @@ "793QlI": { "message": "{title} is not supported in offline mode." }, - "7D453L": { - "message": "Upload deposit data 2 of 2" - }, "7DFXQj": { "message": "Switch to {oppositeNetwork} launchpad" }, @@ -1026,9 +1020,6 @@ "IJw06E": { "message": "Sign transaction with your wallet" }, - "ISXrvR": { - "message": "Upload deposit data 1 of 2" - }, "IWlazt": { "message": "full withdrawal" }, @@ -1327,6 +1318,9 @@ "NkFxlX": { "message": "At least {time} (four epochs) from the current epoch before reaching the exit epoch (with no others in the queue, {highlyVariable})" }, + "Nn/D40": { + "message": "Create Earth Node" + }, "NwzcYT": { "message": "Teku needs to be pointed at files containing keystores and their associated passwords at startup. There are 3 methods for doing so." }, @@ -1351,6 +1345,9 @@ "OJOu1W": { "message": "Documentation on running Erigon" }, + "OKQQ4L": { + "message": "Generate key pair" + }, "ON2tXT": { "message": "The Nethermind documentation explains how to download and install the client." }, @@ -1455,6 +1452,9 @@ "QeE86m": { "message": "Check this document to learn how to run a node on {networkName}" }, + "QjhLkO": { + "message": "The other files you just generated are {depositDataJson} {depositDataJson2}. These file contains the public key(s) associated with your validator(s); You will need to upload this in the next steps to join the Earth Ether staking protocol." + }, "QlsDcr": { "message": "Action" }, @@ -1576,6 +1576,9 @@ "THIzw6": { "message": "Validators and Ethereum" }, + "TJNz5y": { + "message": "Install python3.10" + }, "TKCr16": { "message": "This full withdraw of funds requires that a withdrawal address be set, and will be automatically transferred in the next validator sweep." }, @@ -1977,9 +1980,6 @@ "cU/ZP6": { "message": "Ethereum uses proof-of-stake to reach consensus." }, - "cXHsYt": { - "message": "Wait 3 hours" - }, "cav520": { "message": "Download from GitHub" }, @@ -2134,6 +2134,9 @@ "g/DxI7": { "message": "Moreover, you can set your Validator Client (VC) and Beacon Node (BN) on separate machines and IPs so that even if your beacon node is vulnerable, your keystore is stored on a different machine." }, + "g2kTRg": { + "message": "Upload Deposit Data" + }, "g37XKP": { "message": "More on virtualenv" }, @@ -2547,6 +2550,9 @@ "nW+xcT": { "message": "Erigon documentation" }, + "nWzc7h": { + "message": "Begin Staking" + }, "nZTFTz": { "message": "I understand that there is no advantage to depositing more than once per validator. Any extra {TICKER_NAME} sent in a duplicate deposit will not be counted in my effective validator balance and I will not be able to withdraw it." }, @@ -2915,9 +2921,6 @@ "uYF99H": { "message": "Although a validator's vote is weighted by the amount it has at stake, each validators voting weight starts at, and is capped at {PRICE_PER_VALIDATOR}. It is possible to drop below this with poor node performance, but it is not possible to raise above it." }, - "ubKWX8": { - "message": "Generate key pairs" - }, "uhapiE": { "message": "Ensure your bandwidth can't be throttled and isn't capped so your node stays in sync and will be ready to validate when called." }, @@ -3042,9 +3045,6 @@ "xZZMZ5": { "message": "testnet" }, - "xbet2w": { - "message": "Install python3.7+" - }, "xh7oVn": { "message": "Those looking to exit their validator from staking and withdrawal their ETH should check out the guide below that matches your setup:" }, diff --git a/src/pages/GenerateKeys/NumberInput.tsx b/src/pages/GenerateKeys/NumberInput.tsx index 0299ce9a..990511e0 100644 --- a/src/pages/GenerateKeys/NumberInput.tsx +++ b/src/pages/GenerateKeys/NumberInput.tsx @@ -1,6 +1,7 @@ import React from 'react'; import styled from 'styled-components'; import { FormDown, FormUp } from 'grommet-icons'; +import { Text } from '../../components/Text'; const StyledButton = styled.button` height: 25px; @@ -54,12 +55,14 @@ interface Props { value: number | string; setValue: (e: number) => void; allowDecimals?: boolean; + disabled?: boolean; } export const NumberInput = ({ value, setValue, allowDecimals, + disabled, }: Props): JSX.Element => { const handleManualInput = (e: any) => { const val = e.target.value; @@ -71,27 +74,33 @@ export const NumberInput = ({ }; const decrement = () => { - if (value > 0) setValue(+value - 1); + if (Number(value) > 0) setValue(+value - 1); }; const increment = () => setValue(+value + 1); return (
- - - - - - - - - + {disabled ? ( + {value} + ) : ( + + )} + {!disabled && ( + + + + + + + + + )}
); }; diff --git a/src/pages/GenerateKeys/Option1.tsx b/src/pages/GenerateKeys/Option1.tsx index 41993caa..65485cfe 100644 --- a/src/pages/GenerateKeys/Option1.tsx +++ b/src/pages/GenerateKeys/Option1.tsx @@ -166,57 +166,6 @@ export const Option1 = ({ } ${withdrawalAddress}`} - -
-            {(os === 'linux' || os === 'mac') && './deposit '}
-            {os === 'windows' && (
-              <>
-                .\deposit
-                .exe 
-              
-            )}
-            existing-mnemonic{' '}
-            {Number(validatorCount) > 0
-              ? `--${
-                  TRANSLATE_CLI_FLAGS
-                    ? formatMessage({
-                        defaultMessage: 'num_validators',
-                        description:
-                          'this is used as a command line flag, short for "number of validators"',
-                      })
-                    : 'num_validators'
-                } ${validatorCount}`
-              : ''}{' '}
-            {Number(validatorCount) > 0
-              ? `--${
-                  TRANSLATE_CLI_FLAGS
-                    ? formatMessage({
-                        defaultMessage: 'amount',
-                        description:
-                          'this is used as a command line flag, short for "amount"',
-                      })
-                    : 'amount'
-                } ${Number(validatorCount) * 29}`
-              : ''}{' '}
-            {`--${
-              TRANSLATE_CLI_FLAGS
-                ? formatMessage({
-                    defaultMessage: 'chain',
-                    description: 'this is used as a command line flag',
-                  })
-                : 'chain'
-            } ${NETWORK_NAME.toLowerCase()}`}{' '}
-            {withdrawalAddress &&
-              `--${
-                TRANSLATE_CLI_FLAGS
-                  ? formatMessage({
-                      defaultMessage: 'eth1_withdrawal_address',
-                      description: 'this is used as a command line flag',
-                    })
-                  : 'eth1_withdrawal_address'
-              } ${withdrawalAddress}`}
-          
-
python3 ./staking_deposit/deposit.py new-mnemonic{' '} - {validatorCount > 0 + {Number(validatorCount) > 0 ? `--${ TRANSLATE_CLI_FLAGS ? formatMessage({ @@ -190,7 +190,7 @@ export const Option3 = ({ return (
           .\staking_deposit\deposit.py new-mnemonic{' '}
-          {validatorCount > 0
+          {Number(validatorCount) > 0
             ? `--${
                 TRANSLATE_CLI_FLAGS
                   ? formatMessage({
@@ -220,7 +220,7 @@ export const Option3 = ({
         
       
       
-        
+        
       
       {renderPythonInstructions()}
       
diff --git a/src/pages/GenerateKeys/index.tsx b/src/pages/GenerateKeys/index.tsx
index 9ee0cb75..2c100258 100644
--- a/src/pages/GenerateKeys/index.tsx
+++ b/src/pages/GenerateKeys/index.tsx
@@ -131,7 +131,7 @@ const _GenerateKeysPage = ({
   workflow,
 }: Props): JSX.Element => {
   const { formatMessage } = useIntl();
-  const [validatorCount, setValidatorCount] = useState(0);
+  const [validatorCount, setValidatorCount] = useState(1);
   const [
     mnemonicAcknowledgementChecked,
     setMnemonicAcknowledgementChecked,
@@ -184,7 +184,7 @@ const _GenerateKeysPage = ({
 
   return (
     
       
         
@@ -195,7 +195,11 @@ const _GenerateKeysPage = ({
             
               
             
-            
+            
           
           
Cost @@ -319,12 +323,11 @@ const _GenerateKeysPage = ({ deposit_data.json, + depositDataJson: 1-deposit_data.json, + depositDataJson2: 2-deposit_data.json, }} /> diff --git a/src/pages/UploadValidator/index.tsx b/src/pages/UploadValidator/index.tsx index 9ba0793f..aebb1045 100644 --- a/src/pages/UploadValidator/index.tsx +++ b/src/pages/UploadValidator/index.tsx @@ -345,7 +345,7 @@ const _UploadValidatorPage = ({ deposit_data-[timestamp].json, + json: 1-deposit_data-[timestamp].json, validatorKeys: /staking-deposit-cli/validator_keys, }} />