{"version":3,"sources":["../node_modules/@chainsafe/eth2-bls-wasm/dist sync /^/.//.*/.js$","static/eth-diamond-plain.svg","contractAbi.ts","pages/ConnectWallet/web3Utils.ts","styles/styledComponentsTheme.ts","styles/grommetTheme.ts","pages/ConnectWallet/fortmaticConnector.ts","store/actions/index.ts","store/actions/depositFileActions.ts","components/Dot.tsx","utils/trimString.ts","hooks/useIntlNetworkName.tsx","hooks/useMobileCheck.ts","components/AppBar.tsx","store/actions/workflowActions.ts","pages/Transactions/Keylist/Status.tsx","pages/Transactions/Keylist/ActionButton.tsx","utils/prefix0x.ts","pages/Transactions/transactionUtils.tsx","pages/Transactions/Keylist/index.tsx","utils/queryBeaconchain.ts","pages/GenerateKeys/index.tsx","utils/calculateStakingRewards.ts","utils/RouteToCorrectWorkflowStep.tsx","pages/Congratulations/index.tsx","components/WorkflowPage/WorkflowProgressBar.tsx","components/DesktopOnlyModal.tsx","components/WorkflowPage/WorkflowPageTemplate.tsx","pages/ConnectWallet/WalletButton.tsx","pages/ConnectWallet/MetamaskHardwareButton.tsx","pages/ConnectWallet/index.tsx","components/SelectionBox.tsx","components/ImageSelectionBox.tsx","pages/GenerateKeys/OperatingSystemButtons.tsx","components/TextSelectionBox.tsx","components/Code.tsx","pages/GenerateKeys/Option1.tsx","pages/GenerateKeys/Option2.tsx","pages/GenerateKeys/Option3.tsx","pages/GenerateKeys/Instructions.tsx","pages/GenerateKeys/NumberInput.tsx","store/reducers/acknowledgementReducer.ts","components/TestnetNotification.tsx","pages/Landing/Hero.tsx","utils/numberWithCommas.ts","pages/Landing/NetworkStatus/index.tsx","pages/Landing/Introduction/VerifyDepositsAllowance.tsx","pages/Landing/Introduction/index.tsx","pages/Landing/Upgrades/UpgradeCard.tsx","pages/Landing/Upgrades/index.tsx","pages/NotFound.tsx","store/actions/clientActions.ts","store/reducers/depositFileReducer.ts","store/reducers/clientReducer.ts","store/reducers/index.ts","store/reducers/workflowReducer.ts","pages/Acknowledgements/pageContent.tsx","pages/Acknowledgements/AcknowledgementProgressTracker/AnimatedCheck.tsx","pages/Acknowledgements/AcknowledgementProgressTracker/AcknowledgementProgressStep.tsx","pages/Acknowledgements/AcknowledgementProgressTracker/index.tsx","pages/Acknowledgements/AcknowledgementSection.tsx","pages/Acknowledgements/index.tsx","store/actions/acknowledgementActions.ts","pages/SelectClient/SelectClientSection.tsx","pages/SelectClient/SelectClientButtons.tsx","pages/Clients/ValidatorClientComponents.tsx","components/PageTemplate.tsx","pages/Clients/Consensus/Prysm.tsx","pages/Clients/Consensus/Lighthouse.tsx","pages/Clients/Execution/Geth.tsx","pages/Clients/Execution/Erigon.tsx","pages/SelectClient/index.tsx","pages/Summary/AcknowledgementSection.tsx","pages/ConnectWallet/WalletDisconnected.tsx","pages/ConnectWallet/WrongNetwork.tsx","components/InfoBox.tsx","pages/Summary/index.tsx","utils/verifySignature.ts","pages/UploadValidator/validateDepositKey.ts","pages/UploadValidator/Icons.tsx","pages/UploadValidator/FileUploadAnimation.tsx","pages/UploadValidator/index.tsx","pages/Checklist/index.tsx","pages/Transactions/index.tsx","pages/FAQ/index.jsx","pages/Phishing/index.tsx","pages/Congratulations/ClientCard.tsx","Routes.tsx","pages/Languages/index.tsx","pages/TermsOfService/index.tsx","components/NakedButton.tsx","pages/TopUp/components/WalletConnectModal.tsx","hooks/useKeyPress.ts","pages/TopUp/components/ValidatorTable.tsx","pages/TopUp/index.tsx","utils/ScrollToTop.tsx","pages/Clients/Consensus/Teku.tsx","pages/Clients/Consensus/Nimbus.tsx","pages/Clients/Execution/Besu.tsx","pages/Clients/Execution/Nethermind.tsx","pages/Landing/index.tsx","styles/GlobalStyles.ts","components/LocalizedRouter.tsx","components/Custom/Footer.tsx","App.tsx","index.tsx","static/geth-bg.png","components/Button.tsx","utils/transactionErrorTypes.ts","components/Alert.tsx","static/leslie-rhino.png","static/metamask.svg","static/fortmatic.svg","static/prysmatic-bg.png","components/Text.tsx","static/lighthouse-bg.png","utils/shortenAddress.ts","components/Spinner/index.tsx","components/Paper.tsx","components/Link.tsx","static/mobile.svg","static/laptop.svg","static/ledger.png","static/apple.svg","static/linux.svg","static/windows.svg","static/github-cli-screenshot.png","static/github-wagyu-key-gen-screenshot.png","static/instructions_1.svg","static/instructions_2.svg","static/eth-round-landing.svg","static/custom/error.svg","static/custom/complete-filled.svg","static/prysmatic-labs-circle.png","static/lighthouse-circle.png","static/gethereum-mascot-circle.png","static/erigon-circle.png","static/erigon-bg.png","static/close.svg","static/portis.svg","pages/TopUp/components/TopupPage.tsx","utils/buf2hex.ts","pages/TopUp/components/TopUpInput.tsx","static/teku-bg.png","static/nimbus-bg.png","static/besu-bg.png","static/nethermind-bg.png","static/custom/social-instagram.svg","static/custom/social-twitter.svg","static/custom/social-linkedin.svg","static/custom/social-telegram.svg","static/custom/social-discord.svg","static/custom/social-reddit.svg","static/custom/social-medium.svg","static/custom/social-github.svg","static/custom/lukso-logo.svg","pages/TopUp/components/TransactionProgress.tsx","pages/TopUp/components/TopUpTransactionModal.tsx","utils/envVars.ts","components/Heading.tsx","intl/index.ts","utils/SSZ.ts"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","contractAbi","inputs","internalType","name","type","stateMutability","anonymous","indexed","outputs","NetworkChainId","colors","transparent","white","gray","lightest","light","medium","dark","black","blue","green","red","orange","purple","yellow","darkest","rainbowColors","rainbowBGColors","rainbowLightColors","rainbow","join","rainbowLight","styledComponentsTheme","screenSizes","smaller","small","large","larger","largest","huge","borderRadius","grommetTheme","global","focus","border","color","outline","brand","blueLight","blueMedium","blueDark","greenLight","greenMedium","greenDark","redLightest","redLight","redMedium","grayLight","grayMedium","grayDark","yellowDark","font","family","button","radius","padding","vertical","horizontal","primary","extend","checkBox","check","checked","gap","hover","icon","size","chainIdToNetwork","4201","2022","FortmaticConnector","apiKey","chainId","rpcUrl","invariant","includes","toString","supportedChainIds","fortmatic","this","Fortmatic","default","getProvider","enable","then","accounts","account","provider","send","close","user","logout","emitDeactivate","AbstractConnector","Testnet","Mainnet","supportedNetworks","Testnet2022","TARGET_NETWORK_CHAIN_ID","CHAINID","AllowedNetworks","IS_MAINNET","metamask","MetamaskConnector","FORTMATIC_KEY","INFURA_URL","ActionTypes","TransactionStatus","DepositStatus","BeaconChainStatus","StyledDiv","styled","div","p","width","height","success","theme","warning","error","Dot","props","Checkmark","Close","trimString","string","length","mid","Math","ceil","rmCount","lRmIdx","rRmIdx","substring","useIntlNetworkName","formatMessage","useIntl","mainnet","executionLayerName","EL_TESTNET_NAME","consensusLayerName","TESTNET_LAUNCHPAD_NAME","useMobileCheck","maxWidth","React","useState","isMobile","setMobile","useEffect","window","matchMedia","query","setMobileFromQuery","q","matches","removeListener","addListener","RainbowBackground","Box","EthLogo","img","NetworkText","NavBarLinks","ValidatorDropdown","DropButton","DotDropdown","DropdownLink","Link","Card","NetworkInfo","NavLinksRight","BarLinkText","Heading","active","AppBar","withRouter","network","location","useWeb3React","walletConnected","oppositeNetwork","defaultMessage","values","networkAllowed","pathname","useMemo","isDropdownPage","routesEnum","lighthouse","nimbus","prysm","teku","mobile","switchLaunchpadUrl","TESTNET_LAUNCHPAD_URL","MAINNET_LAUNCHPAD_URL","tag","direction","align","justify","pad","left","right","elevation","style","zIndex","to","landingPage","className","src","EthDiamond","alt","level","margin","Text","NETWORK_NAME","acknowledgementPage","label","dropAlign","top","dropContent","erigon","geth","checklistPage","FaqPage","topUpPage","languagesPage","Language","Menu","FormDown","WorkflowStep","updateTransactionStatus","pubkey","status","txHash","payload","Status","transactionStatus","depositStatus","ALREADY_DEPOSITED","READY","PENDING","STARTED","kind","SUCCEEDED","FAILED","REJECTED","Container","ButtonText","ButtonLink","ActionButton","onClick","BEACONCHAIN_URL","data-tip","LYXERSCAN_URL","data-for","place","effect","BEACONSCAN_URL","FormNextLink","prefix0X","key","TX_VALUE","BigNumber","PRICE_PER_VALIDATOR","multipliedBy","toNumber","isUserRejectionError","message","handleMultipleTransactions","depositKeys","connector","a","walletProvider","web3","Web3","contract","eth","Contract","CONTRACT_ADDRESS","utils","getGasPrice","toHex","transactionParameters","gasPrice","from","value","remainingTxs","filter","undefined","nextTransaction","shift","withdrawalCredentials","withdrawal_credentials","signature","depositDataRoot","deposit_data_root","depositData","methods","deposit","on","confirmation","receipt","CustomTableRow","TableRow","header","invalid","CustomPaper","Paper","CustomTable","Table","KeyList","connect","depositFile","dispatch","dispatchTransactionStatusUpdate","TableHeader","TableCell","scope","TableBody","depositKey","i","slice","handleActionClick","queryBeaconchain","axios","get","response","ethBalance","data","totalvalidatorbalance","toFixed","statusCode","body","totalValidators","validatorscount","amountEth","LYX_DEPOSIT_OFFSET","console","msg","operatingSystem","updateWorkflow","workflowStep","calculateStakingRewards","slotTimeInSec","slotsInEpoch","baseRewardFactor","totalAtStake","averageNetworkPctOnline","vaildatorUptime","validatorDeposit","effectiveBalanceIncrement","weightDenominator","proposerWeight","epochPerYear","baseGweiRewardFullValidator","routeToCorrectWorkflowStep","step","OVERVIEW","push","SELECT_CLIENT","selectClient","GENERATE_KEY_PAIRS","generateKeysPage","UPLOAD_VALIDATOR_FILE","uploadValidatorPage","CONNECT_WALLET","connectWalletPage","SUMMARY","summaryPage","TRANSACTION_SIGNING","transactionsPage","CONGRATULATIONS","congratulationsPage","notFoundPage","Gutter","Content","BoldGreen","span","fontSize","CardLink","CardButton","Row","WarningRow","ButtonRow","WarningText","CardContainer","ChecklistAlert","Leslie","attrs","LeslieTheRhinoPNG","CongratulationsPage","workflow","state","setState","totalTxCount","remainingTxCount","file","allTxConfirmed","_every","actualTxConfirmed","currentAPR","formattedAPR","round","toLocaleString","LoadingHandler","role","aria-label","Alert","variant","testnet","inline","TICKER_NAME","FlagFill","FormNext","stakerChecklist","Button","isTextLink","fullWidth","StepContainer","Step","index","Arrow","WorkflowProgressBar","steps","text","disabled","Image","ImageContainer","ImageBackground","IconStyles","marginTop","DesktopOnlyModal","center","Mobile","Laptop","Background","WorkflowPageTemplate","children","title","description","history","locale","mobileCheck","path","startsWith","substr","calculatedWorkflowStep","indexOf","mapPathnameToWorkflowStep","Helmet","property","content","data-path","Logo","StyledText","StyledPaper","isActive","WalletText","ConnectingContainer","WalletButton","logoSource","selectedWallet","setSelectedWallet","activate","showSpinner","setShowSpinner","handleClick","MetamaskHardwareButton","ledger","WalletConnectedContainer","WalletButtonContainer","WalletButtonSubContainer","WalletInfoContainer","StatusText","FaucetLink","Network","Balance","MetaMaskError","ConnectWalletPage","dispatchWorkflowUpdate","deactivate","library","balance","setBalance","lowBalance","setLowBalance","setNetwork","setNetworkAllowed","setStatus","isInvalidNetwork","UnsupportedChainIdError","balanceRef","useRef","current","suppress","connectTo","ethereum","connectToMetamask","handleAccountsChanged","useMetamaskListener","isMetamaskConnected","attempted","setAttempted","isAuthorized","catch","attemptConnection","useMetamaskEagerConnect","getBalance","amount","formattedBalance","Number","parseFloat","formatEther","toPrecision","requiredBalance","off","getWalletName","wallet","animationIn","animationOut","isVisible","animateOnMount","animationInDuration","animationOutDuration","numberOfValidators","validator","FAUCET_URL","metamaskLogo","ENABLE_RPC_FEATURES","fortmaticLogo","NoEthereumProviderError","LogoContainerBox","SelectionBox","LogoBackground","fullWidthImg","SelectionText","LanguageTag","ImageSelectionBox","language","OperatingSystemButtons","chosenOs","setChosenOs","LINUX","LinuxLogo","WINDOWS","WindowsLogo","MAC","MacLogo","TextSelectionBox","display","alignItems","minWidth","minHeight","Code","AlertIcon","Pre","pre","GithubScreenshot","githubScreenshot","networkFlag","Option1","validatorCount","os","weight","wordBreak","url","flag","Option2","shouldOpenNewTab","Option3","homebrew","terminalCommand","apt","yum","docs","windowsInstallGuide","chocolatey","gitClone","master","Instructions","chosenTool","setChosenTool","animation","keysTool","GUI","marginRight","CLI","CLISOURCE","StyledButton","ButtonContainer","StyledInput","input","NumberInput","setValue","allowDecimals","onChange","val","target","replace","pattern","borderBottom","FormUp","osMapping","AcknowledgementIdsEnum","Highlight","InstructionImgContainer","GenerateKeysPage","setValidatorCount","mnemonicAcknowledgementChecked","setMnemonicAcknowledgementChecked","defaultKeysTool","times","validatorKeys","instructions1","depositDataJson","instructions2","CheckBox","StyledAlert","AllCaps","TestnetNotification","MainContainer","ResponsiveContainer","ContentContainer","LefContentContainer","InfoContainer","TitleContainer","LogoContainer","LogoText","StyledLeslieImgNode","LeslieImage","animateIn","delay","animateOnce","Hero","isSmallScreen","isMediumScreen","m","enter","appear","numberWithCommas","n","NetworkStatus","setM","resizeListener","addEventListener","removeEventListener","Message","InputWrapper","VerifyDepositsAllowance","address","setAddress","setValidatorKeys","getAllowedDeposits","addressToVerify","allowedDeposits","call","handleInputChange","event","inputAddress","detail","isAddress","document","querySelector","placeholder","is-full-width","custom-class","Success","SubContainer","ImgContainer","EthDiamondPlain","Introduction","EthRound","email","UpgradeCard","subTitle","link","linkUrl","UpgradesContainer","StyledHeading","UpgradeTitle","Upgrades","upgrades","upgrade","ClientId","defaultAcknowledgementState","introSection","terminal","responsibilities","slashing","keyManagement","commitment","earlyAdoptionRisks","checklist","initialState","beaconChainApiStatus","HEALTHY","executionClientIds","GETH","BESU","NLYXERMIND","ERIGON","consensusClientIds","PRYSM","LIGHTHOUSE","NIMBUS","TEKU","executionClient","consensusClient","reducers","combineReducers","acknowledgementState","action","updateAcknowledgementState","acknowledgementId","updateDepositFileName","updateDepositFileKeys","clonedKeys","indexOfFileToUpdate","findIndex","updateDepositStatus","updateBeaconChainAPIStatus","client","updateClient","ethClientType","clientId","BoldCaps","strong","pageContent","DEPOSIT_CONTRACT_LINK","acknowledgementText","onlyWay","cannotTransfer","cannotWithdraw","AnimatedCheck","show","IndexContainer","AcknowledgementProgressStep","acknowledgementsWithCopy","setActiveAcknowledgementId","isComplete","previousAcknowledgementStatuses","_keys","version","xmlns","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeMiterlimit","cx","cy","r","points","AcknowledgementProgressTracker","activeAcknowledgementId","_map","_","AcknowledgementText","AcknowledgementSection","handleContinueClick","handleGoBackClick","handleSubmit","allAgreedTo","isIntroSection","isConfirmationSection","textAlign","AcknowledgementPage","dispatchAcknowledgementStateUpdate","_values","_pickBy","Subtitle","setTimeout","ClientOptionContainer","ClientDescriptionContainer","SelectClientSection","clients","currentClient","setCurrentClient","clientDetails","ethClientStep","paddingBottom","imgUrl","inputId","SelectClientButtons","updateStep","ValidatorClientPageStyles","SectionTitle","StyledImgForHero","imgSrc","PageTemplate","PrysmDetails","shortened","PRYSM_INSTALLATION_URL","CodeSnippet","LighthouseDetails","LIGHTHOUSE_INSTALLATION_URL","GethDetails","ErigonDetails","ethClients","execution","_shuffle","GethCircle","ErigonCircle","consensus","LighthouseCircle","PrysmaticCircle","SelectClientPage","chosenClients","dispatchClientUpdate","setEthClientStep","clientOptions","selectedClient","getElementsByTagName","scrollIntoView","behavior","L","WalletDisconnected","acknowledgementTitle","pageTitle","reconnect","WrongNetwork","InfoBox","PaddedButton","SummaryPage","losePhrase","setLosePhrase","earlyAdopt","setEarlyAdopt","nonReverse","setNonReverse","noPhish","setNoPhish","duplicatesAcknowledged","setDuplicatesAcknowledged","amountValidators","convertedPrice","allChecked","pricePerValidator","contractAddress","phishingPage","DOWN","computeForkDataRoot","currentVersion","genesisValidatorsRoot","forkData","ForkData","hashTreeRoot","verifySignature","depositDatum","pubkeyBuffer","bufferHex","signatureBuffer","signingRoot","sszObjectRoot","domain","signingData","objectRoot","SigningData","computeSigningRoot","deposit_message_root","domainType","forkVersion","GENESIS_FORK_VERSION","EMPTY_ROOT","forkDataRoot","Uint8Array","set","subarray","computeDomain","DOMAIN_DEPOSIT","verify","validateFieldFormatting","fork_version","deposit_cli_version","MIN_DEPOSIT_AMOUNT","LYXER_TO_GWEI","compareVersions","compare","MIN_DEPOSIT_CLI_VERSION","validateDepositKey","files","initBLS","Array","isArray","depositKeysStatuses","verifyDepositRoots","getExistingDepositsForPubkeys","pubkeys","flatMap","x","beaconScanUrl","beaconScanCheck","Svg","Circle","animated","dashed","Check","d","InvalidFileIcon","renderImmediately","attributeType","attributeName","dur","DocumentMissing","y","Plus","Add","FileIcon","DocumentUpload","FileUploadAnimation","isDragAccept","isDragReject","isFileStaged","isDragActive","isFileAccepted","renderIcon","Dropzone","DeleteBtn","_UploadValidatorPage","dispatchDepositFileKeyUpdate","depositFileName","dispatchDepositFileNameUpdate","dispatchDepositStatusUpdate","dispatchBeaconChainAPIStatusUpdate","setIsFileStaged","setIsFileAccepted","fileError","setFileError","useDropzone","accept","acceptedFiles","inputRef","flushDropzoneCache","useCallback","splice","handleFileDelete","preventDefault","noClick","onDrop","jsonFiles","rejectedFiles","reader","FileReader","onload","fileData","JSON","parse","result","VERIFYING","existingDeposits","existingDepositPubkeys","publickey","forEach","READY_FOR_DEPOSIT","readAsText","getRootProps","getInputProps","renderMessage","json","displayName","layerEnum","UploadValidatorPage","fileName","TransactionsPage","oneTxConfirmed","_some","FAQStyles","BlockQuote","HeroImg","ClientCard","linkText","ChecklistPageStyles","ClientContainer","PortTable","table","ClientLayerContainer","section","SectionHeader","RainbowHeader","StyledLink","LangContainer","LangItem","LangTitle","Lang","TermsOfServiceStyles","NakedButton","CloseButton","WalletConnectModal","loading","handleModalClose","targetKey","handler","downHandler","useKeyPress","Layer","closeGlyph","PORTIS_DAPP_ID","portisLogo","FakeLink","ValidatorTable","validators","setSelectedValidator","handleConnect","validatorRows","alreadyToppedUp","effectivebalance","statusIneligible","Fragment","shortenAddress","Refresh","StatusWarning","StatusDisabled","Wifi","validatorStatus","slashed","numeral","format","changeYourWallet","FormPrevious","SubTextContainer","BackText","TopUpPage","setValidators","setLoading","validatorLoadError","setValidatorLoadError","showDepositVerificationWarning","setShowDepositVerificationWarning","fetchValidatorsForUserAddress","fetch","pubKeysCommaDelineated","log","isValidNetwork","selectedValidator","topUpPageContent","Spinner","justifyContent","reloadYourWallet","github","TopupPage","EJECTION_PRICE","prevLocation","scrollTo","TekuDetails","TEKU_INSTALLATION_URL","keyFile","validatorsKeys","directoriesPattern","keyDirectory","passwordDirectory","filesPattern","passwordFile","semicolon","colon","NimbusDetails","NIMBUS_INSTALLATION_URL","BesuDetails","http","NethermindDetails","routes","termsOfServicePage","exact","component","validatorClient","nodeOperator","ethPerValidator","initialAndMaximum","effectiveBalance","executionLayer","consensusLayer","slashings","average","article","impact","expected","strongText","greaterThan50Percent","boldWithdrawalKey","eip2334","luksoAddressWithdraw","boldWarning","discord","reddit","besu","clientName","besuBg","erigonBg","gethBg","lighthouseBg","nethermind","nethermindBg","nimbusBg","prysmBg","objectPosition","tekuBg","lyxAmount","luksonetwork","defaultExecutionPorts","defaultTcp","defaultUdp","clientInfo","ErigonBg","layer","jwtUrl","GethBg","LighthouseBg","feeRecipientUrl","metricsUrl","PrysmaticBg","date","Date","UTC","year","month","day","sort","b","code1","code2","code3","idx","TUTORIAL_URL","networkName","learnMore","latestRelease","engineApi","jwt","_sortBy","boldCaution","prometheus","grafana","beaconchain","langs","lang","supportedLanguages","localeCompare","String","getInTouch","Routes","localizedRoutes","route","languagePath","split","localizeRoutes","ScrollToTop","onUpdate","shorthandSpacing","range","GlobalStyles","createGlobalStyle","LocalizedRouter","match","params","AppLanguage","English","messages","FooterWrapper","FooterUpper","FooterMiddle","MiddleLinks","SocialLinks","FooterBottom","BottomLinks","CustomFooter","LuksoLogo","SocialTwitter","SocialInstagram","SocialLinkedIn","SocialTelegram","SocialDiscord","SocialReddit","SocialMedium","SocialGithub","store","createStore","__REDUX_DEVTOOLS_EXTENSION__","getLibrary","Web3Provider","pollingInterval","createBrowserHistory","App","Grommet","ReactDOM","render","getElementById","GrommetButton","isLedgerTimeoutError","ledgerTxRejected","metamaskTxRejected","fortmaticTxRejected","variantStyles","backgroundColor","borderColor","secondary","info","HighlightStyles","AlertBox","T","num","x1","x2","y1","y2","gradientUnits","stopColor","offset","opacity","repeatCount","background","BoxGroup","PaperGroup","styles","StyledExternalLink","StyledHashLink","RouterLink","HASH_PATTERN","isExternal","isLuksoDotNetwork","test","isHashLink","href","slug","pathSplit","firstPath","langPath","depositDataContainer","ContainerType","fields","ByteVectorType","NumberUintType","byteLength","InputContainer","SubmitButton","TopUpDetailsContainer","maxTopupValue","max","showTxModal","setShowTxModal","setTxHash","balanceAfterTopup","setTransactionStatus","submitTopupTransaction","bnInput","transactionAmount","reconstructedRootAmount","reconstructedKeyFile","Buffer","alloc","byteRoot","reconstructedDepositDataRoot","buf2hex","hash","termA","setTermA","showAlert","alertText","minTopupValue","submitBtnTooltipText","onClose","maxValue","buffer","prototype","TopupInput","CircleDiv","LoadingCircleDiv","CloseIcon","CheckIcon","ProgressCircle","TransactionProgress","signTxStatus","confirmOnChainStatus","TopUpTransactionModal","position","onClickOutside","onEsc","etherscan","as","bottom","process","Boolean","REACT_APP_PORTIS_DAPP_ID","INFURA_PROJECT_ID","REACT_APP_INFURA_PROJECT_ID","REACT_APP_FORTMATIC_KEY","REACT_APP_LIGHTHOUSE_INSTALLATION_URL","REACT_APP_NIMBUS_INSTALLATION_URL","REACT_APP_PRYSM_INSTALLATION_URL","REACT_APP_TEKU_INSTALLATION_URL","REACT_APP_TUTORIAL_URL","isNaN","REACT_APP_PRICE_PER_VALIDATOR","REACT_APP_EJECTION_PRICE","H","ar","bg","cs","de","el","en","es","fr","hu","it","ja","ko","pl","ptbr","ro","ru","sl","tr","zh","DepositMessage","DepositData","depositMessage"],"mappings":"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","file":"static/js/main.77eba24a.chunk.js","sourcesContent":["var map = {\n\t\"./bls.js\": 607,\n\t\"./bls_c.js\": 1291\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 1290;","module.exports = __webpack_public_path__ + \"static/media/eth-diamond-plain.cbd22789.svg\";","import { AbiItem } from 'web3-utils';\n\ntype EFAbi = AbiItem & { gas?: number };\n\nexport const contractAbi: EFAbi[] = [\n {\n inputs: [\n {\n internalType: 'address',\n name: 'owner_',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'bytes',\n name: 'pubkey',\n type: 'bytes',\n },\n {\n indexed: false,\n internalType: 'bytes',\n name: 'withdrawal_credentials',\n type: 'bytes',\n },\n {\n indexed: false,\n internalType: 'bytes',\n name: 'amount',\n type: 'bytes',\n },\n {\n indexed: false,\n internalType: 'bytes',\n name: 'signature',\n type: 'bytes',\n },\n {\n indexed: false,\n internalType: 'bytes',\n name: 'index',\n type: 'bytes',\n },\n ],\n name: 'DepositEvent',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [],\n name: 'OwnershipRenounced',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'previousOwner',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'OwnershipTransferStarted',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'previousOwner',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'OwnershipTransferred',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [],\n name: 'RenounceOwnershipStarted',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'addr',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'allowedDeposits',\n type: 'uint256',\n },\n ],\n name: 'Whitelisted',\n type: 'event',\n },\n {\n inputs: [],\n name: 'RENOUNCE_OWNERSHIP_CONFIRMATION_DELAY',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'RENOUNCE_OWNERSHIP_CONFIRMATION_PERIOD',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'acceptOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n name: 'allowedDeposits',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes',\n name: 'pubkey',\n type: 'bytes',\n },\n {\n internalType: 'bytes',\n name: 'withdrawal_credentials',\n type: 'bytes',\n },\n {\n internalType: 'bytes',\n name: 'signature',\n type: 'bytes',\n },\n {\n internalType: 'bytes32',\n name: 'deposit_data_root',\n type: 'bytes32',\n },\n ],\n name: 'deposit',\n outputs: [],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'get_deposit_count',\n outputs: [\n {\n internalType: 'bytes',\n name: '',\n type: 'bytes',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'get_deposit_root',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'owner',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'pendingOwner',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'renounceOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes4',\n name: 'interfaceId',\n type: 'bytes4',\n },\n ],\n name: 'supportsInterface',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'pure',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'transferOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'addr_',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'allowedDeposits_',\n type: 'uint256',\n },\n ],\n name: 'whitelistAddress',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n];\n","import { useEffect, useState } from 'react';\nimport {\n InjectedConnector,\n InjectedConnector as MetamaskConnector,\n} from '@web3-react/injected-connector';\n// import { PortisConnector } from '@web3-react/portis-connector';\nimport { useWeb3React } from '@web3-react/core';\nimport { FortmaticConnector } from './fortmaticConnector';\nimport { web3ReactInterface } from './index';\nimport {\n FORTMATIC_KEY,\n IS_MAINNET,\n // PORTIS_DAPP_ID,\n CHAINID,\n INFURA_URL,\n} from '../../utils/envVars';\n\nexport enum NetworkChainId {\n 'Mainnet' = 4201, // 42 TODO change later\n 'Testnet' = 4201,\n // 'Testnet3030' = 4201,\n 'Testnet2022' = 2022,\n}\n\n/*\n for UI purposes, all networks are \"supported\", but an error message\n is displayed when the user is not connected to the \"allowed\" network\n */\n\nconst supportedNetworks = [\n NetworkChainId.Mainnet,\n NetworkChainId.Testnet,\n NetworkChainId.Testnet2022,\n];\n\nenum Testnet {\n 'Testnet',\n 'Testnet3030',\n 'Testnet2022',\n}\n\nenum Mainnet {\n 'Mainnet',\n 'Testnet', // TODO remove when mainnet\n}\n\nexport const TARGET_NETWORK_CHAIN_ID = CHAINID;\n\nexport const AllowedNetworks = IS_MAINNET ? Mainnet : Testnet;\n\nexport const metamask: InjectedConnector = new MetamaskConnector({\n supportedChainIds: supportedNetworks,\n});\n\n// TODO reenable?\nexport const portis = null;\n// export const portis: PortisConnector = new PortisConnector({\n// dAppId: PORTIS_DAPP_ID,\n// networks: supportedNetworks,\n// });\n\nexport const fortmatic: FortmaticConnector = new FortmaticConnector({\n apiKey: FORTMATIC_KEY as string,\n chainId: TARGET_NETWORK_CHAIN_ID,\n rpcUrl: INFURA_URL,\n});\n\n// sets up initial call to MM\nexport function useMetamaskEagerConnect(): boolean {\n const {\n activate: connectTo,\n active: isMetamaskConnected,\n }: web3ReactInterface = useWeb3React();\n const [attempted, setAttempted] = useState(false);\n\n useEffect(() => {\n const attemptConnection = async () => {\n const isAuthorized: boolean = await metamask.isAuthorized();\n if (isAuthorized) {\n connectTo(metamask, undefined, true).catch(() => setAttempted(true));\n } else {\n setAttempted(true);\n }\n };\n attemptConnection();\n }, [connectTo]);\n\n useEffect(() => {\n if (!attempted && isMetamaskConnected) setAttempted(true);\n }, [attempted, isMetamaskConnected]);\n\n return attempted;\n}\n\nexport function useMetamaskListener(suppress: boolean = false) {\n const { active, error, activate: connectTo } = useWeb3React();\n\n useEffect(() => {\n const { ethereum } = window as any;\n\n if (ethereum && ethereum.on && !active && !error && !suppress) {\n const connectToMetamask = () => connectTo(metamask);\n\n const handleAccountsChanged = (accounts: string[]) => {\n if (accounts.length > 0) {\n connectToMetamask();\n }\n };\n\n ethereum.on('connect', connectToMetamask);\n ethereum.on('chainChanged', connectToMetamask);\n ethereum.on('accountsChanged', handleAccountsChanged);\n ethereum.on('networkChanged', connectToMetamask);\n\n return () => {\n if (ethereum.removeListener) {\n ethereum.removeListener('connect', connectToMetamask);\n ethereum.removeListener('chainChanged', connectToMetamask);\n ethereum.removeListener('accountsChanged', handleAccountsChanged);\n ethereum.removeListener('networkChanged', connectToMetamask);\n }\n };\n }\n }, [active, error, suppress, connectTo]);\n}\n","export const colors = {\n transparent: 'transparent',\n white: '#ffffff',\n gray: {\n lightest: '#fdfcfe',\n light: '#F0F4F8',\n medium: '#B6B6B6',\n dark: '#4A4A4A',\n },\n black: '#333333',\n blue: {\n lightest: '#D4D7E7',\n light: '#b0e2f5',\n medium: '#007FB0',\n dark: '#0F2A43',\n },\n green: {\n light: '#F8FAF9',\n medium: '#D0E1D5',\n dark: '#26AB83',\n },\n red: {\n lightest: '#fff0f2',\n light: '#FF9B9A',\n medium: '#912d2c',\n },\n orange: '#FFF9F2',\n purple: {\n light: '#F0F2FB',\n medium: '#E3E5F2',\n dark: '#795da3',\n },\n yellow: {\n light: '#fff0a8',\n dark: '#f0ad4d',\n darkest: '#8a6d3b',\n },\n};\n\nexport const details = {\n borderRadius: '3px',\n};\n\nexport const rainbowColors = [\n '#fdccd3', // pink\n '#fca09a', // red\n '#ffcc9e', // yellow\n '#98ddad', // green\n '#81d7ec', // blue\n '#91C1ED', // blurple\n '#a0aaed', // purple\n];\n\nexport const rainbowBGColors = [\n '#fdccd3', // pink\n '#FED4D1', // red\n '#fcead9', // yellow-orange\n '#dcf0df', // green\n '#d3edf6', // blue\n '#baccf2', // blurple\n '#a0aaed', // purple\n];\n\nexport const rainbowLightColors = [\n '#fef2f4', // pink\n '#fdf8f7', // red\n '#FFF2E6', // yellow-orange\n '#e5f6ea', // green\n '#dff5fa', // blue\n '#E3EFFA', // blurple\n '#e7e9fa', // purple\n];\n\nexport const rainbow = rainbowColors.join(', ');\nexport const rainbowLight = rainbowLightColors.join(', ');\n\nexport const screenSizes = {\n smaller: '420px',\n small: '576px',\n medium: '768px',\n large: '992px',\n larger: '1200px',\n largest: '1440px',\n huge: '1820px',\n};\n\nexport const styledComponentsTheme = {\n ...colors,\n screenSizes,\n ...details,\n rainbow,\n rainbowLight,\n rainbowLightColors,\n};\n","import { styledComponentsTheme } from './styledComponentsTheme';\n\nconst { blue, transparent, gray, red, green, yellow } = styledComponentsTheme;\n\nexport const grommetTheme = {\n global: {\n focus: {\n border: {\n color: transparent,\n },\n outline: 'none',\n },\n colors: {\n brand: blue.dark, // needed to override default grommet component styling\n border: gray.light,\n\n blueLight: blue.light,\n blueMedium: blue.medium,\n blueDark: blue.dark,\n\n greenLight: green.light,\n greenMedium: green.medium,\n greenDark: green.dark,\n\n redLightest: red.lightest,\n redLight: red.light,\n redMedium: red.medium,\n\n grayLight: gray.light,\n grayMedium: gray.medium,\n grayDark: gray.dark,\n\n yellowDark: yellow.dark,\n },\n font: {\n family: 'Roboto',\n },\n },\n button: {\n border: {\n radius: '2px',\n color: blue.medium,\n },\n padding: {\n vertical: '12px',\n horizontal: '24px',\n },\n primary: {\n color: blue.medium,\n },\n extend: `\n font-size: 12px;\n font-weight: bold;\n `,\n },\n checkBox: {\n border: {\n color: 'gray',\n radius: '2px',\n },\n check: {\n extend: ({ checked }: { checked: boolean }) =>\n `background-color: white; border: 2px solid ${\n checked ? 'black' : 'gray'\n }`,\n },\n color: {\n light: 'neutral-3',\n dark: 'neutral-3',\n },\n gap: 'xsmall',\n hover: {\n border: {\n color: 'black',\n },\n },\n icon: {\n size: '18px',\n extend: 'stroke: black;',\n },\n size: '18px',\n // label color\n extend: `\n color: #9C9C9C;\n `,\n },\n};\n","/*\n This class is from NoahZinsmeisters web3-react library with edits to allow Testnet testnet\n https://github.com/NoahZinsmeister/web3-react/blob/v6/packages/fortmatic-connector/src/index.ts\n */\n\nimport { ConnectorUpdate } from '@web3-react/types';\nimport { AbstractConnector } from '@web3-react/abstract-connector';\nimport invariant from 'tiny-invariant';\n\nconst chainIdToNetwork: { [network: number]: string } = {\n 4201: 'Mainnet', // 42 TODO change later\n // 4201: 'Testnet3030',\n 2022: 'Testnet2022',\n};\n\ninterface FortmaticConnectorArguments {\n apiKey: string;\n chainId: number;\n rpcUrl: string;\n}\n\nexport class FortmaticConnector extends AbstractConnector {\n private readonly apiKey: string;\n\n private readonly chainId: number;\n\n private readonly rpcUrl: string;\n\n public fortmatic: any;\n\n constructor({ apiKey, chainId, rpcUrl }: FortmaticConnectorArguments) {\n invariant(\n Object.keys(chainIdToNetwork).includes(chainId.toString()),\n `Unsupported chainId ${chainId}`\n );\n super({ supportedChainIds: [chainId] });\n\n this.apiKey = apiKey;\n this.chainId = chainId;\n this.rpcUrl = rpcUrl;\n }\n\n public async activate(): Promise {\n if (!this.fortmatic) {\n // @ts-ignore\n const { default: Fortmatic } = await import('fortmatic');\n this.fortmatic = new Fortmatic(this.apiKey, {\n rpcUrl: this.rpcUrl,\n chainId: this.chainId,\n });\n }\n\n const account = await this.fortmatic\n .getProvider()\n .enable()\n .then((accounts: string[]): string => accounts[0]);\n\n return {\n provider: this.fortmatic.getProvider(),\n chainId: this.chainId,\n account,\n };\n }\n\n public async getProvider(): Promise {\n return this.fortmatic.getProvider();\n }\n\n public async getChainId(): Promise {\n return this.chainId;\n }\n\n public async getAccount(): Promise {\n return this.fortmatic\n .getProvider()\n .send('eth_accounts')\n .then((accounts: string[]): string => accounts[0]);\n }\n\n public deactivate() {\n this.close();\n }\n\n public async close() {\n await this.fortmatic.user.logout();\n this.emitDeactivate();\n }\n}\n","import { UpdateAcknowledgementStateAction } from './acknowledgementActions';\nimport {\n UpdateDepositFileNameAction,\n UpdateDepositFileKeysAction,\n UpdateTransactionStatusAction,\n UpdateDepositStatusAction,\n UpdateBeaconChainAPIStatusAction,\n} from './depositFileActions';\nimport { UpdateWorkflowAction } from './workflowActions';\nimport { UpdateClientAction } from './clientActions';\n\nexport enum ActionTypes {\n updateAcknowledgementState,\n updateDepositFileKeys,\n updateDepositFileName,\n updateTransactionStatus,\n updateDepositStatus,\n updateWorkflow,\n updateClient,\n updateBeaconChainAPIStatus,\n}\n\nexport type Action =\n | UpdateAcknowledgementStateAction\n | UpdateDepositFileKeysAction\n | UpdateTransactionStatusAction\n | UpdateDepositStatusAction\n | UpdateWorkflowAction\n | UpdateDepositFileNameAction\n | UpdateClientAction\n | UpdateBeaconChainAPIStatusAction;\n","/*\n eslint-disable camelcase\n*/\nimport { ActionTypes } from './index';\nimport { DepositKeyInterface } from '../reducers';\n\nexport enum TransactionStatus {\n 'READY',\n 'PENDING',\n 'STARTED',\n 'SUCCEEDED',\n 'FAILED',\n 'REJECTED',\n}\n\nexport enum DepositStatus {\n VERIFYING,\n ALREADY_DEPOSITED,\n READY_FOR_DEPOSIT,\n}\n\nexport enum BeaconChainStatus {\n HEALTHY,\n DOWN,\n}\n\nexport interface UpdateDepositFileNameAction {\n type: ActionTypes.updateDepositFileName;\n payload: string;\n}\nexport interface UpdateDepositFileKeysAction {\n type: ActionTypes.updateDepositFileKeys;\n payload: DepositKeyInterface[];\n}\nexport interface UpdateTransactionStatusAction {\n type: ActionTypes.updateTransactionStatus;\n payload: {\n pubkey: string;\n status: TransactionStatus;\n txHash?: string;\n };\n}\nexport interface UpdateDepositStatusAction {\n type: ActionTypes.updateDepositStatus;\n payload: {\n pubkey: string;\n depositStatus: DepositStatus;\n };\n}\nexport interface UpdateBeaconChainAPIStatusAction {\n type: ActionTypes.updateBeaconChainAPIStatus;\n payload: BeaconChainStatus;\n}\n\nexport type DispatchDepositKeysUpdateType = (\n files: DepositKeyInterface[]\n) => void;\nexport type DispatchDepositFileNameUpdateType = (fileName: string) => void;\n\nexport const updateDepositFileKeys = (\n files: DepositKeyInterface[]\n): UpdateDepositFileKeysAction => {\n return {\n type: ActionTypes.updateDepositFileKeys,\n payload: files,\n };\n};\n\nexport const updateDepositFileName = (\n fileName: string\n): UpdateDepositFileNameAction => {\n return {\n type: ActionTypes.updateDepositFileName,\n payload: fileName,\n };\n};\n\nexport const updateBeaconChainAPIStatus = (\n status: BeaconChainStatus\n): UpdateBeaconChainAPIStatusAction => {\n return {\n type: ActionTypes.updateBeaconChainAPIStatus,\n payload: status,\n };\n};\n\nexport const updateTransactionStatus = (\n pubkey: string,\n status: TransactionStatus,\n txHash?: string\n): UpdateTransactionStatusAction => {\n return {\n type: ActionTypes.updateTransactionStatus,\n payload: {\n pubkey,\n status,\n txHash,\n },\n };\n};\n\nexport type DispatchTransactionStatusUpdateType = (\n pubkey: string,\n status: TransactionStatus,\n txHash?: string\n) => void;\n\nexport type DispatchDepositFileNameUpdate = (name: string) => void;\n\nexport const updateDepositStatus = (\n pubkey: string,\n depositStatus: DepositStatus\n): UpdateDepositStatusAction => {\n return {\n type: ActionTypes.updateDepositStatus,\n payload: {\n pubkey,\n depositStatus,\n },\n };\n};\n\nexport type DispatchDepositStatusUpdateType = (\n pubkey: string,\n depositStatus: DepositStatus\n) => void;\n\nexport type DispatchBeaconChainAPIStatusUpdateType = (\n status: BeaconChainStatus\n) => void;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Checkmark, Close } from 'grommet-icons';\n\ninterface DotProps {\n theme?: any;\n success?: boolean;\n error?: boolean;\n warning?: boolean;\n width?: number;\n height?: number;\n className?: string;\n}\n\nconst StyledDiv = styled.div`\n width: ${(p: DotProps) => p.width || 20}px;\n height: ${(p: DotProps) => p.height || 20}px;\n padding: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: ${(p: DotProps) => {\n if (p.success) return p.theme.green.dark;\n if (p.warning) return p.theme.yellow.dark;\n if (p.error) return p.theme.red.medium;\n return p.theme.gray.light;\n }};\n border-radius: 50%;\n`;\n\nexport const Dot = (props: DotProps) => (\n \n {props.success && }\n {props.warning && }\n {!props.success && !props.warning && }\n \n);\n","export const trimString = (string: string, length: number): string => {\n if (!string || length < 1 || string.length <= length) return string;\n const mid = Math.ceil(string.length / 2);\n const rmCount = string.length - length;\n const lRmIdx = Math.ceil(rmCount / 2);\n const rRmIdx = rmCount - lRmIdx;\n return `${string.substring(0, mid - lRmIdx)}...${string.substring(\n mid + rRmIdx\n )}`;\n};\n","import { useIntl } from 'react-intl';\nimport {\n IS_MAINNET,\n EL_TESTNET_NAME,\n TESTNET_LAUNCHPAD_NAME,\n} from '../utils/envVars';\n\nconst useIntlNetworkName = (): {\n executionLayerName: string;\n consensusLayerName: string;\n} => {\n const { formatMessage } = useIntl();\n const mainnet = formatMessage({ defaultMessage: 'Mainnet' });\n const executionLayerName: string = IS_MAINNET\n ? mainnet\n : formatMessage(\n { defaultMessage: '{EL_TESTNET_NAME} testnet' },\n { EL_TESTNET_NAME }\n );\n const consensusLayerName: string = IS_MAINNET\n ? mainnet\n : formatMessage(\n { defaultMessage: '{TESTNET_LAUNCHPAD_NAME} testnet' },\n { TESTNET_LAUNCHPAD_NAME }\n );\n return { executionLayerName, consensusLayerName };\n};\n\nexport default useIntlNetworkName;\n","import React from 'react';\n\nconst useMobileCheck = (maxWidth: string) => {\n // Stores whether or not the screen is in a mobile state\n const [isMobile, setMobile] = React.useState(false);\n\n // Set up an effect that uses JS media queries to switch between\n // mobile and desktop styles\n React.useEffect(() => {\n if (window.matchMedia) {\n const query = window.matchMedia(`(max-width: ${maxWidth})`);\n const setMobileFromQuery = (q: MediaQueryList) => setMobile(q.matches);\n query.removeListener(setMobileFromQuery as any);\n query.addListener(setMobileFromQuery as any);\n setMobileFromQuery(query);\n return () => query.removeListener(setMobileFromQuery as any);\n }\n return undefined;\n // eslint-disable-next-line\n }, []);\n\n return isMobile;\n};\n\nexport default useMobileCheck;\n","import React from 'react';\nimport { RouteComponentProps, withRouter } from 'react-router-dom';\nimport { FormattedMessage } from 'react-intl';\nimport styled from 'styled-components';\nimport { Box, DropButton } from 'grommet';\nimport { Menu, Language, FormDown } from 'grommet-icons';\nimport { useWeb3React } from '@web3-react/core';\nimport { Web3Provider } from '@ethersproject/providers';\nimport EthDiamond from '../static/eth-diamond-plain.svg';\nimport { web3ReactInterface } from '../pages/ConnectWallet';\nimport {\n AllowedNetworks,\n NetworkChainId,\n} from '../pages/ConnectWallet/web3Utils';\nimport { Dot } from './Dot';\nimport { Link } from './Link';\nimport { Text } from './Text';\nimport { routesEnum } from '../Routes';\nimport { Heading } from './Heading';\nimport {\n IS_MAINNET,\n NETWORK_NAME,\n MAINNET_LAUNCHPAD_URL,\n TESTNET_LAUNCHPAD_NAME,\n TESTNET_LAUNCHPAD_URL,\n} from '../utils/envVars';\nimport { trimString } from '../utils/trimString';\nimport useIntlNetworkName from '../hooks/useIntlNetworkName';\nimport useMobileCheck from '../hooks/useMobileCheck';\n\nconst RainbowBackground = styled(Box)`\n background-image: ${p => `linear-gradient(to right, ${p.theme.rainbow})`};\n`;\n\nconst EthLogo = styled.img`\n height: 40px;\n width: 40px;\n`;\n\nconst NetworkText = styled.div`\n padding: 5px 8px;\n border: 1px solid;\n font-weight: 400;\n font-size: 16px;\n text-align: center;\n display: flex;\n justify-content: center;\n width: 100%;\n border-radius: 4px;\n &:hover {\n border-radius: 4px;\n box-shadow: 0px 8px 17px rgba(0, 0, 0, 0.15);\n background-image: ${p => `linear-gradient(to right, ${p.theme.rainbow})`};\n transition: transform 0.1s;\n transform: scale(1.02);\n }\n`;\n\nconst NavBarLinks = styled.div`\n display: flex;\n @media only screen and (max-width: 1080px) {\n .secondary-link {\n display: none;\n }\n }\n`;\n\nconst ValidatorDropdown = styled(DropButton)`\n padding: 12px 8px;\n font-weight: 300;\n display: flex;\n align-items: center;\n border: none;\n :hover {\n border: none;\n box-shadow: none;\n }\n`;\n\nconst DotDropdown = styled(DropButton)`\n display: flex;\n align-items: center;\n border: none;\n padding: 0;\n margin: 0;\n :hover {\n transition: transform 0.2s;\n transform: scale(1.1);\n }\n`;\n\nconst DropdownLink = styled(Link)`\n :hover {\n text-decoration: underline;\n }\n`;\n\nconst Card = styled.div``;\n\nconst NetworkInfo = styled.div`\n background: ${p => p.theme.gray.light};\n padding: 32px;\n`;\n\nconst NavLinksRight = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst BarLinkText = styled(Heading)`\n :not(.no-padding) {\n padding: 0 12px;\n white-space: nowrap;\n }\n display: flex;\n justify-content: center;\n flex-direction: column;\n font-weight: ${(p: { active?: boolean }) => (p.active ? 'bold' : 300)};\n`;\n\nconst _AppBar = ({ location }: RouteComponentProps) => {\n const {\n active: walletConnected,\n account,\n chainId,\n }: web3ReactInterface = useWeb3React();\n const { executionLayerName, consensusLayerName } = useIntlNetworkName();\n const oppositeNetwork = IS_MAINNET ? (\n \n ) : (\n \n );\n\n let network;\n let networkAllowed = false;\n\n if (chainId) {\n network = NetworkChainId[chainId];\n networkAllowed = Object.values(AllowedNetworks).includes(network);\n }\n\n const pathname: string = React.useMemo(() => location.pathname, [\n location.pathname,\n ]);\n\n const isDropdownPage = React.useMemo(\n () =>\n pathname === routesEnum.lighthouse ||\n pathname === routesEnum.nimbus ||\n pathname === routesEnum.prysm ||\n pathname === routesEnum.teku,\n [pathname]\n );\n\n const mobile = useMobileCheck('1080px');\n const switchLaunchpadUrl = IS_MAINNET\n ? TESTNET_LAUNCHPAD_URL\n : MAINNET_LAUNCHPAD_URL;\n\n return (\n \n \n \n \n {!mobile && (\n
\n \n \n \n \n \n
\n )}\n \n\n \n \n \n \n \n \n \n \n }\n dropAlign={{ top: 'bottom', right: 'right' }}\n dropContent={\n \n \n Execution clients\n \n \n {/* TODO: renable later */}\n {/* Besu */}\n Erigon\n Geth\n {/* Nethermind */}\n \n \n Consensus clients\n \n \n \n Lighthouse\n \n {/* Nimbus */}\n Prysm\n {/* Teku */}\n \n \n }\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n {!mobile && (\n \n \n \n \n \n )}\n {mobile && (\n \n \n \n )}\n {mobile && (\n }\n dropAlign={{ top: 'bottom', right: 'right' }}\n dropContent={\n \n \n {walletConnected && (\n \n \n \n {trimString(account as string, 10)}\n \n \n )}\n \n {' '}\n {consensusLayerName}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {/* TODO: renable later */}\n {/* Besu */}\n Erigon\n Geth\n {/* Nethermind */}\n \n \n \n \n \n \n Lighthouse\n \n {/* Nimbus */}\n Prysm\n {/* Teku */}\n \n \n }\n />\n )}\n {!mobile && (\n \n {NETWORK_NAME}\n \n \n }\n dropAlign={{ top: 'bottom', right: 'right' }}\n dropContent={\n \n \n {!IS_MAINNET && (\n \n \n \n )}\n \n \n \n \n \n }\n />\n )}\n {!mobile && walletConnected && (\n \n {networkAllowed && (\n }\n dropAlign={{ top: 'bottom', right: 'right' }}\n dropContent={\n \n \n \n \n \n }\n />\n )}\n {!networkAllowed && (\n }\n dropAlign={{ top: 'bottom', right: 'right' }}\n dropContent={\n \n \n \n \n \n }\n />\n )}\n \n {trimString(account as string, 10)}\n \n \n )}\n \n \n );\n};\n\nexport const AppBar = withRouter(_AppBar);\n","import { ActionTypes } from './index';\n\nexport enum WorkflowStep {\n 'OVERVIEW',\n 'SELECT_CLIENT',\n 'GENERATE_KEY_PAIRS',\n 'UPLOAD_VALIDATOR_FILE',\n 'CONNECT_WALLET',\n 'SUMMARY',\n 'TRANSACTION_SIGNING',\n 'CONGRATULATIONS',\n}\n\nexport interface UpdateWorkflowAction {\n type: ActionTypes.updateWorkflow;\n payload: WorkflowStep;\n}\nexport const updateWorkflow = (\n workflowStep: WorkflowStep\n): UpdateWorkflowAction => {\n return {\n type: ActionTypes.updateWorkflow,\n payload: workflowStep,\n };\n};\n\nexport type DispatchWorkflowUpdateType = (step: WorkflowStep) => void;\n","import React from 'react';\nimport { Spinning } from 'grommet-controls';\nimport { FormattedMessage } from 'react-intl';\n\nimport { Text } from '../../../components/Text';\nimport { Dot } from '../../../components/Dot';\nimport {\n DepositStatus,\n TransactionStatus,\n} from '../../../store/actions/depositFileActions';\n\ninterface Props {\n transactionStatus: TransactionStatus;\n depositStatus: DepositStatus;\n}\n\nexport const Status = ({ transactionStatus, depositStatus }: Props) => {\n if (depositStatus === DepositStatus.ALREADY_DEPOSITED) {\n return (\n
\n \n \n \n \n
\n );\n }\n if (transactionStatus === TransactionStatus.READY) {\n return (\n
\n \n \n \n \n
\n );\n }\n if (transactionStatus === TransactionStatus.PENDING) {\n return (\n
\n \n \n \n \n
\n );\n }\n if (transactionStatus === TransactionStatus.STARTED) {\n return (\n
\n \n \n \n \n
\n );\n }\n if (transactionStatus === TransactionStatus.SUCCEEDED) {\n return (\n
\n \n \n \n \n
\n );\n }\n if (transactionStatus === TransactionStatus.FAILED) {\n return (\n
\n \n \n \n \n
\n );\n }\n if (transactionStatus === TransactionStatus.REJECTED) {\n return (\n
\n \n \n \n \n
\n );\n }\n\n return (\n \n \n \n );\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport { FormNextLink } from 'grommet-icons';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport ReactTooltip from 'react-tooltip';\n\nimport { Text } from '../../../components/Text';\nimport { Link } from '../../../components/Link';\nimport {\n DepositStatus,\n TransactionStatus,\n} from '../../../store/actions/depositFileActions';\nimport {\n BEACONCHAIN_URL,\n BEACONSCAN_URL,\n LYXERSCAN_URL,\n} from '../../../utils/envVars';\n\nconst Container = styled.div`\n display: flex;\n border: 1px solid ${p => p.theme.gray.medium};\n padding: 4px;\n justify-content: center;\n border-radius: 4px;\n cursor: pointer;\n :hover {\n background: ${p => p.theme.gray.light};\n box-shadow: 0px 8px 17px rgba(0, 0, 0, 0.15);\n transition: transform 0.1s;\n transform: scale(1.02);\n }\n`;\n\nconst ButtonText = styled(Text)`\n line-height: inherit;\n font-size: 16px;\n text-align: center;\n`;\n\nconst ButtonLink = styled(Link)`\n line-height: inherit;\n font-size: 16px;\n text-align: center;\n padding-right: 5px;\n`;\n\ninterface Props {\n transactionStatus: TransactionStatus;\n depositStatus: DepositStatus;\n txHash?: string;\n onClick: (e: any) => void;\n pubkey?: string;\n}\n\nexport const ActionButton = ({\n transactionStatus,\n depositStatus,\n txHash,\n onClick,\n pubkey,\n}: Props) => {\n const { formatMessage } = useIntl();\n\n if (depositStatus === DepositStatus.ALREADY_DEPOSITED) {\n return (\n \n Beaconcha.in\n \n );\n }\n if (transactionStatus === TransactionStatus.READY) {\n return (\n \n \n \n \n \n );\n }\n if (transactionStatus === TransactionStatus.PENDING) {\n return
;\n }\n if (transactionStatus === TransactionStatus.STARTED) {\n return (\n
\n \n Blockexplorer\n \n
\n );\n }\n if (transactionStatus === TransactionStatus.SUCCEEDED) {\n return (\n
\n \n \n Beaconchain\n \n \n \n\n \n Transaction\n \n
\n );\n }\n\n if (transactionStatus === TransactionStatus.REJECTED) {\n return (\n \n \n \n \n \n \n );\n }\n\n return (\n \n \n \n );\n};\n","export const prefix0X = (key: string): string => {\n return `0x${key}`;\n};\n","import { AbstractConnector } from '@web3-react/abstract-connector';\nimport BigNumber from 'bignumber.js';\nimport Web3 from 'web3';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { SendOptions } from 'web3-eth-contract';\nimport { prefix0X } from '../../utils/prefix0x';\nimport { contractAbi } from '../../contractAbi';\nimport { TransactionStatus } from '../../store/actions/depositFileActions';\nimport { CONTRACT_ADDRESS, PRICE_PER_VALIDATOR } from '../../utils/envVars';\nimport { DepositKeyInterface } from '../../store/reducers';\n\nconst pricePerValidator = new BigNumber(PRICE_PER_VALIDATOR);\nconst TX_VALUE = pricePerValidator.multipliedBy(1e18).toNumber();\n\nconst isUserRejectionError = (error: any) => {\n if (error.code === 4001) return true; // Metamask reject\n if (error.code === -32603) {\n // 0. Metamask deny signature\n if (\n error.message.includes(\n 'MetaMask Tx Signature: User denied transaction signature.'\n )\n )\n return true;\n // 1. Ledger time-out or no-connect via Metamask\n if (error.message.includes('​Ledger device: U2F OTHER_ERROR')) return false; // false because the TX can be submitted after the Metamask timeout period\n // 2. Ledger reject via Metamask\n if (\n error.message.includes(\n 'Ledger device: Condition of use not satisfied (denied by the user?)'\n )\n )\n return true;\n // 3. Trezor reject via Metamask\n if (error.message.includes('Action cancelled by user')) return true;\n // 4. Trezor popup closed via Metamask\n if (error.message.includes('Popup closed')) return true;\n // 5. Trezor popup denied via Metamask\n if (error.message.includes('Permissions not granted')) return true;\n // 6. Trezor disconnected via Metamask\n if (error.message.includes('device disconnected during action'))\n return true;\n // 7. Fortmatic reject\n if (error.message.includes('Fortmatic: User denied transaction.'))\n return true;\n // 8. Portis Reject\n if (error.message.includes('User denied transaction signature.'))\n return true;\n }\n return false;\n};\n\n/*\n Recursive func for calling each transaction in succession after\n the previous one has been signed\n*/\n\nexport const handleMultipleTransactions = async (\n depositKeys: DepositKeyInterface[],\n connector: AbstractConnector,\n account: any,\n updateTransactionStatus: (\n pubkey: string,\n status: TransactionStatus,\n txHash?: string\n ) => void\n) => {\n const walletProvider: any = await (connector as AbstractConnector).getProvider();\n const web3: any = new Web3(walletProvider);\n const contract = new web3.eth.Contract(contractAbi, CONTRACT_ADDRESS);\n\n const transactionParameters: SendOptions = {\n // gasLimit: '0x124f8', TODO set gas limit\n gasPrice: web3.utils.toHex(await web3.eth.getGasPrice()),\n from: account as string,\n value: TX_VALUE,\n };\n\n const remainingTxs = depositKeys.filter(\n key =>\n key.transactionStatus === TransactionStatus.READY ||\n key.transactionStatus === TransactionStatus.REJECTED\n );\n\n const nextTransaction = remainingTxs.shift();\n\n if (nextTransaction === undefined) {\n // stop calling yourself\n return;\n }\n\n const {\n pubkey,\n withdrawal_credentials: withdrawalCredentials,\n signature,\n deposit_data_root: depositDataRoot,\n } = nextTransaction;\n updateTransactionStatus(pubkey, TransactionStatus.PENDING);\n\n // TODO add vote to deposit data root\n const depositData = depositDataRoot;\n\n contract.methods\n .deposit(\n prefix0X(pubkey),\n prefix0X(withdrawalCredentials),\n prefix0X(signature),\n prefix0X(depositData)\n )\n .send(transactionParameters)\n .on('transactionHash', (txHash: string): void => {\n updateTransactionStatus(pubkey, TransactionStatus.STARTED, txHash);\n handleMultipleTransactions(\n depositKeys,\n connector,\n account,\n updateTransactionStatus\n );\n })\n .on('receipt', () => {\n // do something?\n })\n .on(\n 'confirmation',\n (confirmation: number, receipt: { status: {} }): any => {\n if (confirmation === 0) {\n if (receipt.status) {\n updateTransactionStatus(pubkey, TransactionStatus.SUCCEEDED);\n } else {\n updateTransactionStatus(pubkey, TransactionStatus.FAILED);\n }\n }\n }\n )\n .on('error', (error: any) => {\n if (isUserRejectionError(error)) {\n updateTransactionStatus(pubkey, TransactionStatus.REJECTED);\n } else {\n updateTransactionStatus(pubkey, TransactionStatus.FAILED);\n }\n });\n};\n","import React from 'react';\nimport ReactTooltip from 'react-tooltip';\nimport { Dispatch } from 'redux';\nimport {\n Box,\n Table,\n TableBody,\n TableCell,\n TableHeader,\n TableRow,\n} from 'grommet';\nimport styled from 'styled-components';\nimport { connect } from 'react-redux';\nimport { AbstractConnector } from '@web3-react/abstract-connector';\nimport { useWeb3React } from '@web3-react/core';\nimport { Web3Provider } from '@ethersproject/providers';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { Paper } from '../../../components/Paper';\nimport { Text } from '../../../components/Text';\nimport { Heading } from '../../../components/Heading';\nimport { Status } from './Status';\nimport { ActionButton } from './ActionButton';\nimport { DepositKeyInterface, StoreState } from '../../../store/reducers';\nimport { handleMultipleTransactions } from '../transactionUtils';\nimport { web3ReactInterface } from '../../ConnectWallet';\nimport {\n DepositStatus,\n DispatchTransactionStatusUpdateType,\n updateTransactionStatus,\n} from '../../../store/actions/depositFileActions';\n\nconst CustomTableRow = styled(p => )`\n background-color: ${(p: any) => {\n if (p.header) return p.theme.purple.light;\n if (p.invalid) return p.theme.red.lightest;\n return undefined;\n }};\n`;\n\nconst CustomPaper = styled(Paper)`\n display: block;\n height: 280px;\n overflow: auto;\n`;\nconst CustomTable = styled(Table)`\n width: 100%;\n @media only screen and (max-width: ${p => p.theme.screenSizes.medium}) {\n td {\n padding: 5px;\n }\n }\n`;\n\n// Prop definitions\ninterface OwnProps {}\ninterface StateProps {\n depositKeys: DepositKeyInterface[];\n}\ninterface DispatchProps {\n dispatchTransactionStatusUpdate: DispatchTransactionStatusUpdateType;\n}\ntype Props = StateProps & DispatchProps & OwnProps;\n\nconst _KeyList = ({ depositKeys, dispatchTransactionStatusUpdate }: Props) => {\n const { account, connector }: web3ReactInterface = useWeb3React<\n Web3Provider\n >();\n\n const handleActionClick = (depositKey: DepositKeyInterface): void => {\n handleMultipleTransactions(\n [depositKey],\n connector as AbstractConnector,\n account,\n dispatchTransactionStatusUpdate\n );\n };\n const { formatMessage } = useIntl();\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {depositKeys.map((depositKey, i) => {\n const {\n pubkey,\n transactionStatus,\n txHash,\n depositStatus,\n } = depositKey;\n return (\n \n \n \n {`${pubkey.slice(0, 10)}...${pubkey.slice(-10)}`}\n \n \n \n {depositStatus === DepositStatus.ALREADY_DEPOSITED && (\n \n )}\n \n \n \n handleActionClick(depositKey)}\n transactionStatus={transactionStatus}\n depositStatus={depositStatus}\n txHash={txHash}\n pubkey={pubkey}\n />\n \n \n );\n })}\n \n \n \n \n );\n};\n\nconst mapStateToProps = ({ depositFile }: StoreState): StateProps => {\n return {\n depositKeys: depositFile.keys,\n };\n};\n\nconst mapDispatchToProps = (dispatch: Dispatch): DispatchProps => ({\n dispatchTransactionStatusUpdate: (pubkey, status, txHash) =>\n dispatch(updateTransactionStatus(pubkey, status, txHash)),\n});\n\nexport const KeyList = connect(\n mapStateToProps,\n mapDispatchToProps\n)(_KeyList);\n","import axios from 'axios';\nimport { BEACONCHAIN_URL, LYX_DEPOSIT_OFFSET } from './envVars';\n\ntype BeaconchainResponse = {\n data: {\n status: string;\n data: {\n validatorscount: number;\n totalvalidatorbalance: number; // gwei\n };\n };\n};\n\nexport const queryBeaconchain = async () => {\n try {\n const response: BeaconchainResponse = await axios.get(\n `${BEACONCHAIN_URL}/api/v1/epoch/latest`\n );\n let ethBalance = response.data.data.totalvalidatorbalance * 1e-9;\n ethBalance = +ethBalance.toFixed(0);\n return {\n statusCode: 200,\n body: {\n totalValidators: response.data.data.validatorscount,\n amountEth: ethBalance + LYX_DEPOSIT_OFFSET,\n },\n };\n } catch (error) {\n console.error(error);\n return {\n statusCode: 500,\n body: {\n totalValidators: 0,\n amountEth: 0,\n msg: error.message,\n },\n };\n }\n};\n","import React, { useState } from 'react';\nimport { Dispatch } from 'redux';\nimport { connect } from 'react-redux';\nimport styled from 'styled-components';\nimport BigNumber from 'bignumber.js';\nimport { CheckBox } from 'grommet';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { WorkflowPageTemplate } from '../../components/WorkflowPage/WorkflowPageTemplate';\nimport { Paper } from '../../components/Paper';\nimport { OperatingSystemButtons } from './OperatingSystemButtons';\nimport { Instructions } from './Instructions';\nimport { routeToCorrectWorkflowStep } from '../../utils/RouteToCorrectWorkflowStep';\nimport { StoreState } from '../../store/reducers';\nimport { Button } from '../../components/Button';\nimport { routesEnum } from '../../Routes';\nimport { Alert } from '../../components/Alert';\nimport { Link } from '../../components/Link';\nimport { Text } from '../../components/Text';\nimport { Heading } from '../../components/Heading';\nimport { NumberInput } from './NumberInput';\nimport {\n DispatchWorkflowUpdateType,\n updateWorkflow,\n WorkflowStep,\n} from '../../store/actions/workflowActions';\nimport { PRICE_PER_VALIDATOR, TICKER_NAME } from '../../utils/envVars';\nimport instructions1 from '../../static/instructions_1.svg';\nimport instructions2 from '../../static/instructions_2.svg';\n\nexport enum operatingSystem {\n 'MAC',\n 'LINUX',\n 'WINDOWS',\n}\n\nconst osMapping: { [os: number]: 'mac' | 'linux' | 'windows' } = {\n [operatingSystem.MAC]: 'mac',\n [operatingSystem.LINUX]: 'linux',\n [operatingSystem.WINDOWS]: 'windows',\n};\n\nexport enum keysTool {\n 'GUI',\n 'CLI',\n 'CLISOURCE',\n}\n\nconst Highlight = styled.span`\n background: ${p => p.theme.green.medium};\n`;\n\nconst InstructionImgContainer = styled.div`\n height: 250px;\n margin: 64px;\n border-radius: 4px;\n display: flex;\n justify-content: center;\n`;\n\n// Prop definitions\ninterface OwnProps {}\ninterface StateProps {\n workflow: WorkflowStep;\n}\ninterface DispatchProps {\n dispatchWorkflowUpdate: DispatchWorkflowUpdateType;\n}\ntype Props = StateProps & DispatchProps & OwnProps;\n\nconst _GenerateKeysPage = ({\n dispatchWorkflowUpdate,\n workflow,\n}: Props): JSX.Element => {\n const { formatMessage } = useIntl();\n const [validatorCount, setValidatorCount] = useState(0);\n\n const [\n mnemonicAcknowledgementChecked,\n setMnemonicAcknowledgementChecked,\n ] = useState(workflow > WorkflowStep.GENERATE_KEY_PAIRS);\n const [chosenOs, setChosenOs] = useState(\n operatingSystem.LINUX\n );\n\n const defaultKeysTool = keysTool.GUI;\n const [chosenTool, setChosenTool] = useState(defaultKeysTool);\n\n const onCheckboxClick = (e: any) => {\n setMnemonicAcknowledgementChecked(e.target.checked);\n };\n\n const handleSubmit = () => {\n if (workflow === WorkflowStep.GENERATE_KEY_PAIRS) {\n dispatchWorkflowUpdate(WorkflowStep.UPLOAD_VALIDATOR_FILE);\n }\n };\n\n if (workflow < WorkflowStep.GENERATE_KEY_PAIRS) {\n return routeToCorrectWorkflowStep(workflow);\n }\n\n return (\n \n \n \n \n \n
\n
\n \n \n \n \n
\n
\n Cost\n \n {validatorCount === ''\n ? validatorCount\n : new BigNumber(validatorCount)\n .times(new BigNumber(PRICE_PER_VALIDATOR))\n .toFixed(1)\n .toString()}{' '}\n {TICKER_NAME}\n \n
\n
\n\n {validatorCount >= 10 ? (\n \n \n \n \n \n \n ) : (\n <>\n )}\n
\n \n \n \n \n \n \n \n \n \n\n \n\n \n \n \n \n \n {chosenTool === keysTool.GUI ? (\n {validatorCount},\n }}\n />\n ) : (\n validator_keys,\n validatorCount: {validatorCount},\n }}\n />\n )}\n \n \n \n \n \n \"\"\n \n \n deposit_data.json,\n }}\n />\n \n \n \"\"\n \n \n \n \n \n \n \n \n \n \n \n \n }\n />\n \n\n
\n \n \n \n \n \n \n
\n \n );\n};\n\nconst mapStateToProps = ({ workflow }: StoreState): StateProps => ({\n workflow,\n});\nconst mapDispatchToProps = (dispatch: Dispatch): DispatchProps => ({\n dispatchWorkflowUpdate: (workflowStep: WorkflowStep) => {\n dispatch(updateWorkflow(workflowStep));\n },\n});\n\nexport const GenerateKeysPage = connect<\n StateProps,\n DispatchProps,\n OwnProps,\n StoreState\n>(\n mapStateToProps,\n mapDispatchToProps\n)(_GenerateKeysPage);\n","export interface CalculateStakingRewardsParams {\n slotTimeInSec?: number;\n slotsInEpoch?: number;\n baseRewardFactor?: number;\n totalAtStake?: number; // LYX\n averageNetworkPctOnline?: number;\n vaildatorUptime?: number;\n validatorDeposit?: number; // LYX\n effectiveBalanceIncrement?: number; // gwei\n weightDenominator?: number;\n proposerWeight?: number;\n}\n\nconst calculateStakingRewards = ({\n slotTimeInSec = 12,\n slotsInEpoch = 32,\n baseRewardFactor = 64,\n totalAtStake = 1_000_000, // LYX\n averageNetworkPctOnline = 0.95,\n vaildatorUptime = 0.99,\n validatorDeposit = 32, // LYX\n effectiveBalanceIncrement = 1_000_000_000, // gwei\n weightDenominator = 64,\n proposerWeight = 8,\n}: CalculateStakingRewardsParams): number => {\n // Calculate number of epochs per year\n const avgSecInYear = 31556908.8; // 60 * 60 * 24 * 365.242\n const epochPerYear = avgSecInYear / (slotTimeInSec * slotsInEpoch);\n const baseRewardPerIncrement =\n (effectiveBalanceIncrement * baseRewardFactor) /\n (totalAtStake * 10e8) ** 0.5;\n\n // Calculate base reward for full validator (in gwei)\n const baseGweiRewardFullValidator =\n ((validatorDeposit * 10e8) / effectiveBalanceIncrement) *\n baseRewardPerIncrement;\n\n // Calculate offline per-validator penalty per epoch (in gwei)\n // Note: Inactivity penalty is not included in this simple calculation\n const offlineEpochGweiPentalty =\n baseGweiRewardFullValidator *\n ((weightDenominator - proposerWeight) / weightDenominator);\n\n // Calculate online per-validator reward per epoch (in gwei)\n const onlineEpochGweiReward =\n baseGweiRewardFullValidator * averageNetworkPctOnline;\n\n // Calculate net yearly staking reward (in gwei)\n const reward = onlineEpochGweiReward * vaildatorUptime;\n const penalty = offlineEpochGweiPentalty * (1 - vaildatorUptime);\n const netRewardPerYear = epochPerYear * (reward - penalty);\n\n // Return net yearly staking reward percentage\n return netRewardPerYear / 10e8 / validatorDeposit;\n};\n\nexport default calculateStakingRewards;\n","import React from 'react';\nimport { Redirect } from 'react-router-dom';\nimport { routesEnum } from '../Routes';\nimport { WorkflowStep } from '../store/actions/workflowActions';\n\nexport const routeToCorrectWorkflowStep = (step: WorkflowStep): JSX.Element => {\n if (step === WorkflowStep.OVERVIEW) {\n return ;\n }\n if (step === WorkflowStep.SELECT_CLIENT) {\n return ;\n }\n if (step === WorkflowStep.GENERATE_KEY_PAIRS) {\n return ;\n }\n if (step === WorkflowStep.UPLOAD_VALIDATOR_FILE) {\n return ;\n }\n if (step === WorkflowStep.CONNECT_WALLET) {\n return ;\n }\n if (step === WorkflowStep.SUMMARY) {\n return ;\n }\n if (step === WorkflowStep.TRANSACTION_SIGNING) {\n return ;\n }\n if (step === WorkflowStep.CONGRATULATIONS) {\n return ;\n }\n return ;\n};\n","import React, { useEffect, useState } from 'react';\nimport { connect } from 'react-redux';\nimport { Dispatch } from 'redux';\nimport { useWeb3React } from '@web3-react/core';\nimport { Web3Provider } from '@ethersproject/providers';\nimport { AbstractConnector } from '@web3-react/abstract-connector';\nimport styled from 'styled-components';\nimport { FormNext, FlagFill } from 'grommet-icons';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport _every from 'lodash/every';\nimport { AppBar } from '../../components/AppBar';\nimport { Heading } from '../../components/Heading';\nimport { Text } from '../../components/Text';\nimport { Alert } from '../../components/Alert';\nimport { Link } from '../../components/Link';\nimport { KeyList } from '../Transactions/Keylist';\nimport { handleMultipleTransactions } from '../Transactions/transactionUtils';\nimport { web3ReactInterface } from '../ConnectWallet';\nimport { queryBeaconchain } from '../../utils/queryBeaconchain';\nimport { DepositKeyInterface, StoreState } from '../../store/reducers';\nimport { WorkflowStep } from '../../store/actions/workflowActions';\nimport calculateStakingRewards from '../../utils/calculateStakingRewards';\nimport {\n PRICE_PER_VALIDATOR,\n TESTNET_LAUNCHPAD_NAME,\n IS_MAINNET,\n MAINNET_LAUNCHPAD_URL,\n TESTNET_LAUNCHPAD_URL,\n TICKER_NAME,\n} from '../../utils/envVars';\nimport { routesEnum } from '../../Routes';\nimport LeslieTheRhinoPNG from '../../static/leslie-rhino.png';\nimport { Button } from '../../components/Button';\nimport { routeToCorrectWorkflowStep } from '../../utils/RouteToCorrectWorkflowStep';\nimport {\n DepositStatus,\n TransactionStatus,\n DispatchTransactionStatusUpdateType,\n updateTransactionStatus,\n} from '../../store/actions/depositFileActions';\n\nconst RainbowBackground = styled.div`\n background-image: ${p =>\n `radial-gradient(circle at 100% -80%, ${p.theme.rainbowLight})`};\n min-height: 100vh;\n`;\n\nconst Gutter = styled.div`\n padding: 0 48px;\n display: flex;\n justify-content: center;\n`;\n\nconst Content = styled.div`\n width: 100%;\n max-width: 1024px;\n margin: 30px 0;\n`;\n\nconst BoldGreen = styled.span`\n color: ${(p: { theme: any; fontSize: number }) => p.theme.green.dark};\n font-size: ${(p: { theme: any; fontSize: number }) => p.fontSize}px;\n font-weight: bold;\n`;\n\nconst Card = styled.div`\n padding: 24px;\n border: 1px solid ${p => p.theme.gray.dark};\n border-radius: 4px;\n width: 496px;\n margin-bottom: 24px;\n @media only screen and (max-width: ${p => p.theme.screenSizes.medium}) {\n margin: 0px;\n margin-top: 16px;\n width: 100%;\n }\n`;\n\nconst CardLink = styled(Link)`\n padding: 24px;\n border: 1px solid ${p => p.theme.gray.dark};\n border-radius: 4px;\n width: 496px;\n margin-bottom: 24px;\n background-image: ${p =>\n `radial-gradient(circle at 100% -80%, ${p.theme.rainbowLight})`};\n @media only screen and (max-width: ${p => p.theme.screenSizes.medium}) {\n margin: 0px;\n margin-top: 16px;\n width: 100%;\n }\n &:hover {\n border-radius: 4px;\n box-shadow: 0px 8px 17px rgba(0, 0, 0, 0.15);\n background-image: ${p => `linear-gradient(to right, ${p.theme.rainbow})`};\n transition: transform 0.1s;\n transform: scale(1.02);\n }\n`;\n\nconst CardButton = styled.div`\n padding: 24px;\n border: 1px solid ${p => p.theme.gray.dark};\n border-radius: 4px;\n width: 496px;\n margin-bottom: 24px;\n background-image: ${p =>\n `radial-gradient(circle at 100% -80%, ${p.theme.rainbowLight})`};\n @media only screen and (max-width: ${p => p.theme.screenSizes.medium}) {\n margin: 0px;\n margin-top: 16px;\n width: 100%;\n }\n &:hover {\n border-radius: 4px;\n box-shadow: 0px 8px 17px rgba(0, 0, 0, 0.15);\n background-image: ${p => `linear-gradient(to right, ${p.theme.rainbow})`};\n transition: transform 0.1s;\n transform: scale(1.02);\n }\n`;\n\nconst Row = styled.div`\n display: flex;\n align-items: center;\n width: 100%;\n justify-content: space-between;\n`;\n\nconst WarningRow = styled.div`\n display: flex;\n align-items: center;\n width: 100%;\n color: ${p => p.theme.red.medium};\n margin-top: 1rem;\n`;\n\nconst ButtonRow = styled.div`\n display: flex;\n align-items: center;\n @media only screen and (max-width: ${p => p.theme.screenSizes.medium}) {\n flex-direction: column;\n align-items: flex-start;\n }\n`;\n\nconst WarningText = styled(Text)`\n color: ${p => p.theme.red.medium};\n`;\n\nconst CardContainer = styled.div`\n display: flex;\n justify-content: space-between;\n margin-top: 32px;\n flex-wrap: wrap;\n @media only screen and (max-width: ${p => p.theme.screenSizes.medium}) {\n flex-direction: column;\n margin-top: 32px;\n margin-bottom: 32px;\n }\n`;\n\nconst ChecklistAlert = styled.div`\n display: flex;\n margin: 3rem 0rem;\n padding: 1rem;\n background: #5da2b2;\n border-radius: 4px;\n > div {\n margin-left: 5rem;\n }\n .flex {\n height: 100%;\n flex-direction: column;\n justify-content: center;\n }\n @media only screen and (max-width: ${p => p.theme.screenSizes.medium}) {\n flex-direction: column;\n > div {\n margin-left: 0rem;\n }\n }\n`;\n\nconst Leslie = styled.img.attrs({ src: LeslieTheRhinoPNG })`\n width: 200px;\n transform: scale(-1.2, 1.2);\n margin: 3rem 0 5rem 4rem;\n`;\n\ninterface OwnProps {}\ninterface StateProps {\n depositKeys: DepositKeyInterface[];\n workflow: WorkflowStep;\n}\ninterface DispatchProps {\n dispatchTransactionStatusUpdate: DispatchTransactionStatusUpdateType;\n}\n\ntype Props = StateProps & DispatchProps & OwnProps;\n\nconst _CongratulationsPage = ({\n depositKeys,\n workflow,\n dispatchTransactionStatusUpdate,\n}: Props): JSX.Element => {\n const [state, setState] = useState({\n amountEth: 0,\n status: 0,\n });\n const { status } = state;\n const { formatMessage } = useIntl();\n const { account, connector }: web3ReactInterface = useWeb3React<\n Web3Provider\n >();\n\n const totalTxCount = depositKeys.filter(\n key => key.depositStatus !== DepositStatus.ALREADY_DEPOSITED\n ).length;\n\n const remainingTxCount = depositKeys.filter(\n file =>\n file.depositStatus !== DepositStatus.ALREADY_DEPOSITED &&\n file.transactionStatus !== TransactionStatus.SUCCEEDED\n ).length;\n\n const allTxConfirmed = _every(\n depositKeys.map(\n file => file.transactionStatus === TransactionStatus.SUCCEEDED\n )\n );\n\n const actualTxConfirmed = totalTxCount - remainingTxCount;\n\n const currentAPR = calculateStakingRewards({ totalAtStake: state.amountEth });\n const formattedAPR = (Math.round(currentAPR * 1000) / 10).toLocaleString();\n\n const handleAllTransactionsClick = () => {\n handleMultipleTransactions(\n depositKeys.filter(\n key => key.depositStatus !== DepositStatus.ALREADY_DEPOSITED\n ),\n connector as AbstractConnector,\n account,\n dispatchTransactionStatusUpdate\n );\n };\n\n useEffect(() => {\n (async () => {\n const response = await queryBeaconchain();\n setState({\n amountEth: response.body.amountEth,\n status: response.statusCode,\n });\n })();\n }, []);\n\n const LoadingHandler: React.FC<{\n value?: string;\n }> = ({ value }): JSX.Element => {\n if (status === 200) {\n return {value};\n }\n if (status === 500) {\n return ;\n }\n return ;\n };\n\n if (workflow < WorkflowStep.CONGRATULATIONS) {\n return routeToCorrectWorkflowStep(workflow);\n }\n\n return (\n \n \n \n \n \n \n \n {' '}\n 🎉\n \n \n \n {IS_MAINNET && (\n <>\n \n \n \n ),\n }}\n />{' '}\n \n \n \n \n )}\n {!IS_MAINNET && (\n \n \n \n ),\n }}\n />\n )}\n \n
\n \n \n \n \n \n \n \n \n \n \n {actualTxConfirmed * +PRICE_PER_VALIDATOR} {TICKER_NAME}\n \n \n \n \n \n \n \n \n \n {actualTxConfirmed},\n }}\n />\n \n \n {!allTxConfirmed && (\n \n \n \n {remainingTxCount === 1 ? (\n \n ) : (\n \n )}\n \n \n )}\n \n \n \n \n \n \n \n \n \n \n \n {!allTxConfirmed ? (\n \n \n
\n \n \n 📋{' '}\n \n \n \n \n {remainingTxCount === 1 ? (\n \n ) : (\n \n )}\n \n {remainingTxCount !== 1 && (\n \n \n \n )}\n
\n \n
\n
\n ) : (\n \n \n
\n \n \n 📋{' '}\n \n \n \n \n \n \n
\n \n
\n
\n )}\n
\n
\n {!allTxConfirmed && (\n
\n \n {remainingTxCount === 1 ? (\n \n ) : (\n \n )}\n {remainingTxCount})\n \n \n {remainingTxCount === 1 ? (\n \n ) : (\n \n )}\n {remainingTxCount})\n \n \n
\n )}\n \n \n
\n
\n \n \n \n \n \n {formatMessage({\n defaultMessage: 'staker checklist',\n })}\n \n ),\n }}\n description=\"{stakerChecklist} = 'Staker Checklist' bolded to draw attention\"\n />\n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n );\n};\n\nconst mapStateToProps = ({\n depositFile,\n workflow,\n}: StoreState): StateProps => ({\n depositKeys: depositFile.keys,\n workflow,\n});\n\nconst mapDispatchToProps = (dispatch: Dispatch): DispatchProps => ({\n dispatchTransactionStatusUpdate: (pubkey, status, txHash) =>\n dispatch(updateTransactionStatus(pubkey, status, txHash)),\n});\n\nexport const CongratulationsPage = connect<\n StateProps,\n DispatchProps,\n OwnProps,\n StoreState\n>(\n mapStateToProps,\n mapDispatchToProps\n)(_CongratulationsPage);\n","import React from 'react';\nimport styled from 'styled-components';\nimport { FormNext } from 'grommet-icons';\nimport { useIntl } from 'react-intl';\nimport { rainbowColors } from '../../styles/styledComponentsTheme';\nimport { WorkflowStep } from '../../store/actions/workflowActions';\n\nconst Container = styled.div`\n background-color: white;\n`;\n\nconst StepContainer = styled.div`\n padding: 20px;\n width: fit-content;\n margin: auto;\n`;\n\nconst Step = styled.div`\n margin: 0 10px;\n text-align: center;\n color: ${(p: {\n disabled: boolean;\n active: boolean;\n index: number;\n theme: any;\n }) => {\n if (p.active) return rainbowColors[p.index];\n return p.theme.gray.medium;\n }};\n font-weight: ${p => (p.active ? 600 : undefined)};\n`;\n\nconst Arrow = styled(FormNext)`\n stroke: ${p => p.color || p.theme.gray.medium};\n`;\n\ninterface Props {\n workflow: WorkflowStep;\n}\n\nexport const WorkflowProgressBar = ({ workflow }: Props): JSX.Element => {\n const { formatMessage } = useIntl();\n interface step {\n step: WorkflowStep;\n text: string;\n }\n\n const steps: step[] = [\n {\n step: WorkflowStep.OVERVIEW,\n text: formatMessage({ defaultMessage: 'Advisories' }),\n },\n {\n step: WorkflowStep.SELECT_CLIENT,\n text: formatMessage({ defaultMessage: 'Choose client' }),\n },\n {\n step: WorkflowStep.GENERATE_KEY_PAIRS,\n text: formatMessage({ defaultMessage: 'Generate keys' }),\n },\n {\n step: WorkflowStep.UPLOAD_VALIDATOR_FILE,\n text: formatMessage({ defaultMessage: 'Upload deposit data' }),\n },\n {\n step: WorkflowStep.CONNECT_WALLET,\n text: formatMessage({ defaultMessage: 'Connect wallet' }),\n },\n {\n step: WorkflowStep.SUMMARY,\n text: formatMessage({ defaultMessage: 'Summary' }),\n },\n {\n step: WorkflowStep.TRANSACTION_SIGNING,\n text: formatMessage({ defaultMessage: 'Transactions' }),\n },\n ];\n\n return (\n \n \n {steps.map(({ step, text }, i) => (\n
\n = step ? 'active' : ''}\n >\n {text}\n \n {i !== steps.length - 1 && (\n // @ts-ignore\n \n )}\n
\n ))}\n
\n
\n );\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Alert, Checkmark } from 'grommet-icons';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { Heading } from './Heading';\nimport { Text } from './Text';\nimport { Button } from './Button';\nimport Mobile from '../static/mobile.svg';\nimport Laptop from '../static/laptop.svg';\nimport { Link } from './Link';\n\nconst RainbowBackground = styled.div`\n background-image: ${p =>\n `radial-gradient(circle at 100% -80%, ${p.theme.rainbowLight}`});\n min-height: 100vh;\n`;\n\nconst Container = styled.div`\n padding: 150px 30px;\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n`;\nconst Image = styled.img`\n width: 70px;\n height: 60px;\n`;\nconst ImageContainer = styled.div`\n display: flex;\n justify-content: space-around;\n background-color: ${p => p.theme.gray.light};\n border: 1px solid ${(p: any) => p.theme.gray.medium};\n padding: 20px;\n border-radius: ${p => p.theme.borderRadius};\n margin: 50px 0;\n`;\nconst ImageBackground = styled.div`\n background-color: ${(p: { mobile?: boolean }) =>\n p.mobile ? (p as any).theme.red.light : (p as any).theme.green.medium};\n padding: 25px;\n border-radius: 50%;\n`;\nconst IconStyles = {\n margin: 'auto',\n marginTop: '10px',\n};\n\nexport const DesktopOnlyModal = (): JSX.Element => {\n const { formatMessage } = useIntl();\n\n return (\n \n \n \n \n \n \n \n \n \n
\n \n \"\"\n \n \n
\n
\n \n \"\"\n \n \n
\n
\n \n \n \n
\n
\n );\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport { RouteComponentProps, withRouter } from 'react-router-dom';\nimport { Heading } from '../Heading';\nimport { WorkflowProgressBar } from './WorkflowProgressBar';\nimport { AppBar } from '../AppBar';\nimport { DesktopOnlyModal } from '../DesktopOnlyModal';\nimport {\n rainbowBGColors,\n rainbowLightColors,\n} from '../../styles/styledComponentsTheme';\nimport { routesEnum } from '../../Routes';\nimport { WorkflowStep } from '../../store/actions/workflowActions';\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\n\nconst Content = styled.div`\n width: 100%;\n max-width: 1024px;\n margin: 30px 0;\n position: relative;\n`;\n\nconst Gutter = styled.div`\n padding: 0 48px 5rem;\n display: flex;\n justify-content: center;\n`;\nconst Background = styled.div`\n background-image: ${(p: { workflowStep: WorkflowStep }) =>\n `linear-gradient(to bottom right, ${rainbowLightColors[p.workflowStep]}, ${\n rainbowBGColors[p.workflowStep]\n });`};\n min-height: 100vh;\n`;\n\nconst mapPathnameToWorkflowStep = (pathname: routesEnum) => {\n const workflowRoutesInOrder = [\n routesEnum.acknowledgementPage,\n routesEnum.selectClient,\n routesEnum.generateKeysPage,\n routesEnum.uploadValidatorPage,\n routesEnum.connectWalletPage,\n routesEnum.summaryPage,\n routesEnum.transactionsPage,\n ];\n return workflowRoutesInOrder.indexOf(pathname);\n};\n\ninterface Props extends RouteComponentProps {\n children?: React.ReactNode;\n title: string;\n description?: string;\n history: any;\n}\n\nconst _WorkflowPageTemplate = ({\n children,\n title,\n description,\n history,\n}: Props): JSX.Element => {\n const { locale } = useIntl();\n if ((window as any).mobileCheck()) {\n return ;\n }\n\n const { pathname } = history.location;\n const path = pathname.startsWith(`/${locale}`)\n ? pathname.substr(`/${locale}`.length)\n : pathname;\n const calculatedWorkflowStep: WorkflowStep = mapPathnameToWorkflowStep(path);\n\n return (\n \n \n {title}\n \n \n \n \n \n \n \n \n \n \n \n {title}\n \n {children}\n \n \n \n );\n};\n\nexport const WorkflowPageTemplate = withRouter(_WorkflowPageTemplate);\n","import React, { useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport { Spinning } from 'grommet-controls';\nimport { useWeb3React } from '@web3-react/core';\nimport { Web3Provider } from '@ethersproject/providers';\nimport { AbstractConnector } from '@web3-react/abstract-connector';\nimport { Paper } from '../../components/Paper';\nimport { Text } from '../../components/Text';\nimport { FormattedMessage } from 'react-intl';\n\nexport const Logo = styled.img`\n height: 50px;\n width: 50px;\n display: block;\n margin: 24px;\n`;\n\nconst StyledText = styled(Text)`\n margin: 10px;\n font-size: ${(p: { invalid?: boolean }) => (p.invalid ? '14px' : '24px')};\n`;\n\nconst StyledPaper = styled(Paper)`\n box-shadow: ${(p: { isActive: boolean }) =>\n p.isActive && `0 0 10px rgba(0, 0, 0, 0.5)`};\n width: 350px;\n margin: 10px;\n align-items: center;\n cursor: ${p => (p.error ? 'not-allowed' : 'pointer')};\n &:hover {\n box-shadow: ${p => (p.error ? 'none' : '0px 8px 17px rgba(0, 0, 0, 0.15)')};\n transition: ${p => (p.error ? 'none' : 'transform 0.1s;')};\n transform: ${p => (p.error ? 'none' : 'scale(1.02)')};\n }\n`;\n\nconst WalletText = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n`;\n\nconst ConnectingContainer = styled.div`\n display: flex;\n justify-content: space-between;\n width: 100%;\n margin: 8px;\n cursor: pointer;\n`;\n\nexport const WalletButton = ({\n title,\n walletProvider,\n error,\n logoSource,\n selectedWallet,\n setSelectedWallet,\n invalid,\n}: {\n title: string;\n walletProvider: any;\n error: Error | undefined;\n logoSource: string;\n selectedWallet: AbstractConnector | undefined | null;\n setSelectedWallet(wallet?: AbstractConnector): void;\n invalid?: boolean;\n}) => {\n const { activate, active } = useWeb3React();\n const [showSpinner, setShowSpinner] = useState(false);\n\n useEffect(() => {\n if (error || active) {\n setShowSpinner(false);\n }\n }, [error, active, setShowSpinner]);\n\n const handleClick = async () => {\n if (!selectedWallet) {\n setShowSpinner(true);\n setSelectedWallet(walletProvider);\n await activate(walletProvider);\n setSelectedWallet(undefined);\n }\n };\n\n return (\n {\n if (!invalid) handleClick();\n }}\n isActive={selectedWallet === walletProvider}\n >\n \n \n \n \n {!invalid && <>{title}}\n {invalid && (\n {title} }}\n />\n )}\n \n {showSpinner && (\n \n \n \n )}\n \n {showSpinner && (\n \n \n \n )}\n \n \n );\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport ledger from '../../static/ledger.png';\nimport { Paper } from '../../components/Paper';\nimport { Text } from '../../components/Text';\nimport { Link } from '../../components/Link';\nimport { FormattedMessage } from 'react-intl';\n\nconst Logo = styled.img`\n height: 50px;\n width: 50px;\n display: block;\n margin: 24px;\n`;\n\nconst StyledText = styled(Text)`\n margin: 10px;\n font-size: 14px;\n`;\nconst StyledPaper = styled(Paper)`\n width: 350px;\n margin: 10px;\n align-items: center;\n &:hover {\n box-shadow: 0px 8px 17px rgba(0, 0, 0, 0.15);\n transition: transform 0.1s;\n transform: scale(1.02);\n }\n`;\n\nexport const MetamaskHardwareButton = () => {\n return (\n \n \n \n \n \n \n \n \n \n );\n};\n","import React, { useEffect, useMemo, useRef, useState } from 'react';\nimport styled from 'styled-components';\nimport { Dispatch } from 'redux';\nimport { Animated } from 'react-animated-css';\nimport { connect } from 'react-redux';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport {\n AbstractConnector,\n AbstractConnector as AbstractConnectorInterface,\n} from '@web3-react/abstract-connector';\nimport { UnsupportedChainIdError, useWeb3React } from '@web3-react/core';\nimport { Web3Provider } from '@ethersproject/providers';\nimport { formatEther } from '@ethersproject/units';\nimport { NoEthereumProviderError } from '@web3-react/injected-connector';\nimport {\n AllowedNetworks,\n fortmatic,\n metamask,\n NetworkChainId,\n portis,\n useMetamaskEagerConnect,\n useMetamaskListener,\n} from './web3Utils';\nimport { Button } from '../../components/Button';\nimport { WorkflowPageTemplate } from '../../components/WorkflowPage/WorkflowPageTemplate';\nimport { DepositKeyInterface, StoreState } from '../../store/reducers';\nimport { routesEnum } from '../../Routes';\nimport { Link } from '../../components/Link';\nimport { Text } from '../../components/Text';\nimport { WalletButton } from './WalletButton';\nimport metamaskLogo from '../../static/metamask.svg';\n// import portisLogo from '../../static/portis.svg';\nimport fortmaticLogo from '../../static/fortmatic.svg';\nimport { Paper } from '../../components/Paper';\nimport { Heading } from '../../components/Heading';\nimport { Dot } from '../../components/Dot';\nimport {\n DispatchWorkflowUpdateType,\n updateWorkflow,\n WorkflowStep,\n} from '../../store/actions/workflowActions';\nimport {\n // PORTIS_DAPP_ID,\n ENABLE_RPC_FEATURES,\n IS_MAINNET,\n PRICE_PER_VALIDATOR,\n TICKER_NAME,\n FAUCET_URL,\n} from '../../utils/envVars';\nimport { routeToCorrectWorkflowStep } from '../../utils/RouteToCorrectWorkflowStep';\nimport { MetamaskHardwareButton } from './MetamaskHardwareButton';\nimport useIntlNetworkName from '../../hooks/useIntlNetworkName';\n\n// styled components\nconst Container = styled.div`\n margin: auto;\n position: relative;\n margin-bottom: 40px;\n margin-top: 40px;\n @media only screen and (max-width: ${p => p.theme.screenSizes.large}) {\n margin-bottom: 0;\n }\n`;\nconst WalletConnectedContainer = styled.div`\n pointer-events: none;\n width: 800px;\n margin: auto;\n position: absolute;\n left: calc(50% - 400px); // center - half width\n @media only screen and (max-width: ${p => p.theme.screenSizes.large}) {\n width: 100%;\n left: 0;\n height: 100%;\n }\n`;\n\nconst WalletButtonContainer = styled.div`\n margin: auto;\n`;\nconst WalletButtonSubContainer = styled.div`\n display: flex;\n flex-wrap: wrap;\n width: 750px;\n margin: auto;\n @media only screen and (max-width: ${p => p.theme.screenSizes.large}) {\n width: 400px;\n }\n`;\nconst WalletInfoContainer = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-bottom: 1px solid ${(p: { theme: any }) => p.theme.gray.medium};\n padding-bottom: 20px;\n`;\nconst StatusText = styled(Text)`\n font-size: 18px;\n`;\nconst FaucetLink = styled(Link)`\n margin: auto;\n margin-top: 10px;\n`;\n\nconst Row = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst Network = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: 24px;\n`;\n\nconst Balance = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: flex-end;\n margin-bottom: 16px;\n margin-top: 24px;\n`;\n\nconst ButtonRow = styled.div`\n display: flex;\n width: 100%;\n justify-content: center;\n margin-top: 128px;\n @media only screen and (max-width: ${p => p.theme.screenSizes.large}) {\n flex-direction: column;\n align-items: center;\n }\n`;\n\nconst MetaMaskError = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n margin-top: 0px;\n`;\n\nexport interface web3ReactInterface {\n activate: (\n connector: AbstractConnectorInterface,\n onError?: (error: Error) => void,\n throwErrors?: boolean\n ) => Promise;\n setError: (error: Error) => void;\n deactivate: () => void;\n connector?: AbstractConnectorInterface;\n library?: any;\n chainId?: number;\n account?: null | string;\n active: boolean;\n error?: Error;\n}\n\n// Prop definitions\ninterface OwnProps {}\ninterface StateProps {\n workflow: WorkflowStep;\n depositKeys: DepositKeyInterface[];\n}\ninterface DispatchProps {\n dispatchWorkflowUpdate: DispatchWorkflowUpdateType;\n}\ntype Props = StateProps & DispatchProps & OwnProps;\n\nconst _ConnectWalletPage = ({\n workflow,\n dispatchWorkflowUpdate,\n depositKeys,\n}: Props): JSX.Element => {\n // get wallet info from Web3React\n const {\n active: walletConnected,\n deactivate,\n chainId,\n connector: walletProvider,\n error,\n account,\n library,\n }: web3ReactInterface = useWeb3React();\n const { executionLayerName } = useIntlNetworkName();\n\n // initialize state\n const [balance, setBalance] = useState(null);\n const [lowBalance, setLowBalance] = useState(false);\n const [selectedWallet, setSelectedWallet] = useState<\n AbstractConnector | null | undefined\n >(null);\n const [network, setNetwork] = useState('');\n const [networkAllowed, setNetworkAllowed] = useState(false);\n const [status, setStatus] = useState('');\n const isInvalidNetwork = useMemo(() => {\n return (\n error &&\n (error instanceof UnsupportedChainIdError ||\n error.message === 'Invariant failed: chainId 0xNaN is not an integer')\n );\n }, [error]);\n const balanceRef = useRef(null);\n const { formatMessage } = useIntl();\n\n // sets balanceRef to always have current balance (to refer to in callbacks)\n balanceRef.current = balance;\n\n // setup RPC event listener\n const attemptedMMConnection: boolean = useMetamaskEagerConnect();\n useMetamaskListener(!attemptedMMConnection);\n\n // sets the balance to the current wallet on provider or network change\n useEffect((): any => {\n if (!!account && !!library) {\n library\n .getBalance(account)\n .then((amount: any) => {\n const formattedBalance = Number(\n parseFloat(formatEther(amount)).toPrecision(5)\n );\n // @ts-ignore (type check performed in envVars.ts)\n const requiredBalance = depositKeys.length * PRICE_PER_VALIDATOR;\n\n setBalance(formattedBalance);\n if (formattedBalance < requiredBalance || formattedBalance === 0) {\n setLowBalance(true);\n } else {\n setLowBalance(false);\n }\n })\n .catch(() => setBalance(null));\n return () => setBalance(null);\n }\n }, [selectedWallet, walletProvider, library, chainId, depositKeys, account]);\n\n // adds event emitter to listen to new blocks & update balance if it changed\n useEffect((): any => {\n if (!!account && !!library) {\n library.on('block', () => {\n library\n .getBalance(account)\n .then((amount: any) => {\n const formattedBalance = Number(\n parseFloat(formatEther(amount)).toPrecision(5)\n );\n if (formattedBalance !== balanceRef.current) {\n setBalance(formattedBalance);\n // @ts-ignore (type check performed in envVars.ts)\n const requiredBalance = depositKeys.length * PRICE_PER_VALIDATOR;\n if (\n formattedBalance < requiredBalance ||\n formattedBalance === 0\n ) {\n setLowBalance(true);\n } else {\n setLowBalance(false);\n }\n }\n })\n .catch(() => setBalance(null));\n });\n\n return () => library.off('block');\n }\n }, [library, account, depositKeys]);\n\n const getWalletName = (provider?: AbstractConnector) => {\n if (!provider) return '';\n if (provider === metamask) return 'Metamask';\n if (provider === portis) return 'Portis';\n if (provider === fortmatic) return 'Fortmatic';\n return '';\n };\n\n // sets the status copy on provider or network change\n useEffect(() => {\n if (chainId) {\n setNetwork(NetworkChainId[chainId]);\n setNetworkAllowed(Object.values(AllowedNetworks).includes(network));\n }\n\n if (\n walletConnected &&\n networkAllowed &&\n !error &&\n (balance || balance === 0)\n ) {\n setStatus(`${balance} ${TICKER_NAME}`);\n } else if (walletConnected && error) {\n setStatus(formatMessage({ defaultMessage: 'Error' }));\n } else if (!networkAllowed) {\n setStatus(\n formatMessage(\n { defaultMessage: 'Connect {wallet} to {executionLayerName}' },\n {\n wallet: getWalletName(walletProvider),\n executionLayerName,\n }\n )\n );\n }\n }, [\n chainId,\n walletConnected,\n networkAllowed,\n error,\n balance,\n network,\n formatMessage,\n walletProvider,\n executionLayerName,\n ]);\n\n const handleSubmit = () => {\n if (workflow === WorkflowStep.CONNECT_WALLET) {\n dispatchWorkflowUpdate(WorkflowStep.SUMMARY);\n }\n };\n\n if (workflow < WorkflowStep.CONNECT_WALLET) {\n return routeToCorrectWorkflowStep(workflow);\n }\n\n return (\n \n \n \n \n \n \n \n {getWalletName(walletProvider)}\n \n {account && (\n \n {`${account.slice(0, 6)}...${account.slice(-6)}`}\n \n )}\n \n \n \n \n \n \n \n \n \n {executionLayerName}\n \n \n
\n {!networkAllowed && (\n <>\n {status}\n \n )}\n
\n {networkAllowed && (\n <>\n \n \n \n \n \n \n \n {status}\n \n
\n {networkAllowed && lowBalance && (\n <>\n 1\n ? formatMessage({\n defaultMessage: 'validators',\n })\n : formatMessage({\n defaultMessage: 'validator',\n }),\n }}\n />\n \n )}\n {!IS_MAINNET && lowBalance && (\n \n \n \n )}\n
\n \n )}\n
\n \n
\n \n \n \n \n\n {/* \n TODO reenable?\n */}\n\n \n \n \n \n \n
\n\n {error && error instanceof NoEthereumProviderError && (\n \n \n \n \n \n \n \n \n )}\n\n {isInvalidNetwork && (\n
\n \n
\n )}\n\n \n {!walletConnected && (\n \n \n \n )}\n {walletConnected && (\n \n )}\n \n \n \n \n \n );\n};\n\nconst mapDispatchToProps = (dispatch: Dispatch): DispatchProps => ({\n dispatchWorkflowUpdate: step => dispatch(updateWorkflow(step)),\n});\n\nconst mapStateToProps = ({\n workflow,\n depositFile,\n}: StoreState): StateProps => ({\n workflow,\n depositKeys: depositFile.keys,\n});\n\nexport const ConnectWalletPage = connect<\n StateProps,\n DispatchProps,\n OwnProps,\n StoreState\n>(\n mapStateToProps,\n mapDispatchToProps\n)(_ConnectWalletPage);\n","import React from 'react';\nimport styled from 'styled-components';\n\nconst LogoContainerBox = styled.div`\n width: 196px;\n height: 100%;\n border: ${(p: { theme: any; isActive: boolean }) =>\n `2px solid ${p.isActive ? p.theme.gray.dark : p.theme.gray.medium}`};\n box-shadow: ${(p: { theme: any; isActive: boolean }) =>\n p.isActive && `0 0 10px rgba(0, 0, 0, 0.5)`};\n border-radius: ${p => p.theme.borderRadius};\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n margin: 1rem;\n cursor: pointer;\n -webkit-transition: border 500ms ease-out, box-shadow 500ms ease-out;\n -moz-transition: border 500ms ease-out, box-shadow 500ms ease-out;\n -o-transition: border 500ms ease-out, box-shadow 500ms ease-out;\n transition: border 500ms ease-out, box-shadow 500ms ease-out;\n @media only screen and (max-width: 770px) {\n width: 100%;\n }\n`;\n\ninterface SelectionBoxProps {\n isActive: boolean;\n onClick: any;\n children?: React.ReactElement | React.ReactElement[];\n fullWidth?: boolean;\n style?: any;\n}\n\nexport const SelectionBox = ({\n isActive,\n onClick,\n style,\n children,\n}: SelectionBoxProps) => {\n return (\n \n {children}\n \n );\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport { SelectionBox } from './SelectionBox';\nimport { Heading } from './Heading';\n\ntype LogoBackgroundProps = {\n isActive?: boolean;\n fullWidthImg?: boolean;\n};\n\nconst LogoBackground = styled.div`\n width: 85px;\n height: 85px;\n margin: 20px auto auto;\n border-radius: 50%;\n background-color: ${p =>\n p.isActive ? p.theme.blue.light : p.theme.gray.light};\n -webkit-transition: background-color 500ms ease-out;\n -moz-transition: background-color 500ms ease-out;\n -o-transition: background-color 500ms ease-out;\n transition: background-color 500ms ease-out;\n img {\n width: ${p => (p.fullWidthImg ? '100%' : '50px')};\n height: ${p => (p.fullWidthImg ? '100%' : '50px')};\n margin: ${p => (p.fullWidthImg ? 0 : '17px')};\n }\n`;\n\nconst SelectionText = styled(Heading)`\n text-align: center;\n margin-top: 24px;\n margin-bottom: 24px;\n`;\n\nconst LanguageTag = styled.div`\n background: ${p => p.theme.blue.light};\n padding: 8px;\n font-size: 14px;\n text-align: center;\n`;\n\ninterface ImgSelectionBoxProps {\n src: any;\n isActive: boolean;\n onClick: any;\n text: string;\n fullWidthImg?: boolean;\n style?: any;\n language?: any;\n}\n\nexport const ImageSelectionBox = ({\n src,\n isActive,\n onClick,\n text,\n fullWidthImg,\n style,\n language,\n}: ImgSelectionBoxProps) => {\n return (\n \n \n {text}\n \n \n {text}\n \n {language && {language}}\n \n );\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport { operatingSystem } from './index';\nimport MacLogo from '../../static/apple.svg';\nimport LinuxLogo from '../../static/linux.svg';\nimport WindowsLogo from '../../static/windows.svg';\nimport { ImageSelectionBox } from '../../components/ImageSelectionBox';\n\nconst Container = styled.div`\n display: flex;\n justify-content: space-between;\n margin: 20px 0;\n\n @media only screen and (min-width: 980px) {\n padding: 0 80px;\n }\n\n @media only screen and (min-width: 1200px) {\n padding: 0 115px;\n }\n`;\n\ninterface OSButtonProps {\n chosenOs: operatingSystem;\n setChosenOs: (os: operatingSystem) => void;\n}\n\nexport const OperatingSystemButtons = ({\n chosenOs,\n setChosenOs,\n}: OSButtonProps) => {\n return (\n \n setChosenOs(operatingSystem.LINUX)}\n isActive={chosenOs === operatingSystem.LINUX}\n src={LinuxLogo}\n />\n setChosenOs(operatingSystem.WINDOWS)}\n isActive={chosenOs === operatingSystem.WINDOWS}\n src={WindowsLogo}\n />\n setChosenOs(operatingSystem.MAC)}\n isActive={chosenOs === operatingSystem.MAC}\n src={MacLogo}\n />\n \n );\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport { SelectionBox } from './SelectionBox';\nimport { Heading } from './Heading';\n\nconst SelectionText = styled(Heading)`\n margin: 20px 0;\n text-align: center;\n`;\n\ninterface TextSelectionBoxProps {\n isActive: boolean;\n onClick: any;\n children: string;\n style?: any;\n}\n\nexport const TextSelectionBox = ({\n isActive,\n onClick,\n style,\n children,\n}: TextSelectionBoxProps) => {\n return (\n \n \n {children}\n \n \n );\n};\n","import styled from 'styled-components';\nimport { Text } from './Text';\n\nexport const Code = styled(Text)`\n border: 1px solid #dc8180;\n background-color: ${(p: any) => p.theme.red.lightest};\n display: inline-block;\n border-radius: 4px;\n padding: 0 4px;\n color: #ad2b2a;\n font-size: 14px;\n line-height: 16px;\n`;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Alert as GrommetAlert } from 'grommet-icons';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { Heading } from '../../components/Heading';\nimport { Text } from '../../components/Text';\nimport { Link } from '../../components/Link';\nimport { Alert } from '../../components/Alert';\nimport { Code } from '../../components/Code';\nimport { IS_MAINNET } from '../../utils/envVars';\nimport { Button } from '../../components/Button';\nimport githubScreenshot from '../../static/github-cli-screenshot.png';\nimport { colors } from '../../styles/styledComponentsTheme';\nimport useIntlNetworkName from '../../hooks/useIntlNetworkName';\n\nconst AlertIcon = styled(p => )`\n display: block;\n margin: 1.3rem;\n`;\n\nconst Pre = styled.pre`\n white-space: normal;\n`;\n\nconst GithubScreenshot = styled.img.attrs({ src: githubScreenshot })`\n max-width: 925px;\n width: 100%;\n`;\n\nconst networkFlag = IS_MAINNET ? 'lukso' : 'lukso-testnet';\n\nexport const Option1 = ({\n validatorCount,\n os,\n}: {\n validatorCount: number | string;\n os: string;\n}) => {\n const { formatMessage } = useIntl();\n const { consensusLayerName } = useIntlNetworkName();\n\n return (\n
\n \n \n \n \n \n \n \n \n \n\n \n
\n \n \n \n https://github.com/lukso-network/tools-key-gen-cli\n \n ),\n }}\n description=\"{url} is link to GitHub CLI release, made bold for emphasis\"\n />\n \n
\n
\n\n \n\n \n \n \n \n \n \n
    \n
  • \n \n
  • \n
  • \n \n \n \n ),\n }}\n description=\"{deposit} = 'deposit' styled as code\"\n />\n
  • \n
  • \n \n
  • \n \n
    \n            {(os === 'linux' || os === 'mac') && (\n              ./lukso-key-gen \n            )}\n            {os === 'windows' && (\n              <>\n                \n                  .\\lukso-key-gen\n                \n                .exe \n              \n            )}\n            new-mnemonic\n            \n              {validatorCount > 0\n                ? ` --${formatMessage({\n                    defaultMessage: 'num_validators',\n                    description:\n                      'this is used as a command line flag, short for \"number of validators\"',\n                  })} ${validatorCount}`\n                : ''}{' '}\n            \n            \n              {`--${formatMessage({\n                defaultMessage: 'chain',\n                description: 'this is used as a command line flag',\n              })} ${networkFlag}`}\n            \n          
    \n
    \n \n \n \n {`--${formatMessage({\n defaultMessage: 'chain',\n description: 'this is used as a command line flag',\n })} ${networkFlag}`}\n \n ),\n consensusLayerName,\n }}\n description=\"{flag} is a terminal command styled as code.\"\n />\n \n \n
  • \n \n
  • \n
\n
\n );\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Alert as GrommetAlert } from 'grommet-icons';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { Heading } from '../../components/Heading';\nimport { Text } from '../../components/Text';\nimport { Link } from '../../components/Link';\nimport { Alert } from '../../components/Alert';\nimport { NETWORK_NAME } from '../../utils/envVars';\nimport { Button } from '../../components/Button';\nimport githubScreenshot from '../../static/github-wagyu-key-gen-screenshot.png';\n\nconst AlertIcon = styled(p => )`\n display: block;\n margin: 1.3rem;\n`;\n\nconst GithubScreenshot = styled.img.attrs({ src: githubScreenshot })`\n max-width: 925px;\n width: 100%;\n`;\n\nexport const Option2 = ({ os }: { os: string }) => {\n const { formatMessage } = useIntl();\n\n return (\n
\n \n \n \n \n \n \n \n \n \n\n \n \n \n\n \n
\n \n \n \n https://github.com/lukso-network/tools-wagyu-key-gen\n \n ),\n }}\n description=\"{url} is link to GitHub CLI release, made bold for emphasis\"\n />\n \n
\n
\n\n \n\n \n \n \n \n \n \n\n
    \n {os === 'windows' && (\n
  • \n \n
  • \n )}\n {os === 'linux' && (\n <>\n
  • \n \n
  • \n
  • \n \n
  • \n \n )}\n {os === 'mac' && (\n <>\n
  • \n \n
  • \n
  • \n \n
  • \n \n )}\n \n \n \n \n \n
  • \n \n
  • \n
\n
\n );\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { Heading } from '../../components/Heading';\nimport { Text } from '../../components/Text';\nimport { Link } from '../../components/Link';\nimport { Button } from '../../components/Button';\nimport { Alert } from '../../components/Alert';\nimport { Code } from '../../components/Code';\nimport { IS_MAINNET } from '../../utils/envVars';\nimport { colors } from '../../styles/styledComponentsTheme';\nimport useIntlNetworkName from '../../hooks/useIntlNetworkName';\n\nconst Pre = styled.pre`\n white-space: normal;\n`;\n\nconst networkFlag = IS_MAINNET ? 'lukso' : 'lukso-testnet';\n\nexport const Option3 = ({\n validatorCount,\n os,\n}: {\n validatorCount: number | string;\n os: string;\n}) => {\n const { formatMessage } = useIntl();\n const { consensusLayerName } = useIntlNetworkName();\n const renderPythonInstructions = () => {\n if (os === 'linux')\n return (\n \n );\n if (os === 'mac')\n return (\n \n Homebrew\n \n ),\n }}\n description=\"{homebrew} = 'homebrew' and links to the homebrew package manager website documentation\"\n />\n );\n\n if (os === 'windows')\n return (\n <>\n \n
    \n
  • \n \n python.org\n \n
  • \n
  • \n \n Chocolatey\n \n
  • \n
\n \n );\n };\n\n const renderPipInstructions = () => {\n if (os === 'linux') {\n return (\n \n apt,\n yum: yum,\n }}\n description=\"{apt} and {yum} are both package manager names styled as code\"\n />\n \n \n \n \n );\n }\n\n if (os === 'mac') {\n return (\n \n \n homebrew\n \n ),\n docs: (\n \n {formatMessage({ defaultMessage: 'pip documentation' })}\n \n ),\n }}\n />\n \n );\n }\n\n if (os === 'windows') {\n return (\n \n \n pip{' '}\n \n ),\n chocolatey: (\n \n Chocolatey\n \n ),\n }}\n />\n \n );\n }\n };\n\n const renderDepositKeyCommand = () => {\n const translateFlags = false;\n\n if (os === 'mac' || os === 'linux') {\n return (\n
\n          python3 ./staking_deposit/deposit.py new-mnemonic{' '}\n          {Number(validatorCount) > 0\n            ? `--${formatMessage({\n                defaultMessage: 'num_validators',\n                description:\n                  'this is used as a command line flag, short for \"number of validators\"',\n              })} ${validatorCount}`\n            : ''}{' '}\n          {`--${\n            translateFlags\n              ? formatMessage({\n                  defaultMessage: 'chain',\n                  description: 'this is used as a command line flag',\n                })\n              : `chain`\n          } ${networkFlag}`}\n        
\n );\n }\n\n if (os === 'windows') {\n return (\n
\n          .\\staking_deposit\\deposit.py new-mnemonic{' '}\n          {Number(validatorCount) > 0\n            ? `--${formatMessage({\n                defaultMessage: 'num_validators',\n                description:\n                  'this is used as a command line flag, short for \"number of validators\"',\n              })} ${validatorCount}`\n            : ''}{' '}\n          {`--${\n            translateFlags\n              ? formatMessage({\n                  defaultMessage: 'chain',\n                  description: 'this is used as a command line flag',\n                })\n              : `chain`\n          } ${networkFlag}`}\n        
\n );\n }\n };\n\n return (\n
\n \n \n \n \n \n \n {renderPythonInstructions()}\n \n \n \n \n \n \n \n \n \n {(os === 'linux' || os === 'mac') && python3 -V}\n {os === 'windows' && python -V}\n \n ),\n }}\n />\n \n \n\n \n \n \n {renderPipInstructions()}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n git clone -b master --single-branch\n https://github.com/lukso-network/tools-key-gen-cli.git\n \n ),\n master: master,\n }}\n />\n \n \n \n \n \n \n
\n          virtualenv venv\n        
\n {(os === 'linux' || os === 'mac') && (\n
source venv/bin/activate
\n )}\n {os === 'windows' &&
.\\venv\\Scripts\\activate
}\n
\n \n \n \n \n
\n          {(os === 'linux' || os === 'mac') && (\n            python3 setup\n          )}\n          {os === 'windows' && (\n            python setup\n          )}\n          .py{' '}\n          install\n        
\n
\n          \n            pip3 install -r requirements\n          \n          .txt\n        
\n
\n \n \n \n \n \n \n \n \n \n \n {renderDepositKeyCommand()}\n \n \n \n \n {`--${formatMessage({\n defaultMessage: 'chain',\n description: 'this is used as a command line flag',\n })} ${networkFlag}`}\n \n ),\n consensusLayerName,\n }}\n description=\"{flag} is a terminal command styled as code.\"\n />\n \n \n \n \n \n \n \n https://github.com/lukso-network/tools-key-gen-cli\n \n \n
\n );\n};\n","import React from 'react';\nimport { keysTool } from './index';\nimport { Paper } from '../../components/Paper';\nimport { TextSelectionBox } from '../../components/TextSelectionBox';\nimport { Option1 } from './Option1';\nimport { Option2 } from './Option2';\nimport { Option3 } from './Option3';\nimport { Heading } from '../../components/Heading';\nimport { FormattedMessage, useIntl } from 'react-intl';\n\ninterface Props {\n validatorCount: number | string;\n os: 'mac' | 'linux' | 'windows';\n chosenTool: keysTool;\n setChosenTool: (tool: keysTool) => void;\n}\n\nexport const Instructions = ({\n validatorCount,\n os,\n chosenTool,\n setChosenTool,\n}: Props) => {\n const { formatMessage } = useIntl();\n return (\n \n \n \n \n
\n setChosenTool(keysTool.GUI)}\n style={{ marginRight: '20px' }}\n >\n {formatMessage({ defaultMessage: 'Download Key Gen GUI app' })}\n \n setChosenTool(keysTool.CLI)}\n style={{ marginRight: '20px' }}\n >\n {formatMessage({ defaultMessage: 'Download Key Gen CLI' })}\n \n setChosenTool(keysTool.CLISOURCE)}\n >\n {formatMessage({ defaultMessage: 'Build from source' })}\n \n
\n
\n {chosenTool === keysTool.CLI && }\n {chosenTool === keysTool.GUI && }\n {chosenTool === keysTool.CLISOURCE && (\n \n )}\n
\n
\n );\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport { FormDown, FormUp } from 'grommet-icons';\n\nconst StyledButton = styled.button`\n height: 25px;\n width: 50px;\n cursor: pointer;\n border: 1px solid #ddd;\n :focus {\n outline: none;\n }\n :hover {\n background-color: ${(p: any) => p.theme.gray.lightest};\n }\n`;\nconst ButtonContainer = styled.div`\n display: flex;\n flex-direction: column;\n button:nth-child(1) {\n border-radius: ${(p: any) => `0 ${p.theme.borderRadius} 0 0`};\n }\n button:nth-child(2) {\n border-radius: ${(p: any) => `0 0 ${p.theme.borderRadius} 0`};\n }\n`;\nconst StyledInput = styled.input`\n height: 50px;\n width: 100%;\n font-size: 18px;\n line-height: 24px;\n color: #444444;\n padding-left: 10px;\n box-sizing: border-box;\n background-color: ${(p: any) => p.theme.gray.lightest};\n border-radius: ${(p: any) =>\n `${p.theme.borderRadius} 0 0 ${p.theme.borderRadius}`};\n -webkit-appearance: textfield;\n -moz-appearance: textfield;\n appearance: textfield;\n ::-webkit-inner-spin-button,\n ::-webkit-outer-spin-button {\n -webkit-appearance: none;\n }\n border: 1px solid #ddd;\n border-right: none;\n display: inline-flex;\n :focus {\n outline: none;\n }\n`;\n\ninterface Props {\n value: number | string;\n setValue: (e: number) => void;\n allowDecimals?: boolean;\n}\n\nexport const NumberInput = ({\n value,\n setValue,\n allowDecimals,\n}: Props): JSX.Element => {\n const handleManualInput = (e: any) => {\n const val = e.target.value;\n if (allowDecimals) {\n setValue(val);\n } else {\n setValue(val.replace(/\\./g, '')); // remove \".\" to force integer input;\n }\n };\n\n const decrement = () => {\n if (value > 0) setValue(+value - 1);\n };\n\n const increment = () => setValue(+value + 1);\n\n return (\n
\n \n \n \n \n \n \n \n \n \n
\n );\n};\n","import { Action, ActionTypes } from '../actions';\n\nexport enum AcknowledgementIdsEnum {\n introSection,\n deposit,\n terminal,\n responsibilities,\n slashing,\n keyManagement,\n commitment,\n earlyAdoptionRisks,\n checklist,\n confirmation,\n}\n\nexport type AcknowledgementStateInterface = {\n [key in AcknowledgementIdsEnum]: boolean;\n};\n\nconst defaultAcknowledgementState: AcknowledgementStateInterface = {\n [AcknowledgementIdsEnum.introSection]: false,\n [AcknowledgementIdsEnum.deposit]: false,\n [AcknowledgementIdsEnum.terminal]: false,\n [AcknowledgementIdsEnum.responsibilities]: false,\n [AcknowledgementIdsEnum.slashing]: false,\n [AcknowledgementIdsEnum.keyManagement]: false,\n [AcknowledgementIdsEnum.commitment]: false,\n [AcknowledgementIdsEnum.earlyAdoptionRisks]: false,\n [AcknowledgementIdsEnum.checklist]: false,\n [AcknowledgementIdsEnum.confirmation]: false,\n};\n\nexport const acknowledgementReducer = (\n state = defaultAcknowledgementState,\n action: Action\n): AcknowledgementStateInterface => {\n if (action.type === ActionTypes.updateAcknowledgementState) {\n return {\n ...state,\n ...{ [action.payload.acknowledgementId]: action.payload.value },\n };\n }\n return state;\n};\n","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport styled from 'styled-components';\nimport { Alert } from './Alert';\n\nconst StyledAlert = styled(Alert)`\n text-align: center;\n margin-top: 24px;\n margin-bottom: -60px;\n font-weight: 400;\n font-size: 12px;\n line-height: 20px;\n`;\n\nconst AllCaps = styled.span`\n text-transform: uppercase;\n`;\n\nexport const TestnetNotification = (): JSX.Element => {\n return (\n \n \n \n \n ),\n }}\n />\n \n );\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport 'animate.css/animate.min.css';\nimport ScrollAnimation from 'react-animate-on-scroll';\n// @ts-ignore\nimport Animate from 'animate.css-react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport LeslieTheRhinoPNG from '../../static/leslie-rhino.png';\nimport { routesEnum } from '../../Routes';\nimport { Heading } from '../../components/Heading';\nimport { Text } from '../../components/Text';\nimport { Button } from '../../components/Button';\nimport { Link } from '../../components/Link';\nimport useMobileCheck from '../../hooks/useMobileCheck';\nimport { IS_MAINNET, TESTNET_LAUNCHPAD_NAME } from '../../utils/envVars';\nimport { TestnetNotification } from '../../components/TestnetNotification';\n\ninterface mobile {\n isMobile: boolean;\n}\n\nconst RainbowBackground = styled.div`\n min-width: 100%;\n overflow: hidden;\n background-image: ${p =>\n `radial-gradient(circle at 100% -80%, ${p.theme.rainbowLight})`};\n min-height: ${(p: mobile) => p.isMobile && 'calc(100vh - 20px)'};\n`;\nconst MainContainer = styled.div`\n max-width: ${p => p.theme.screenSizes.largest};\n width: 100%;\n margin: 0 auto;\n padding: 0 120px 100px;\n @media only screen and (max-width: ${p => p.theme.screenSizes.largest}) {\n padding: ${(p: mobile) => (p.isMobile ? '20px' : '0 60px 100px')};\n min-height: ${(p: mobile) => (p.isMobile ? '100vh' : undefined)};\n }\n`;\nconst ResponsiveContainer = styled.div`\n height: ${(p: mobile) => (p.isMobile ? '100%' : undefined)};\n > div.is-mobile {\n padding: 0;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n min-height: calc(100vh - 10px);\n }\n`;\nconst ContentContainer = styled.div`\n display: flex;\n align-items: center;\n @media screen and (max-width: ${({ theme }) => theme.screenSizes.small}) {\n flex-direction: column;\n align-items: flex-start;\n justify-content: space-between;\n min-height: calc(100vh - 40px);\n height: calc(100vh - 40px);\n }\n`;\nconst LefContentContainer = styled.div`\n display: flex;\n flex-direction: column;\n height: 100%;\n`;\nconst InfoContainer = styled.div`\n min-height: calc(100% - 50px);\n justify-content: space-evenly;\n display: flex;\n flex-direction: column;\n @media screen and (max-width: ${({ theme }) => theme.screenSizes.small}) {\n min-height: calc(100% - 70px);\n }\n`;\nconst TitleContainer = styled.div`\n flex-basis: 50px;\n flex-shrink: 0;\n height: 50px;\n @media screen and (max-width: ${({ theme }) => theme.screenSizes.small}) {\n flex-basis: 70px;\n flex-shrink: 0;\n height: 70px;\n }\n`;\nconst LogoContainer = styled.div`\n display: flex;\n min-height: 50px;\n`;\n\n// @ts-ignore\nconst LogoText = styled(Text)`\n line-height: 40px;\n font-weight: bold;\n @media screen and (max-width: 1080px) {\n line-height: 24px;\n }\n`;\nconst StyledLeslieImgNode = styled.img`\n max-width: 100%;\n margin: 3rem 0 5rem;\n transform: scale(1.2, 1.2);\n transform-origin: 0% 0%;\n @media screen and (min-width: 800px) {\n transform: translate3d(0, 0, 0);\n margin: 0 -3rem 0 3rem;\n max-width: 100%;\n max-height: 510px;\n }\n @media screen and (max-width: 800px) {\n max-width: 220px;\n margin: 30px auto;\n display: block;\n }\n`;\n\nconst ButtonRow = styled.div`\n width: fit-content;\n display: flex;\n @media screen and (max-width: 1080px) {\n flex-direction: column;\n }\n`;\n\nconst ButtonContainer = styled.div`\n width: fit-content;\n margin: 0;\n @media (max-width: 400px) {\n width: 100%;\n }\n`;\n\n//\n// Sub-components\n\nconst LeslieImage: React.FC<{ style?: React.CSSProperties }> = ({ style }) => (\n
\n \n \n \n
\n);\n\n//\n// Main component\n\nexport const Hero = () => {\n const { formatMessage } = useIntl();\n const isSmallScreen = useMobileCheck('800px');\n const isMediumScreen = useMobileCheck('1080px');\n const m: boolean = (window as any).mobileCheck();\n return (\n \n \n \n {!IS_MAINNET && }\n
\n \n \n {isMediumScreen && (\n \n \n \n \n {IS_MAINNET ? (\n \n ) : (\n \n )}\n \n \n \n \n )}\n \n \n \n \n \n \n \n \n \n \n \n\n {!!isSmallScreen && }\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {!isSmallScreen && }\n \n
\n
\n
\n
\n );\n};\n","export const numberWithCommas = (n: number | string): string =>\n n.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n","import React from 'react';\nimport styled from 'styled-components';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { Heading } from '../../../components/Heading';\nimport { Text } from '../../../components/Text';\nimport { Link } from '../../../components/Link';\nimport { Button } from '../../../components/Button';\nimport { numberWithCommas } from '../../../utils/numberWithCommas';\nimport { BEACONCHAIN_URL, TICKER_NAME } from '../../../utils/envVars';\nimport calculateStakingRewards from '../../../utils/calculateStakingRewards';\n\n//\n// Styled Components\n\nconst Container = styled.div`\n background-color: ${p => p.theme.green.light};\n position: relative;\n padding: ${(p: { isMobile: boolean }) => (p.isMobile ? '64px 0' : '124px 0')};\n`;\nconst Content = styled.div`\n max-width: ${p => p.theme.screenSizes.largest};\n width: 100%;\n margin: 0 auto;\n padding: 0 20px;\n`;\n\nconst BoldGreen = styled.span`\n color: ${(p: { theme: any; fontSize: number }) => p.theme.green.dark};\n font-size: ${(p: { theme: any; fontSize: number }) => p.fontSize}px;\n font-weight: bold;\n`;\n\nconst Card = styled.div`\n padding: 24px;\n border: 1px solid ${p => p.theme.gray.dark};\n border-radius: 4px;\n width: 100%;\n margin: 16px;\n background: white;\n max-width: 240px;\n @media only screen and (max-width: ${p => p.theme.screenSizes.medium}) {\n margin: 0px;\n margin-top: 16px;\n }\n`;\n\nconst CardContainer = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n @media only screen and (max-width: ${p => p.theme.screenSizes.medium}) {\n flex-direction: column;\n }\n`;\n\nconst ButtonContainer = styled.div`\n display: flex;\n justify-content: center;\n`;\n\ntype PropData = {\n amountEth: number;\n totalValidators: number;\n status: number;\n};\n\n//\n// Main Component\n\nexport const NetworkStatus: React.FC<{\n state: PropData;\n}> = ({ state }): JSX.Element | null => {\n const { formatMessage } = useIntl();\n const [m, setM] = React.useState((window as any).mobileCheck());\n const { amountEth, totalValidators, status } = state;\n\n React.useEffect(() => {\n const resizeListener = () => {\n setM((window as any).mobileCheck());\n };\n window.addEventListener('resize', resizeListener);\n return () => window.removeEventListener('resize', resizeListener);\n }, []);\n\n const currentAPR = calculateStakingRewards({ totalAtStake: amountEth });\n const formattedAPR = (Math.round(currentAPR * 1000) / 10).toLocaleString();\n\n const LoadingHandler: React.FC<{\n value?: string;\n }> = ({ value }): JSX.Element => {\n if (status === 200) {\n return {value};\n }\n if (status === 500) {\n return ;\n }\n return ;\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {totalValidators ? (\n \n ) : null}\n \n \n \n \n \n \n \n \n \n {formattedAPR}%\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import React, { useEffect, useState } from 'react';\nimport Web3 from 'web3';\nimport styled from 'styled-components';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { Text } from '../../../components/Text';\nimport { Heading } from '../../../components/Heading';\nimport { CONTRACT_ADDRESS, INFURA_URL } from '../../../utils/envVars';\nimport { contractAbi } from '../../../contractAbi';\nimport Error from '../../../static/custom/error.svg';\nimport Success from '../../../static/custom/complete-filled.svg';\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding-bottom: 150px;\n`;\n\nconst Message = styled(Text)`\n display: flex;\n align-items: center;\n gap: 5px;\n min-height: 24px;\n`;\n\nconst InputWrapper = styled.div`\n width: 400px;\n\n @media (max-width: 768px) {\n width: 100%;\n }\n`;\n\nconst web3 = new Web3(INFURA_URL);\n\nconst contract = new web3.eth.Contract(contractAbi, CONTRACT_ADDRESS);\n\nconst VerifyDepositsAllowance = (): JSX.Element => {\n const [address, setAddress] = useState('');\n const [validatorKeys, setValidatorKeys] = useState(-1);\n const { formatMessage } = useIntl();\n\n const getAllowedDeposits = async (addressToVerify: string) => {\n try {\n const allowedDeposits = await contract.methods\n .allowedDeposits(addressToVerify)\n .call();\n setValidatorKeys(Number(allowedDeposits));\n } catch (error) {\n console.error('Error fetching allowed deposits:', error);\n }\n };\n\n const handleInputChange = async (event: Event) => {\n const inputAddress = ((event as unknown) as CustomEvent).detail\n .value as string;\n setAddress(inputAddress);\n\n if (inputAddress.length === 0) {\n return setValidatorKeys(-1); // when we clear the input, hide the message\n }\n\n if (web3.utils.isAddress(inputAddress)) {\n await getAllowedDeposits(inputAddress);\n } else {\n setValidatorKeys(0);\n }\n };\n\n useEffect(() => {\n const input = (document.querySelector(\n 'lukso-input'\n ) as unknown) as HTMLElement;\n\n input.addEventListener('on-input', handleInputChange);\n return () => input.removeEventListener('on-input', handleInputChange);\n }, []);\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n {validatorKeys === 0 ? (\n <>\n \"\"\n \n \n ) : (\n <>\n )}\n {validatorKeys > 0 ? (\n <>\n \"\"\n {validatorKeys} }}\n />\n \n ) : (\n <>\n )}\n \n \n );\n};\n\nexport default VerifyDepositsAllowance;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { FormattedMessage } from 'react-intl';\nimport EthDiamondPlain from '../../../static/eth-diamond-plain.svg';\nimport EthRound from '../../../static/eth-round-landing.svg';\nimport { Text } from '../../../components/Text';\nimport { Heading } from '../../../components/Heading';\nimport VerifyDepositsAllowance from './VerifyDepositsAllowance';\nimport { Link } from '../../../components/Link';\n\nconst Container = styled.div`\n background: ${p => p.theme.white};\n`;\nconst SubContainer = styled.div`\n position: relative;\n box-sizing: border-box;\n max-width: ${p => p.theme.screenSizes.largest};\n width: 100%;\n margin: 0 auto;\n padding: 0 120px;\n @media only screen and (max-width: ${p => p.theme.screenSizes.largest}) {\n padding: 0 60px;\n }\n`;\nconst ImgContainer = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n padding: 0 20px;\n @media only screen and (max-width: ${p => p.theme.screenSizes.medium}) {\n display: none;\n }\n`;\n\n// adds an opaque eth logo behind the text on small screen sizes\nconst ContentContainer = styled.div`\n @media only screen and (max-width: ${p => p.theme.screenSizes.medium}) {\n :before {\n content: ' ';\n display: block;\n position: absolute;\n right: 60px;\n top: 35px;\n width: 250px;\n height: 400px;\n z-index: 1;\n opacity: 0.15;\n background-image: url(${EthDiamondPlain});\n background-repeat: no-repeat;\n background-position: 50% 0;\n -ms-background-size: cover;\n -o-background-size: cover;\n -moz-background-size: cover;\n -webkit-background-size: cover;\n background-size: cover;\n }\n }\n`;\nexport const Introduction = (): JSX.Element => {\n return (\n \n \n \n \"\"\n \n \n \n \n \n \n \n testnet-validators@lukso.network\n \n ),\n }}\n />\n \n\n \n \n \n {/* NOTE: this section felt like there was a lot of repetition with the section below so have reframed to talk about validators in the context of the upgrades */}\n \n \n \n \n );\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Heading } from '../../../components/Heading';\nimport { Text } from '../../../components/Text';\nimport { Link } from '../../../components/Link';\n\nconst Container = styled.div`\n background-color: ${p => p.theme.purple.medium};\n margin: 10px auto;\n padding: 10px 20px;\n border-radius: ${p => p.theme.borderRadius};\n width: 100%;\n`;\n\ninterface Props {\n title: string;\n subTitle: string;\n link: string;\n linkUrl: string;\n}\n\nexport const UpgradeCard = ({ title, subTitle, link, linkUrl }: Props) => {\n return (\n \n \n {title}\n \n {subTitle}\n \n {link}\n \n \n );\n};\n","import React from 'react';\nimport ScrollAnimation from 'react-animate-on-scroll';\nimport styled from 'styled-components';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { Text } from '../../../components/Text';\nimport { Link } from '../../../components/Link';\nimport { Heading } from '../../../components/Heading';\nimport { UpgradeCard } from './UpgradeCard';\n\nconst Container = styled.div`\n background-color: ${p => p.theme.purple.light};\n padding: ${(p: { isMobile: boolean }) => (p.isMobile ? '20px 0' : '150px 0')};\n`;\nconst SubContainer = styled.div`\n max-width: ${p => p.theme.screenSizes.largest};\n width: 100%;\n margin: 0 auto;\n padding: 0 120px;\n @media only screen and (max-width: ${p => p.theme.screenSizes.largest}) {\n padding: ${(p: { isMobile: boolean }) =>\n p.isMobile ? '0 20px' : '0 60px'};\n }\n`;\nconst UpgradesContainer = styled.div`\n display: flex;\n flex-direction: column;\n margin-top: 20px;\n`;\nconst ResponsiveContainer = styled.div`\n display: flex;\n justify-content: space-between;\n @media only screen and (max-width: ${p => p.theme.screenSizes.larger}) {\n flex-direction: column;\n }\n`;\nconst StyledHeading = styled(Heading)`\n width: ${(p: { isMobile: boolean }) =>\n p.isMobile ? '220px' : undefined}; // force word break\n`;\nconst UpgradeTitle = styled(Text)`\n font-weight: bold;\n font-size: 24px;\n`;\n\ninterface upgrade {\n title: string;\n subTitle: string;\n linkUrl: string;\n link: string;\n}\n\nexport const Upgrades = (): JSX.Element => {\n const { formatMessage } = useIntl();\n\n const m: boolean = (window as any).mobileCheck();\n\n const upgrades: upgrade[] = [\n {\n title: formatMessage({ defaultMessage: 'The upgrades' }),\n subTitle: formatMessage({\n defaultMessage: 'Dig deeper into LUKSO upgrades.',\n }),\n linkUrl: 'https://ethereum.org/en/upgrades/',\n link: formatMessage({ defaultMessage: 'How does this all happen?' }),\n },\n {\n title: formatMessage({\n defaultMessage: 'Deposit contract formally verified',\n }),\n subTitle: formatMessage({\n defaultMessage:\n 'The deposit contract has been verified at a byte-code level to ensure your safety.',\n }),\n linkUrl:\n 'https://github.com/runtimeverification/deposit-contract-verification/blob/96434de/deposit-contract-verification.pdf',\n link: formatMessage({ defaultMessage: 'Formal verification report' }),\n },\n {\n title: formatMessage({ defaultMessage: 'Validators FAQ' }),\n subTitle: formatMessage({\n defaultMessage:\n 'Learn more about the roles and responsibilities of LUKSO validators.',\n }),\n linkUrl: '/faq',\n link: formatMessage({ defaultMessage: 'More on validators' }),\n },\n ];\n\n return (\n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n {upgrades.map((upgrade: upgrade) => (\n \n ))}\n \n
\n
\n
\n );\n};\n","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport styled from 'styled-components';\nimport EthDiamondPlain from '../static/eth-diamond-plain.svg';\nimport { Text } from '../components/Text';\nimport { Link } from '../components/Link';\n\nconst RainbowBackground = styled.div`\n background-image: ${p =>\n `radial-gradient(circle at 100% -80%, ${p.theme.rainbowLight})`};\n min-height: 100vh;\n`;\nconst LogoContainer = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n`;\nconst EthLogo = styled.img`\n height: 100px;\n`;\nconst LogoText = styled(Text)`\n font-weight: bold;\n align-items: center;\n`;\nconst Content = styled.div`\n display: flex;\n justify-content: center;\n flex-direction: column;\n width: 400px;\n height: 400px;\n\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n margin: auto;\n\n /*this to solve \"the content will not be cut when the window is smaller than the content\": */\n max-width: 100%;\n max-height: 100%;\n overflow: auto;\n`;\n\nexport const NotFoundPage = (): JSX.Element => {\n return (\n \n \n \n \n \n LUKSO Staking Launchpad\n \n \n \n \n \n {' '}\n \n \n \n \n \n );\n};\n","import { ActionTypes } from './index';\n\nexport enum ClientId {\n 'GETH' = 'GETH',\n 'PRYSM' = 'PRYSM',\n 'BESU' = 'BESU',\n 'ERIGON' = 'ERIGON',\n 'NLYXERMIND' = 'NLYXERMIND',\n 'LIGHTHOUSE' = 'LIGHTHOUSE',\n 'NIMBUS' = 'NIMBUS',\n 'TEKU' = 'TEKU',\n}\n\nexport interface UpdateClientAction {\n type: ActionTypes.updateClient;\n payload: {\n clientId: ClientId;\n ethClientType: 'execution' | 'consensus';\n };\n}\n\nexport const updateClient = (\n clientId: ClientId,\n ethClientType: 'execution' | 'consensus'\n): UpdateClientAction => {\n return {\n type: ActionTypes.updateClient,\n payload: {\n clientId,\n ethClientType,\n },\n };\n};\n\nexport type DispatchClientUpdate = (\n ValidatorId: ClientId,\n ethClientType: 'execution' | 'consensus'\n) => void;\n","/*\n eslint-disable camelcase\n*/\n\nimport { Action, ActionTypes } from '../actions';\nimport {\n BeaconChainStatus,\n DepositStatus,\n TransactionStatus,\n} from '../actions/depositFileActions';\n\nexport interface DepositKeyInterface {\n pubkey: string;\n withdrawal_credentials: string;\n amount: number;\n signature: string;\n deposit_message_root: string;\n deposit_data_root: string;\n fork_version: string;\n deposit_cli_version: string;\n transactionStatus: TransactionStatus;\n txHash?: string;\n depositStatus: DepositStatus;\n}\n\nexport interface DepositFileInterface {\n name: string;\n beaconChainApiStatus: BeaconChainStatus;\n keys: DepositKeyInterface[];\n}\n\nconst initialState: DepositFileInterface = {\n name: '',\n beaconChainApiStatus: BeaconChainStatus.HEALTHY,\n keys: [],\n};\n\ninterface BeaconchainDepositDataInterface {\n amount: number;\n block_number: number;\n block_ts: number;\n from_address: string;\n merkletree_index: string;\n publickey: string;\n removed: boolean;\n signature: string;\n tx_hash: string;\n tx_index: number;\n tx_input: string;\n valid_signature: boolean;\n withdrawal_credentials: string;\n}\n\nexport interface BeaconchainDepositInterface {\n data: BeaconchainDepositDataInterface[];\n status: string;\n}\n\nexport const depositFileReducer = (\n state: DepositFileInterface = initialState,\n action: Action\n) => {\n if (action.type === ActionTypes.updateDepositFileName) {\n return {\n ...state,\n name: action.payload,\n };\n }\n\n if (action.type === ActionTypes.updateDepositFileKeys) {\n return {\n ...state,\n keys: action.payload,\n };\n }\n\n if (action.type === ActionTypes.updateTransactionStatus) {\n const { keys } = state;\n const clonedKeys = [...keys];\n const indexOfFileToUpdate = keys.findIndex(\n ({ pubkey }) => pubkey === action.payload.pubkey\n );\n clonedKeys[indexOfFileToUpdate].transactionStatus = action.payload.status;\n\n if (action.payload.txHash) {\n clonedKeys[indexOfFileToUpdate].txHash = action.payload.txHash;\n }\n\n return { ...state, keys: clonedKeys };\n }\n\n if (action.type === ActionTypes.updateDepositStatus) {\n const { keys } = state;\n const clonedKeys = [...keys];\n const indexOfFileToUpdate = keys.findIndex(\n ({ pubkey }) => pubkey === action.payload.pubkey\n );\n clonedKeys[indexOfFileToUpdate].depositStatus =\n action.payload.depositStatus;\n\n return { ...state, keys: clonedKeys };\n }\n\n if (action.type === ActionTypes.updateBeaconChainAPIStatus) {\n return {\n ...state,\n beaconChainApiStatus: action.payload,\n };\n }\n\n return state;\n};\n","// import _sample from 'lodash/sample';\nimport { Action, ActionTypes } from '../actions';\nimport { ClientId } from '../actions/clientActions';\n\nexport type clientState = {\n executionClient: ClientId;\n consensusClient: ClientId;\n};\n\nconst executionClientIds = [\n ClientId.GETH,\n ClientId.BESU,\n ClientId.NLYXERMIND,\n ClientId.ERIGON,\n];\n\nconst consensusClientIds = [\n ClientId.PRYSM,\n ClientId.LIGHTHOUSE,\n ClientId.NIMBUS,\n ClientId.TEKU,\n];\n\nconst initialState: clientState = {\n executionClient: executionClientIds[0], // _sample(executionClientIds) ||\n consensusClient: consensusClientIds[0], // _sample(consensusClientIds) ||\n};\n\nexport const clientReducer = (\n state: clientState = initialState,\n action: Action\n) => {\n if (action.type === ActionTypes.updateClient) {\n if (action.payload.ethClientType === 'execution') {\n return {\n ...state,\n executionClient: action.payload.clientId,\n };\n }\n\n if (action.payload.ethClientType === 'consensus') {\n return {\n ...state,\n consensusClient: action.payload.clientId,\n };\n }\n }\n return state;\n};\n","import { combineReducers } from 'redux';\nimport {\n acknowledgementReducer,\n AcknowledgementStateInterface,\n} from './acknowledgementReducer';\nimport { DepositFileInterface, depositFileReducer } from './depositFileReducer';\nimport { workflowReducer } from './workflowReducer';\nimport { WorkflowStep } from '../actions/workflowActions';\nimport { clientReducer, clientState } from './clientReducer';\n\nexport * from './acknowledgementReducer';\nexport * from './depositFileReducer';\nexport * from './workflowReducer';\n\nexport interface StoreState {\n acknowledgementState: AcknowledgementStateInterface;\n depositFile: DepositFileInterface;\n workflow: WorkflowStep;\n client: clientState;\n}\n\nexport const reducers = combineReducers({\n acknowledgementState: acknowledgementReducer,\n depositFile: depositFileReducer,\n workflow: workflowReducer,\n client: clientReducer,\n});\n","import { Action, ActionTypes } from '../actions';\nimport { WorkflowStep } from '../actions/workflowActions';\n\nexport const workflowReducer = (\n state: WorkflowStep = WorkflowStep.OVERVIEW,\n action: Action\n) => {\n if (action.type === ActionTypes.updateWorkflow) {\n return action.payload;\n }\n return state;\n};\n","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport styled from 'styled-components';\nimport { AcknowledgementIdsEnum } from '../../store/reducers';\nimport { Link } from '../../components/Link';\nimport { Text } from '../../components/Text';\nimport {\n PRICE_PER_VALIDATOR,\n TICKER_NAME,\n DEPOSIT_CONTRACT_LINK,\n} from '../../utils/envVars';\n\nconst BoldCaps = styled.strong`\n text-transform: uppercase;\n`;\n\nexport interface PageContentInterface {\n title: JSX.Element;\n content: JSX.Element;\n acknowledgementText?: JSX.Element;\n}\n\nexport const pageContent = {\n [AcknowledgementIdsEnum.introSection]: {\n title: ,\n content: (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ),\n acknowledgementText: (\n \n ),\n },\n [AcknowledgementIdsEnum.deposit]: {\n title: ,\n content: (\n <>\n \n \n \n \n \n \n \n \n \n \n ),\n acknowledgementText: (\n \n ),\n },\n [AcknowledgementIdsEnum.responsibilities]: {\n title: ,\n content: (\n <>\n \n \n \n \n \n \n \n ),\n acknowledgementText: (\n \n ),\n },\n [AcknowledgementIdsEnum.slashing]: {\n title: ,\n content: (\n <>\n \n \n \n \n \n \n \n \n \n \n ),\n acknowledgementText: (\n \n ),\n },\n [AcknowledgementIdsEnum.keyManagement]: {\n title: ,\n content: (\n <>\n \n \n \n \n \n \n \n \n \n \n ),\n acknowledgementText: (\n \n \n \n ),\n }}\n />\n ),\n },\n [AcknowledgementIdsEnum.commitment]: {\n title: (\n \n ),\n content: (\n <>\n \n \n \n\n \n \n \n \n ),\n acknowledgementText: (\n \n \n \n ),\n cannotWithdraw: (\n \n \n \n ),\n }}\n />\n ),\n },\n [AcknowledgementIdsEnum.earlyAdoptionRisks]: {\n title: ,\n content: (\n \n \n \n ),\n acknowledgementText: (\n \n ),\n },\n [AcknowledgementIdsEnum.terminal]: {\n title: ,\n content: (\n \n \n \n ),\n acknowledgementText: (\n \n ),\n },\n [AcknowledgementIdsEnum.checklist]: {\n title: ,\n content: (\n <>\n \n \n \n \n \n \n \n ),\n acknowledgementText: (\n \n ),\n },\n [AcknowledgementIdsEnum.confirmation]: {\n title: ,\n content: (\n <>\n \n \n \n \n \n \n \n ),\n acknowledgementText: (\n \n ),\n },\n};\n","import styled from 'styled-components';\n\nexport const AnimatedCheck = styled.div`\n display: ${(p: { show: boolean }) => (p.show ? 'block' : 'none')};\n position: absolute;\n right: -15px;\n top: -15px;\n\n svg {\n width: 30px;\n display: block;\n }\n\n .path {\n stroke-dasharray: 1000;\n stroke-dashoffset: 0;\n\n &.line {\n stroke-dashoffset: 1000;\n -webkit-animation: dash 0.6s 0.15s ease-in-out forwards;\n animation: dash 0.6s 0.15s ease-in-out forwards;\n }\n &.check {\n stroke-dashoffset: -100;\n -webkit-animation: dash-check 0.6s 0.15s ease-in-out forwards;\n animation: dash-check 0.6s 0.15s ease-in-out forwards;\n }\n }\n @-webkit-keyframes dash {\n 0% {\n stroke-dashoffset: 1000;\n }\n 100% {\n stroke-dashoffset: 0;\n }\n }\n\n @keyframes dash {\n 0% {\n stroke-dashoffset: 1000;\n }\n 100% {\n stroke-dashoffset: 0;\n }\n }\n\n @-webkit-keyframes dash-check {\n 0% {\n stroke-dashoffset: -100;\n }\n 100% {\n stroke-dashoffset: 900;\n }\n }\n\n @keyframes dash-check {\n 0% {\n stroke-dashoffset: -100;\n }\n 100% {\n stroke-dashoffset: 900;\n }\n }\n`;\n","import React from 'react';\nimport styled from 'styled-components';\nimport _keys from 'lodash/keys';\nimport _every from 'lodash/every';\nimport { colors } from '../../../styles/styledComponentsTheme';\nimport { Animated } from 'react-animated-css';\nimport {\n AcknowledgementIdsEnum,\n AcknowledgementStateInterface,\n} from '../../../store/reducers';\nimport { Text } from '../../../components/Text';\nimport { AnimatedCheck } from './AnimatedCheck';\n\ninterface Props {\n theme: any;\n disabled: boolean;\n isActive: boolean;\n}\n\nconst Container = styled.div`\n position: relative;\n display: flex;\n background-color: white;\n width: ${(p: Props) => (p.isActive ? '100%' : '235px')};\n margin: auto auto 25px;\n border-radius: ${(p: { theme: any }) => p.theme.borderRadius};\n border: 1px solid ${(p: Props) => p.theme.gray.medium};\n box-shadow: ${(p: Props) =>\n p.isActive\n ? '-webkit-box-shadow:0 0 10px rgba(0, 0, 0, 0.3);\\n' +\n '\\t-moz-box-shadow:0 0 10px rgba(0, 0, 0, 0.3);\\n' +\n '\\tbox-shadow:0 0 10px rgba(0, 0, 0, 0.3);'\n : 'inherit'};\n cursor: ${(p: Props) => (p.disabled ? 'default' : 'pointer')};\n transition: width 0.5s;\n`;\nconst IndexContainer = styled.div`\n display: flex;\n justify-content: center;\n background-color: ${(p: { theme: any }) => p.theme.gray.light};\n padding: 10px 15px;\n height: 40px;\n width: 45px;\n border-radius: ${(p: { theme: any }) =>\n `${p.theme.borderRadius} 0 0 ${p.theme.borderRadius}`};\n`;\n\nconst StyledText = styled(Text)`\n color: ${(p: Props) =>\n p.disabled ? p.theme.gray.medium : p.theme.gray.dark};\n font-weight: ${(p: Props) => (p.isActive ? 600 : 200)};\n font-size: 18px;\n line-height: 40px;\n margin-left: 15px;\n`;\n\ninterface ProgressItemProps {\n acknowledgementsWithCopy: any;\n acknowledgementId: AcknowledgementIdsEnum;\n acknowledgementState: AcknowledgementStateInterface;\n setActiveAcknowledgementId: (id: AcknowledgementIdsEnum) => void;\n isActive: boolean;\n}\n\nexport const AcknowledgementProgressStep = ({\n acknowledgementsWithCopy,\n acknowledgementId,\n acknowledgementState,\n setActiveAcknowledgementId,\n isActive,\n}: ProgressItemProps) => {\n const isComplete = acknowledgementState[acknowledgementId];\n const previousAcknowledgementStatuses = _keys(acknowledgementsWithCopy)\n .slice(0, acknowledgementId)\n // @ts-ignore\n .map(id => acknowledgementState[id]);\n const disabled = !_every(previousAcknowledgementStatuses);\n\n const handleClick = () => {\n if (!disabled) {\n setActiveAcknowledgementId(acknowledgementId);\n }\n };\n\n return (\n \n \n {+acknowledgementId + 1}\n \n \n {acknowledgementsWithCopy[acknowledgementId]}\n \n \n \n \n \n \n \n \n \n \n );\n};\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\nimport _map from 'lodash/map';\nimport {\n AcknowledgementIdsEnum,\n AcknowledgementStateInterface,\n StoreState,\n} from '../../../store/reducers';\nimport { AcknowledgementProgressStep } from './AcknowledgementProgressStep';\n\nconst Container = styled.div`\n min-width: 250px;\n margin-right: 40px;\n @media only screen and (max-width: 940px) {\n display: none;\n }\n`;\n\nexport interface AcknowledgementProgressTrackerProps {\n acknowledgementState: AcknowledgementStateInterface;\n activeAcknowledgementId: AcknowledgementIdsEnum;\n setActiveAcknowledgementId: (id: AcknowledgementIdsEnum) => void;\n}\n\nexport const _AcknowledgementProgressTracker = ({\n acknowledgementState,\n activeAcknowledgementId,\n setActiveAcknowledgementId,\n}: AcknowledgementProgressTrackerProps): JSX.Element => {\n const { formatMessage } = useIntl();\n const acknowledgementsWithCopy = {\n [AcknowledgementIdsEnum.introSection]: formatMessage({\n defaultMessage: 'Proof of stake',\n }),\n [AcknowledgementIdsEnum.deposit]: formatMessage({\n defaultMessage: 'Deposit',\n }),\n [AcknowledgementIdsEnum.terminal]: formatMessage({\n defaultMessage: 'The terminal',\n }),\n [AcknowledgementIdsEnum.responsibilities]: formatMessage({\n defaultMessage: 'Uptime',\n }),\n [AcknowledgementIdsEnum.slashing]: formatMessage({\n defaultMessage: 'Bad behaviour',\n }),\n [AcknowledgementIdsEnum.keyManagement]: formatMessage({\n defaultMessage: 'Key management',\n }),\n [AcknowledgementIdsEnum.commitment]: formatMessage({\n defaultMessage: 'Commitment',\n }),\n [AcknowledgementIdsEnum.earlyAdoptionRisks]: formatMessage({\n defaultMessage: 'Early adoption risks',\n }),\n [AcknowledgementIdsEnum.checklist]: formatMessage({\n defaultMessage: 'Checklist',\n }),\n [AcknowledgementIdsEnum.confirmation]: formatMessage({\n defaultMessage: 'Confirmation',\n }),\n };\n return (\n \n {_map(\n acknowledgementsWithCopy,\n (_, acknowledgementId: AcknowledgementIdsEnum) => {\n return (\n \n );\n }\n )}\n \n );\n};\n\nconst mapStateToProps = ({ acknowledgementState }: StoreState) => ({\n acknowledgementState,\n});\n\nexport const AcknowledgementProgressTracker = connect(mapStateToProps)(\n _AcknowledgementProgressTracker\n);\n","import React from 'react';\nimport styled from 'styled-components';\nimport { AcknowledgementIdsEnum } from '../../store/reducers';\nimport { Button } from '../../components/Button';\nimport { Text } from '../../components/Text';\nimport { Heading } from '../../components/Heading';\nimport { Link } from '../../components/Link';\nimport { routesEnum } from '../../Routes';\nimport { useIntl } from 'react-intl';\n\nconst Container = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n`;\n\nconst AcknowledgementText = styled(Text as any)`\n background: #ffdeb32e;\n border: 1px solid burlywood;\n padding: 30px;\n border-radius: 4px;\n`;\n\nexport interface AcknowledgementSectionData {\n title: JSX.Element;\n content: JSX.Element;\n acknowledgementText?: JSX.Element;\n acknowledgementId: AcknowledgementIdsEnum;\n}\n\ninterface AcknowledgementSectionProps {\n handleContinueClick: (id: AcknowledgementIdsEnum) => void;\n handleGoBackClick: (id: AcknowledgementIdsEnum) => void;\n handleSubmit: () => void;\n allAgreedTo: boolean;\n}\n\nexport const AcknowledgementSection = ({\n title,\n content,\n acknowledgementId,\n acknowledgementText,\n handleContinueClick,\n handleGoBackClick,\n handleSubmit,\n allAgreedTo,\n}: AcknowledgementSectionProps & AcknowledgementSectionData): JSX.Element => {\n const isIntroSection =\n acknowledgementId === AcknowledgementIdsEnum.introSection;\n const isConfirmationSection =\n acknowledgementId === AcknowledgementIdsEnum.confirmation;\n const { formatMessage } = useIntl();\n const renderButtons = () => {\n if (isConfirmationSection) {\n return (\n
\n \n handleGoBackClick(AcknowledgementIdsEnum.confirmation)\n }\n width={100}\n label={formatMessage({ defaultMessage: 'Back' })}\n />\n {\n handleContinueClick(AcknowledgementIdsEnum.confirmation);\n handleSubmit();\n }}\n >\n \n \n
\n );\n }\n return (\n
\n {!isIntroSection && (\n handleGoBackClick(acknowledgementId)}\n label={formatMessage({ defaultMessage: 'Back' })}\n className=\"mr10\"\n />\n )}\n handleContinueClick(acknowledgementId)}\n rainbow\n label={\n isIntroSection\n ? `${formatMessage({ defaultMessage: 'Continue' })}`\n : `${formatMessage({ defaultMessage: 'I accept' })}`\n }\n width={300}\n />\n
\n );\n };\n\n return (\n \n
\n \n {title}\n \n {content}\n
\n
\n {!isIntroSection && (\n \n {acknowledgementText}\n \n )}\n {renderButtons()}\n
\n
\n );\n};\n","import React, { useState } from 'react';\nimport styled from 'styled-components';\nimport { Dispatch } from 'redux';\nimport { connect } from 'react-redux';\nimport _every from 'lodash/every';\nimport _pickBy from 'lodash/pickBy';\nimport _values from 'lodash/values';\nimport { WorkflowPageTemplate } from '../../components/WorkflowPage/WorkflowPageTemplate';\nimport {\n AcknowledgementIdsEnum,\n AcknowledgementStateInterface,\n StoreState,\n} from '../../store/reducers';\nimport { pageContent, PageContentInterface } from './pageContent';\nimport { AcknowledgementProgressTracker } from './AcknowledgementProgressTracker';\nimport { AcknowledgementSection } from './AcknowledgementSection';\nimport {\n DispatchWorkflowUpdateType,\n WorkflowStep,\n updateWorkflow,\n} from '../../store/actions/workflowActions';\nimport {\n DispatchAcknowledgementStateUpdateType,\n updateAcknowledgementState,\n} from '../../store/actions/acknowledgementActions';\nimport { Paper } from '../../components/Paper';\nimport { FormattedMessage, useIntl } from 'react-intl';\n\ninterface OwnProps {}\ninterface StateProps {\n acknowledgementState: AcknowledgementStateInterface;\n workflow: WorkflowStep;\n}\n\ninterface DispatchProps {\n dispatchAcknowledgementStateUpdate: DispatchAcknowledgementStateUpdateType;\n dispatchWorkflowUpdate: DispatchWorkflowUpdateType;\n}\ntype Props = StateProps & DispatchProps & OwnProps;\n\nconst _AcknowledgementPage = ({\n acknowledgementState,\n dispatchAcknowledgementStateUpdate,\n workflow,\n dispatchWorkflowUpdate,\n}: Props): JSX.Element => {\n const [activeAcknowledgementId, setActiveAcknowledgementId] = useState<\n AcknowledgementIdsEnum\n >(\n workflow === WorkflowStep.OVERVIEW\n ? AcknowledgementIdsEnum.introSection\n : AcknowledgementIdsEnum.confirmation\n );\n\n const allAgreedTo = _every(\n _values(\n _pickBy(\n acknowledgementState,\n // @ts-ignore\n (val: boolean, id: AcknowledgementIdsEnum) => {\n // eslint-disable-next-line eqeqeq\n return id != AcknowledgementIdsEnum.confirmation;\n }\n )\n )\n );\n\n const Subtitle = styled.p`\n font-size: 20px;\n margin-bottom: 32px;\n `;\n\n const handleSubmit = () => {\n if (workflow === WorkflowStep.OVERVIEW) {\n dispatchWorkflowUpdate(WorkflowStep.SELECT_CLIENT);\n }\n };\n\n const handleContinueClick = (id: AcknowledgementIdsEnum) => {\n dispatchAcknowledgementStateUpdate(id, true);\n if (+id + 1 in AcknowledgementIdsEnum) {\n setTimeout(() => setActiveAcknowledgementId(+id + 1), 500);\n }\n };\n\n const handleGoBackClick = (id: AcknowledgementIdsEnum) => {\n if (+id - 1 in AcknowledgementIdsEnum) {\n setActiveAcknowledgementId(+id - 1);\n }\n };\n\n const {\n title,\n content,\n acknowledgementText,\n }: PageContentInterface = pageContent[activeAcknowledgementId];\n const { formatMessage } = useIntl();\n return (\n \n \n \n \n \n \n \n \n \n );\n};\n\nconst mapStateToProps = (state: StoreState): StateProps => ({\n workflow: state.workflow,\n acknowledgementState: state.acknowledgementState,\n});\n\nconst mapDispatchToProps = (dispatch: Dispatch): DispatchProps => ({\n dispatchAcknowledgementStateUpdate: (id, value) =>\n dispatch(updateAcknowledgementState(id, value)),\n dispatchWorkflowUpdate: step => dispatch(updateWorkflow(step)),\n});\n\nexport const AcknowledgementPage = connect<\n StateProps,\n DispatchProps,\n OwnProps,\n StoreState\n>(\n mapStateToProps,\n mapDispatchToProps\n)(_AcknowledgementPage);\n","import { ActionTypes } from './index';\nimport { AcknowledgementIdsEnum } from '../reducers';\n\nexport interface UpdateAcknowledgementStateAction {\n type: ActionTypes.updateAcknowledgementState;\n payload: {\n acknowledgementId: AcknowledgementIdsEnum;\n value: boolean;\n };\n}\n\nexport const updateAcknowledgementState = (\n acknowledgementId: AcknowledgementIdsEnum,\n value: boolean\n): UpdateAcknowledgementStateAction => {\n return {\n type: ActionTypes.updateAcknowledgementState,\n payload: { acknowledgementId, value },\n };\n};\n\nexport type DispatchAcknowledgementStateUpdateType = (\n acknowledgementId: AcknowledgementIdsEnum,\n value: boolean\n) => void;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Box } from 'grommet';\nimport { FormattedMessage } from 'react-intl';\nimport { Link } from '../../components/Link';\nimport { Paper } from '../../components/Paper';\nimport { Heading } from '../../components/Heading';\nimport { Text } from '../../components/Text';\nimport { ImageSelectionBox } from '../../components/ImageSelectionBox';\nimport { Alert } from '../../components/Alert';\nimport { Client } from './index';\nimport { ClientId } from '../../store/actions/clientActions';\n\nconst ClientOptionContainer = styled.div`\n width: 100%;\n display: flex;\n justify-content: center;\n flex-wrap: wrap;\n margin-bottom: 2rem;\n`;\n\nconst ClientDescriptionContainer = styled.div`\n width: 100%;\n border-radius: 4px;\n background: #fcfcfc;\n border: 1px solid #ececec;\n margin-top: 30px;\n padding: 1rem 2rem;\n`;\n\ntype Props = {\n title?: string;\n clients: Array;\n currentClient: ClientId;\n setCurrentClient: (client: ClientId) => void;\n clientDetails: any;\n ethClientStep: string;\n};\n\nconst SelectClientSection = ({\n title,\n clients,\n currentClient,\n setCurrentClient,\n clientDetails,\n ethClientStep,\n}: Props): JSX.Element => (\n \n \n {title}\n \n {ethClientStep === 'execution' && (\n
\n \n
\n )}\n \n \n {clients.map(({ clientId, name, imgUrl, language }) => {\n const inputId = `${clientId}-client`;\n const onClick = () => setCurrentClient(clientId);\n\n return (\n \n );\n })}\n \n {/* {ethClientStep === 'execution' && (\n \n \n \n )} */}\n \n {clientDetails[currentClient]}\n \n \n \n \n \n \n {' '}\n \n \n \n \n \n \n
\n);\n\nexport default SelectClientSection;\n","import React from 'react';\nimport { LinkProps } from 'react-router-dom';\nimport { useIntl } from 'react-intl';\nimport { Button } from '../../components/Button';\nimport { Link } from '../../components/Link';\nimport { routesEnum } from '../../Routes';\nimport { ClientId } from '../../store/actions/clientActions';\n\ntype Props = {\n ethClientStep: 'execution' | 'consensus';\n currentClient: ClientId;\n handleSubmit: LinkProps['onClick'];\n updateStep: (nextStep: 'execution' | 'consensus') => void;\n};\n\nconst SelectClientButtons = ({\n ethClientStep,\n currentClient,\n handleSubmit,\n updateStep,\n}: Props) => {\n const { formatMessage } = useIntl();\n\n if (ethClientStep === 'execution') {\n return (\n <>\n \n \n \n updateStep('consensus')}\n />\n \n );\n }\n\n return (\n <>\n updateStep('execution')}\n />\n \n \n \n \n );\n};\n\nexport default SelectClientButtons;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Heading } from '../../components/Heading';\n\nexport const ValidatorClientPageStyles = styled.div`\n section {\n margin-top: 20px;\n }\n`;\n\nexport const SectionTitle = styled(Heading)`\n margin-top: 30px;\n border-bottom: 1px solid lightgray;\n padding-bottom: 10px;\n`;\n\nconst StyledImgForHero = styled.img`\n width: 100%;\n object-fit: cover;\n height: 230px;\n`;\n\nexport const Hero = ({ imgSrc, ...props }: any) => {\n return ;\n};\n","import React from 'react';\nimport { Helmet } from 'react-helmet';\nimport { RouteComponentProps, withRouter } from 'react-router-dom';\nimport styled from 'styled-components';\nimport { AppBar } from './AppBar';\nimport { Heading } from './Heading';\n\nconst Content = styled.div`\n width: 100%;\n max-width: 1024px;\n margin: 30px 0;\n position: relative;\n margin-top: 64px;\n`;\n\nconst Gutter = styled.div`\n padding: 0 48px 5rem; // adds space for footer\n display: flex;\n justify-content: center;\n`;\n\nconst RainbowBackground = styled.div`\n background-image: ${p =>\n `radial-gradient(circle at 100% -80%, ${p.theme.rainbowLight})`};\n min-height: 100vh;\n`;\n\ninterface Props extends RouteComponentProps {\n children?: React.ReactNode;\n title: string;\n header?: string;\n description?: string;\n history: any;\n}\n\nconst _PageTemplate = ({\n children,\n description,\n title,\n header = title,\n}: Props): JSX.Element => {\n return (\n \n \n {title}\n \n \n \n \n \n \n \n \n \n \n {header}\n \n {children}\n \n \n \n );\n};\n\nexport const PageTemplate = withRouter(_PageTemplate);\n","import React from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport prysmBg from '../../../static/prysmatic-bg.png';\nimport {\n Hero,\n SectionTitle,\n ValidatorClientPageStyles,\n} from '../ValidatorClientComponents';\nimport { PageTemplate } from '../../../components/PageTemplate';\nimport { Text } from '../../../components/Text';\nimport { Link } from '../../../components/Link';\n// import { ClientDiversityWarning } from '../../../components/ClientDiversityWarning';\nimport { PRYSM_INSTALLATION_URL } from '../../../utils/envVars';\n\n// eslint-disable-next-line no-unused-vars\nexport const PrysmDetails = ({ shortened }: { shortened?: boolean }) => (\n <>\n {/* \n 33% of the network.\" />\n */}\n \n Prysm\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n);\n\nexport const Prysm = () => {\n const { formatMessage } = useIntl();\n return (\n \n \n \n \n
\n \n \n \n \n \n \n
\n
\n \n );\n};\n","import React from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport styled from 'styled-components';\nimport lighthouseBg from '../../../static/lighthouse-bg.png';\nimport {\n Hero,\n SectionTitle,\n ValidatorClientPageStyles,\n} from '../ValidatorClientComponents';\nimport { PageTemplate } from '../../../components/PageTemplate';\nimport { Text } from '../../../components/Text';\nimport { Link } from '../../../components/Link';\n// import { ClientDiversityWarning } from '../../../components/ClientDiversityWarning';\nimport { LIGHTHOUSE_INSTALLATION_URL } from '../../../utils/envVars';\n\nconst CodeSnippet = styled.div`\n padding: 10px;\n font-family: Courier, sans-serif;\n font-size: 1em;\n line-height: 1.3;\n color: #fff;\n background-color: #597ea3;\n border-radius: 6px;\n margin: 10px 0;\n\n code {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n`;\n\nexport const LighthouseDetails = ({ shortened }: { shortened?: boolean }) => (\n <>\n {/* \n 33% of the network.\" />\n */}\n \n Lighthouse\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n <>\n {!shortened && (\n
\n \n \n \n\n \n \n \n\n \n \n \n \n lighthouse account validator import --directory\n staking-deposit-cli/validator_keys\n \n \n \n \n \n Successfully moved keystore.\n Successfully updated validator_definitions.yml.\n Successfully imported 1 validators.\n \n\n \n \n \n \n \n \n \n lighthouse vc\n \n\n \n \n \n \n \n \n
\n )}\n \n \n);\n\nexport const Lighthouse = () => {\n const { formatMessage } = useIntl();\n return (\n \n \n \n \n
\n \n \n \n \n \n \n
\n
\n \n );\n};\n","import React from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport gethBg from '../../../static/geth-bg.png';\nimport {\n Hero,\n SectionTitle,\n ValidatorClientPageStyles,\n} from '../ValidatorClientComponents';\nimport { PageTemplate } from '../../../components/PageTemplate';\nimport { Text } from '../../../components/Text';\nimport { Link } from '../../../components/Link';\n// import { Code } from '../../../components/Code';\nimport { Heading } from '../../../components/Heading';\n// import { ClientDiversityWarning } from '../../../components/ClientDiversityWarning';\n\nimport { IS_MAINNET } from '../../../utils/envVars';\n\n// eslint-disable-next-line no-unused-vars\nexport const GethDetails = () => (\n <>\n {/* \n 66% of the network.\" />\n */}\n \n Geth\n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n {!IS_MAINNET && (\n <>\n \n \n \n \n \n \n \n \n \n \n )}\n
\n \n);\n\nexport const Geth = () => {\n const { formatMessage } = useIntl();\n return (\n \n \n \n \n
\n \n \n \n \n \n \n
\n
\n \n );\n};\n","import React from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport erigonBg from '../../../static/geth-bg.png';\nimport {\n Hero,\n SectionTitle,\n ValidatorClientPageStyles,\n} from '../ValidatorClientComponents';\nimport { PageTemplate } from '../../../components/PageTemplate';\nimport { Text } from '../../../components/Text';\nimport { Link } from '../../../components/Link';\n// import { Code } from '../../../components/Code';\nimport { Heading } from '../../../components/Heading';\nimport { IS_MAINNET } from '../../../utils/envVars';\n\n// eslint-disable-next-line no-unused-vars\nexport const ErigonDetails = () => (\n <>\n \n Erigon\n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n
\n {!IS_MAINNET && (\n <>\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n )}\n \n);\n\nexport const Erigon = () => {\n const { formatMessage } = useIntl();\n return (\n \n \n \n \n
\n \n \n \n \n \n \n
\n
\n \n );\n};\n","import React, { useState } from 'react';\nimport { Dispatch } from 'redux';\nimport { connect } from 'react-redux';\nimport _shuffle from 'lodash/shuffle';\nimport { StoreState } from '../../store/reducers';\nimport { WorkflowPageTemplate } from '../../components/WorkflowPage/WorkflowPageTemplate';\nimport { routeToCorrectWorkflowStep } from '../../utils/RouteToCorrectWorkflowStep';\nimport SelectClientSection from './SelectClientSection';\nimport SelectClientButtons from './SelectClientButtons';\nimport { PrysmDetails } from '../Clients/Consensus/Prysm';\nimport { LighthouseDetails } from '../Clients/Consensus/Lighthouse';\n// import { TekuDetails } from '../Clients/Consensus/Teku';\n// import { NimbusDetails } from '../Clients/Consensus/Nimbus';\nimport { GethDetails } from '../Clients/Execution/Geth';\n// import { BesuDetails } from '../Clients/Execution/Besu';\n// import { NethermindDetails } from '../Clients/Execution/Nethermind';\nimport { ErigonDetails } from '../Clients/Execution/Erigon';\nimport PrysmaticCircle from '../../static/prysmatic-labs-circle.png';\nimport LighthouseCircle from '../../static/lighthouse-circle.png';\n// import NimbusCircle from '../../static/nimbus-circle.png';\n// import TekuCircle from '../../static/pegasys-teku-circle.png';\nimport GethCircle from '../../static/gethereum-mascot-circle.png';\n// import BesuCircle from '../../static/hyperledger-besu-circle.png';\n// import NethermindCircle from '../../static/nethermind-circle.png';\nimport ErigonCircle from '../../static/erigon-circle.png';\n\nimport {\n DispatchWorkflowUpdateType,\n updateWorkflow,\n WorkflowStep,\n} from '../../store/actions/workflowActions';\nimport {\n DispatchClientUpdate,\n updateClient,\n ClientId,\n} from '../../store/actions/clientActions';\nimport { clientState } from '../../store/reducers/clientReducer';\nimport { useIntl } from 'react-intl';\n\n// Prop definitions\ninterface OwnProps {}\ninterface StateProps {\n workflow: WorkflowStep;\n chosenClients: clientState;\n}\n\ninterface DispatchProps {\n dispatchWorkflowUpdate: DispatchWorkflowUpdateType;\n dispatchClientUpdate: DispatchClientUpdate;\n}\ntype Props = StateProps & DispatchProps & OwnProps;\n\nconst clientDetails = {\n // [ClientId.TEKU]: ,\n [ClientId.LIGHTHOUSE]: ,\n [ClientId.PRYSM]: ,\n // [ClientId.NIMBUS]: ,\n [ClientId.GETH]: ,\n // [ClientId.BESU]: ,\n // [ClientId.NLYXERMIND]: ,\n [ClientId.ERIGON]: ,\n};\n\nexport type Client = {\n clientId: ClientId;\n name: string;\n imgUrl: string;\n language?: any;\n};\n\n// define and shuffle the clients\nconst ethClients: {\n [ethClientType: string]: Array;\n} = {\n execution: _shuffle([\n {\n clientId: ClientId.GETH,\n name: 'Geth',\n imgUrl: GethCircle,\n language: 'Go',\n },\n // {\n // clientId: ClientId.BESU,\n // name: 'Besu',\n // imgUrl: BesuCircle,\n // language: 'Java',\n // },\n // {\n // clientId: ClientId.NLYXERMIND,\n // name: 'Nethermind',\n // imgUrl: NethermindCircle,\n // language: 'C#, .NET',\n // },\n {\n clientId: ClientId.ERIGON,\n name: 'Erigon',\n imgUrl: ErigonCircle,\n language: 'Go',\n },\n ]),\n consensus: _shuffle([\n // {\n // clientId: ClientId.TEKU,\n // name: 'Teku',\n // imgUrl: TekuCircle,\n // language: 'Java',\n // },\n {\n clientId: ClientId.LIGHTHOUSE,\n name: 'Lighthouse',\n imgUrl: LighthouseCircle,\n language: 'Rust',\n },\n {\n clientId: ClientId.PRYSM,\n name: 'Prysm',\n imgUrl: PrysmaticCircle,\n language: 'Go',\n },\n // {\n // clientId: ClientId.NIMBUS,\n // name: 'Nimbus',\n // imgUrl: NimbusCircle,\n // language: 'Nim',\n // },\n ]),\n};\n\nconst _SelectClientPage = ({\n workflow,\n dispatchWorkflowUpdate,\n chosenClients,\n dispatchClientUpdate,\n}: Props): JSX.Element => {\n // set the default the eth version to 1 on initial render\n const [ethClientStep, setEthClientStep] = useState<'execution' | 'consensus'>(\n 'execution'\n );\n\n const { formatMessage } = useIntl();\n\n // filter the options based on the eth version the user is on\n const clientOptions = React.useMemo(() => ethClients[ethClientStep], [\n ethClientStep,\n ]);\n\n // memoize the chosen client by step\n const selectedClient: ClientId = React.useMemo(\n () =>\n ethClientStep === 'execution'\n ? chosenClients.executionClient\n : chosenClients.consensusClient,\n [ethClientStep, chosenClients]\n );\n\n const setClientFxn = (clientId: ClientId) => {\n dispatchClientUpdate(clientId, ethClientStep);\n };\n\n React.useEffect(() => {\n const header = document.getElementsByTagName('header')[0];\n\n if (header) {\n header.scrollIntoView({ behavior: 'smooth' });\n }\n }, [ethClientStep]);\n\n const handleSubmit = () => {\n if (workflow === WorkflowStep.SELECT_CLIENT) {\n dispatchWorkflowUpdate(WorkflowStep.GENERATE_KEY_PAIRS);\n }\n };\n\n if (workflow < WorkflowStep.SELECT_CLIENT) {\n return routeToCorrectWorkflowStep(workflow);\n }\n\n const title = formatMessage(\n {\n defaultMessage: `Choose {ethClientType} client`,\n description:\n '{ethClientType} injects \"execution\" or \"consensus\" depending on step',\n },\n {\n ethClientType:\n ethClientStep === 'execution'\n ? formatMessage({ defaultMessage: 'execution' })\n : formatMessage({ defaultMessage: 'consensus' }),\n }\n );\n\n return (\n \n \n
\n \n
\n
\n );\n};\n\nconst mapStateToProps = ({ workflow, client }: StoreState): StateProps => ({\n workflow,\n chosenClients: client,\n});\n\nconst mapDispatchToProps = (dispatch: Dispatch): DispatchProps => ({\n dispatchClientUpdate: (\n clientId: ClientId,\n ethClientType: 'execution' | 'consensus'\n ) => {\n dispatch(updateClient(clientId, ethClientType));\n },\n dispatchWorkflowUpdate: (step: WorkflowStep) => {\n dispatch(updateWorkflow(step));\n },\n});\n\nexport const SelectClientPage = connect<\n StateProps,\n DispatchProps,\n OwnProps,\n StoreState\n>(\n mapStateToProps,\n mapDispatchToProps\n)(_SelectClientPage);\n","import React from 'react';\nimport { Paper, PaperGroup } from '../../components/Paper';\nimport { Heading } from '../../components/Heading';\n\ninterface Props {\n title: string;\n children: any;\n}\n\nexport const AcknowledgementSection = ({ title, children }: Props) => {\n return (\n \n \n
\n \n {title}\n \n
\n
\n \n {children}\n \n
\n );\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { WorkflowPageTemplate } from '../../components/WorkflowPage/WorkflowPageTemplate';\nimport { AcknowledgementSection } from '../Summary/AcknowledgementSection';\nimport { Text } from '../../components/Text';\nimport { routesEnum } from '../../Routes';\nimport { Link as L } from '../../components/Link';\n\nconst Link = styled(L)`\n display: inline;\n text-decoration: underline !important;\n color: ${(p: { theme: any }) => p.theme.blueLight} !important;\n`;\n\nexport const WalletDisconnected = () => {\n const { formatMessage } = useIntl();\n const acknowledgementTitle = formatMessage({\n defaultMessage: 'Your wallet has disconnected',\n });\n\n const pageTitle = formatMessage({\n defaultMessage: 'Deposit summary',\n });\n return (\n \n \n \n \n {formatMessage({\n defaultMessage: 'reconnect your wallet',\n })}\n \n ),\n }}\n />\n \n \n \n );\n};\n","import React from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { AcknowledgementSection } from '../Summary/AcknowledgementSection';\nimport { Text } from '../../components/Text';\nimport { WorkflowPageTemplate } from '../../components/WorkflowPage/WorkflowPageTemplate';\nimport useIntlNetworkName from '../../hooks/useIntlNetworkName';\n\nexport const WrongNetwork = () => {\n const { formatMessage } = useIntl();\n const { executionLayerName } = useIntlNetworkName();\n\n const acknowledgementTitle = formatMessage({\n defaultMessage: 'Your network has changed',\n });\n\n const pageTitle = formatMessage({\n defaultMessage: 'Deposit summary',\n });\n return (\n \n \n \n \n \n \n \n );\n};\n","import styled from 'styled-components';\n\nexport const InfoBox = styled.div`\n border: 1px solid #ddd;\n padding: 12px 10px;\n width: 100%;\n background: ${p => p.theme.gray.lightest};\n`;\n","import React, { useState } from 'react';\nimport { Dispatch } from 'redux';\nimport { connect } from 'react-redux';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport BigNumber from 'bignumber.js';\nimport styled from 'styled-components';\nimport { Box, CheckBox } from 'grommet';\nimport { Alert as GrommetAlert } from 'grommet-icons';\nimport { useWeb3React } from '@web3-react/core';\nimport { Web3Provider } from '@ethersproject/providers';\nimport { DepositKeyInterface, StoreState } from '../../store/reducers';\nimport { web3ReactInterface } from '../ConnectWallet';\nimport { TARGET_NETWORK_CHAIN_ID } from '../ConnectWallet/web3Utils';\nimport { WorkflowPageTemplate } from '../../components/WorkflowPage/WorkflowPageTemplate';\nimport { WalletDisconnected } from '../ConnectWallet/WalletDisconnected';\nimport { WrongNetwork } from '../ConnectWallet/WrongNetwork';\nimport { Link } from '../../components/Link';\nimport { Button } from '../../components/Button';\nimport { routesEnum } from '../../Routes';\nimport { AcknowledgementSection } from './AcknowledgementSection';\nimport { Text } from '../../components/Text';\nimport { Code } from '../../components/Code';\nimport { Paper } from '../../components/Paper';\nimport { Heading } from '../../components/Heading';\nimport { InfoBox } from '../../components/InfoBox';\nimport {\n DispatchWorkflowUpdateType,\n updateWorkflow,\n WorkflowStep,\n} from '../../store/actions/workflowActions';\nimport {\n PRICE_PER_VALIDATOR,\n TICKER_NAME,\n DEPOSIT_CONTRACT_LINK,\n CONTRACT_ADDRESS,\n} from '../../utils/envVars';\nimport { Alert } from '../../components/Alert';\nimport { BeaconChainStatus } from '../../store/actions/depositFileActions';\nimport { routeToCorrectWorkflowStep } from '../../utils/RouteToCorrectWorkflowStep';\n\nconst AlertIcon = styled(p => )`\n display: block;\n margin: 1.3rem;\n`;\n\nconst Row = styled.div`\n display: flex;\n margin: 2rem 0rem;\n align-items: center;\n`;\n\nconst Container = styled.div`\n width: 100%;\n`;\n\n// This repo is such a mess i end up adding important here...\n// I dont want to spend a day fixing a padding\nconst PaddedButton = styled(Button)`\n padding: 40px 30px !important;\n`;\n\n// Prop definitions\ninterface OwnProps {}\ninterface StateProps {\n depositKeys: DepositKeyInterface[];\n workflow: WorkflowStep;\n beaconChainApiStatus: BeaconChainStatus;\n}\n\ninterface DispatchProps {\n dispatchWorkflowUpdate: DispatchWorkflowUpdateType;\n}\ntype Props = StateProps & DispatchProps & OwnProps;\n\nconst _SummaryPage = ({\n workflow,\n dispatchWorkflowUpdate,\n depositKeys,\n beaconChainApiStatus,\n}: Props): JSX.Element => {\n const [losePhrase, setLosePhrase] = useState(false);\n const [earlyAdopt, setEarlyAdopt] = useState(false);\n const [nonReverse, setNonReverse] = useState(false);\n const [noPhish, setNoPhish] = useState(false);\n const [duplicatesAcknowledged, setDuplicatesAcknowledged] = useState(false);\n const amountValidators = new BigNumber(depositKeys.length);\n const convertedPrice = new BigNumber(PRICE_PER_VALIDATOR);\n const { formatMessage } = useIntl();\n const allChecked = React.useMemo(\n () =>\n losePhrase &&\n earlyAdopt &&\n nonReverse &&\n noPhish &&\n duplicatesAcknowledged,\n [losePhrase, earlyAdopt, nonReverse, noPhish, duplicatesAcknowledged]\n );\n\n const { account, chainId, connector }: web3ReactInterface = useWeb3React<\n Web3Provider\n >();\n\n const handleSubmit = () => {\n if (workflow === WorkflowStep.SUMMARY) {\n dispatchWorkflowUpdate(WorkflowStep.TRANSACTION_SIGNING);\n }\n };\n\n if (workflow < WorkflowStep.SUMMARY) {\n return routeToCorrectWorkflowStep(workflow);\n }\n\n if (!account || !connector) return ;\n\n if (chainId !== TARGET_NETWORK_CHAIN_ID) return ;\n\n return (\n \n \n \n \n \n \n \n \n \n \n {amountValidators.toString()}\n \n \n \n \n \n \n {amountValidators.times(convertedPrice).toString()}\n {TICKER_NAME}\n \n \n \n \n \n setLosePhrase(e.target.checked)}\n checked={losePhrase}\n label={\n \n \n \n }\n />\n \n setEarlyAdopt(e.target.checked)}\n checked={earlyAdopt}\n label={\n \n \n \n }\n />\n \n \n setNonReverse(e.target.checked)}\n checked={nonReverse}\n label={\n \n \n \n }\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n setNoPhish(e.target.checked)}\n checked={noPhish}\n label={\n \n \n \n }\n />\n \n \n \n {beaconChainApiStatus === BeaconChainStatus.DOWN && (\n \n
\n \n \n \n \n
\n
\n )}\n\n \n \n {formatMessage({\n defaultMessage: 'You are responsible for this transaction!',\n })}\n \n ),\n eth: `${PRICE_PER_VALIDATOR} ${TICKER_NAME}`,\n }}\n />\n \n\n
    \n
  • \n \n deposit_data }}\n />\n \n
  • \n
  • \n \n deposit_data }}\n />\n \n
  • \n
\n \n setDuplicatesAcknowledged(e.target.checked)}\n checked={duplicatesAcknowledged}\n label={\n \n \n \n }\n />\n \n \n
\n \n \n \n \n \n \n
\n
\n );\n};\n\nconst mapStateToProps = ({\n depositFile,\n workflow,\n}: StoreState): StateProps => ({\n depositKeys: depositFile.keys,\n workflow,\n beaconChainApiStatus: depositFile.beaconChainApiStatus,\n});\n\nconst mapDispatchToProps = (dispatch: Dispatch): DispatchProps => ({\n dispatchWorkflowUpdate: (step: WorkflowStep) => {\n dispatch(updateWorkflow(step));\n },\n});\n\nexport const SummaryPage = connect<\n StateProps,\n DispatchProps,\n OwnProps,\n StoreState\n>(\n mapStateToProps,\n mapDispatchToProps\n)(_SummaryPage);\n","import { verify } from '@chainsafe/bls';\nimport { DepositKeyInterface } from '../store/reducers';\nimport { DOMAIN_DEPOSIT, EMPTY_ROOT, GENESIS_FORK_VERSION } from './envVars';\nimport { bufferHex, ForkData, SigningData } from './SSZ';\n\nconst computeForkDataRoot = (\n currentVersion: Uint8Array,\n genesisValidatorsRoot: Uint8Array\n): Uint8Array => {\n const forkData: ForkData = {\n currentVersion: currentVersion as Uint8Array,\n genesisValidatorsRoot,\n };\n return ForkData.hashTreeRoot(forkData);\n};\n\nconst computeDomain = (\n domainType: Buffer,\n forkVersion: Buffer | string = GENESIS_FORK_VERSION,\n genesisValidatorsRoot: Buffer = EMPTY_ROOT\n): Uint8Array => {\n const forkDataRoot = computeForkDataRoot(\n forkVersion as Uint8Array,\n genesisValidatorsRoot\n );\n const domain = new Uint8Array(32);\n domain.set(domainType);\n domain.set(forkDataRoot.subarray(0, 28), 4);\n return domain;\n};\n\nconst computeSigningRoot = (\n sszObjectRoot: Uint8Array,\n domain: Uint8Array\n): Uint8Array => {\n const signingData: SigningData = {\n objectRoot: sszObjectRoot,\n domain,\n };\n return SigningData.hashTreeRoot(signingData);\n};\n\n// Note: usage of this method requires awaiting the initBLS() method from \"@chainsafe/bls\";\nexport const verifySignature = (depositDatum: DepositKeyInterface): boolean => {\n const pubkeyBuffer = bufferHex(depositDatum.pubkey);\n const signatureBuffer = bufferHex(depositDatum.signature);\n const depositMessageBuffer = bufferHex(depositDatum.deposit_message_root);\n const domain = computeDomain(DOMAIN_DEPOSIT);\n const signingRoot = computeSigningRoot(depositMessageBuffer, domain);\n return verify(pubkeyBuffer, signingRoot, signatureBuffer);\n};\n","/*\n eslint-disable camelcase\n */\nimport _every from 'lodash/every';\nimport { initBLS } from '@chainsafe/bls';\nimport compareVersions from 'compare-versions';\nimport axios from 'axios';\nimport { verifySignature } from '../../utils/verifySignature';\nimport { verifyDepositRoots } from '../../utils/SSZ';\nimport {\n DepositKeyInterface,\n BeaconchainDepositInterface,\n} from '../../store/reducers';\nimport {\n LYXER_TO_GWEI,\n BEACONCHAIN_URL,\n MIN_DEPOSIT_AMOUNT,\n MIN_DEPOSIT_CLI_VERSION,\n} from '../../utils/envVars';\n\nconst validateFieldFormatting = (\n depositDatum: DepositKeyInterface\n): boolean => {\n // check existence of required keys\n if (\n !depositDatum.pubkey ||\n !depositDatum.withdrawal_credentials ||\n !depositDatum.amount ||\n !depositDatum.signature ||\n !depositDatum.deposit_message_root ||\n !depositDatum.deposit_data_root ||\n !depositDatum.fork_version ||\n !depositDatum.deposit_cli_version\n ) {\n return false;\n }\n\n // check type of values\n if (\n typeof depositDatum.pubkey !== 'string' ||\n typeof depositDatum.withdrawal_credentials !== 'string' ||\n typeof depositDatum.amount !== 'number' ||\n typeof depositDatum.signature !== 'string' ||\n typeof depositDatum.deposit_message_root !== 'string' ||\n typeof depositDatum.deposit_data_root !== 'string' ||\n typeof depositDatum.fork_version !== 'string' ||\n typeof depositDatum.deposit_cli_version !== 'string'\n ) {\n return false;\n }\n\n // check length of strings (note: using string length, so 1 byte = 2 chars)\n if (\n depositDatum.pubkey.length !== 96 ||\n depositDatum.withdrawal_credentials.length !== 64 ||\n depositDatum.signature.length !== 192 ||\n depositDatum.deposit_message_root.length !== 64 ||\n depositDatum.deposit_data_root.length !== 64 ||\n depositDatum.fork_version.length !== 8\n ) {\n return false;\n }\n\n // check the deposit amount\n if (\n depositDatum.amount < MIN_DEPOSIT_AMOUNT ||\n depositDatum.amount > 32 * LYXER_TO_GWEI\n ) {\n return false;\n }\n\n // check the deposit-cli version\n if (\n compareVersions.compare(\n depositDatum.deposit_cli_version,\n MIN_DEPOSIT_CLI_VERSION,\n '<'\n )\n ) {\n return false;\n }\n\n return true;\n};\n\nexport const validateDepositKey = async (\n files: DepositKeyInterface[]\n): Promise => {\n await initBLS();\n\n if (!Array.isArray(files)) return false;\n if (files.length <= 0) return false;\n\n const depositKeysStatuses: boolean[] = files.map(depositDatum => {\n if (!validateFieldFormatting(depositDatum)) {\n return false;\n }\n if (!verifyDepositRoots(depositDatum)) {\n return false;\n }\n return verifySignature(depositDatum);\n });\n return _every(depositKeysStatuses);\n};\n\nexport const getExistingDepositsForPubkeys = async (\n files: DepositKeyInterface[]\n): Promise => {\n const pubkeys = files.flatMap(x => x.pubkey);\n const beaconScanUrl = `${BEACONCHAIN_URL}/api/v1/validator/${pubkeys.join(\n ','\n )}/deposits`;\n const { data: beaconScanCheck } = await axios.get<\n BeaconchainDepositInterface\n >(beaconScanUrl);\n\n if (!beaconScanCheck.data || beaconScanCheck.status !== 'OK') {\n throw new Error('Beaconchain API is down');\n }\n return beaconScanCheck;\n};\n","import React from 'react';\nimport { Add, DocumentMissing, DocumentUpload } from 'grommet-icons';\nimport { colors } from '../../styles/styledComponentsTheme';\n\nexport const Svg = ({ children }: { children: any }) => (\n \n {children}\n \n);\n\nexport const Circle = ({\n animated,\n dashed,\n}: {\n animated?: boolean;\n dashed?: boolean;\n}) => (\n \n);\n\nexport const Check = () => (\n \n);\n\nexport const InvalidFileIcon = ({\n renderImmediately,\n}: {\n renderImmediately?: boolean;\n}) => (\n \n \n \n \n);\n\nexport const Plus = () => (\n \n);\n\nexport const FileIcon = () => (\n \n \n \n \n);\n","import React, { useMemo } from 'react';\nimport styled from 'styled-components';\nimport { colors } from '../../styles/styledComponentsTheme';\nimport { Check, Circle, FileIcon, Plus, Svg, InvalidFileIcon } from './Icons';\n\nconst Container = styled.div`\n .svg-container {\n width: 150px;\n height: 150px;\n margin: auto;\n display: block;\n }\n .circle {\n stroke-width: 1;\n stroke-miterlimit: 10;\n stroke: ${colors.blue.light};\n fill: none;\n }\n .circle-animated {\n stroke-dasharray: 166;\n stroke-dashoffset: 166;\n animation: stroke 0.6s cubic-bezier(0.65, 0, 0.45, 1) forwards;\n }\n .circle-dashed {\n stroke-dasharray: 3;\n }\n .check-animated {\n stroke: ${colors.green.medium};\n transform-origin: 50% 50%;\n stroke-dasharray: 48;\n stroke-dashoffset: 48;\n animation: stroke 0.3s cubic-bezier(0.65, 0, 0.45, 1) 0.4s forwards;\n }\n @keyframes stroke {\n 100% {\n stroke-dashoffset: 0;\n }\n }\n`;\n\ninterface Props {\n isDragAccept: boolean;\n isDragReject: boolean;\n isFileStaged: boolean;\n isDragActive: boolean;\n isFileAccepted: boolean;\n}\n\nexport const FileUploadAnimation = ({\n isDragAccept,\n isDragReject,\n isFileStaged,\n isDragActive,\n isFileAccepted,\n}: Props) => {\n const renderIcon = useMemo(() => {\n if (isFileStaged)\n return isFileAccepted ? : ;\n if (isDragAccept) return ;\n if (isDragReject || isFileAccepted) return ;\n return ;\n }, [isFileStaged, isFileAccepted, isDragReject, isDragAccept]);\n\n return (\n \n \n \n {renderIcon}\n \n \n );\n};\n","import React, { SyntheticEvent, useCallback, useMemo, useState } from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { Dispatch } from 'redux';\nimport { connect } from 'react-redux';\nimport styled from 'styled-components';\nimport { useDropzone } from 'react-dropzone';\nimport { Close } from 'grommet-icons';\nimport { WorkflowPageTemplate } from '../../components/WorkflowPage/WorkflowPageTemplate';\nimport { Paper } from '../../components/Paper';\nimport { Button } from '../../components/Button';\nimport { Text } from '../../components/Text';\nimport { routesEnum } from '../../Routes';\nimport { Link } from '../../components/Link';\nimport { Code } from '../../components/Code';\nimport {\n getExistingDepositsForPubkeys,\n validateDepositKey,\n} from './validateDepositKey';\nimport { DepositKeyInterface, StoreState } from '../../store/reducers';\nimport {\n DepositStatus,\n DispatchDepositFileNameUpdateType,\n DispatchDepositKeysUpdateType,\n DispatchDepositStatusUpdateType,\n DispatchBeaconChainAPIStatusUpdateType,\n TransactionStatus,\n updateDepositFileKeys,\n updateDepositFileName,\n updateDepositStatus,\n updateBeaconChainAPIStatus,\n BeaconChainStatus,\n} from '../../store/actions/depositFileActions';\nimport {\n DispatchWorkflowUpdateType,\n updateWorkflow,\n WorkflowStep,\n} from '../../store/actions/workflowActions';\nimport { FileUploadAnimation } from './FileUploadAnimation';\nimport { GENESIS_FORK_VERSION } from '../../utils/envVars';\nimport { routeToCorrectWorkflowStep } from '../../utils/RouteToCorrectWorkflowStep';\nimport useIntlNetworkName from '../../hooks/useIntlNetworkName';\n\nconst Container = styled(Paper)`\n margin: auto;\n display: flex;\n flex-direction: column;\n justify-content: space-around;\n`;\nconst Dropzone = styled.div`\n outline: none;\n :focus {\n outline: none;\n }\n border: 1px solid lightgray;\n width: 500px;\n margin: 20px auto auto;\n cursor: ${(p: { isFileAccepted: boolean; isFileStaged: boolean }) =>\n p.isFileAccepted || p.isFileStaged ? 'inherit' : 'pointer'};\n box-shadow: ${(p: { theme: any }) => `0 0 10px ${p.theme.gray.light}`};\n padding: 30px;\n border-radius: ${(p: { theme: any }) => p.theme.borderRadius};\n`;\n// @ts-ignore\n\nconst DeleteBtn = styled.span`\n cursor: pointer;\n padding: 3px;\n`;\n\ninterface OwnProps {}\ninterface StateProps {\n depositKeys: DepositKeyInterface[];\n workflow: WorkflowStep;\n depositFileName: string;\n}\ninterface DispatchProps {\n dispatchDepositFileKeyUpdate: DispatchDepositKeysUpdateType;\n dispatchWorkflowUpdate: DispatchWorkflowUpdateType;\n dispatchDepositFileNameUpdate: DispatchDepositFileNameUpdateType;\n dispatchDepositStatusUpdate: DispatchDepositStatusUpdateType;\n dispatchBeaconChainAPIStatusUpdate: DispatchBeaconChainAPIStatusUpdateType;\n}\ntype Props = StateProps & DispatchProps & OwnProps;\n\nconst _UploadValidatorPage = ({\n workflow,\n depositKeys,\n dispatchDepositFileKeyUpdate,\n depositFileName,\n dispatchDepositFileNameUpdate,\n dispatchWorkflowUpdate,\n dispatchDepositStatusUpdate,\n dispatchBeaconChainAPIStatusUpdate,\n}: Props): JSX.Element => {\n const { formatMessage } = useIntl();\n const { consensusLayerName } = useIntlNetworkName();\n const [isFileStaged, setIsFileStaged] = useState(depositKeys.length > 0);\n const [isFileAccepted, setIsFileAccepted] = useState(depositKeys.length > 0);\n const [fileError, setFileError] = useState(null);\n const {\n acceptedFiles, // all JSON files will pass this check (including BLS failures\n inputRef,\n } = useDropzone({\n accept: 'application/json',\n });\n\n const flushDropzoneCache = useCallback(() => {\n acceptedFiles.length = 0;\n acceptedFiles.splice(0, acceptedFiles.length);\n if (inputRef.current) {\n inputRef.current.value = '';\n }\n }, [acceptedFiles, inputRef]);\n\n const checkJsonStructure = (depositDataJson: { [field: string]: any }) => {\n return !!(\n depositDataJson.pubkey ||\n depositDataJson.withdrawal_credentials ||\n depositDataJson.amount ||\n depositDataJson.signature ||\n depositDataJson.deposit_message_root ||\n depositDataJson.deposit_data_root ||\n depositDataJson.fork_version\n );\n };\n\n const handleWrongNetwork = () => {\n setFileError(\n \n \n \n );\n };\n\n const handleSevereError = () => {\n setFileError(\n \n {depositFileName},\n }}\n />\n \n Open issue\n \n \n );\n };\n\n const onFileDrop = (jsonFiles: Array, rejectedFiles: Array) => {\n if (rejectedFiles?.length) {\n setFileError(\n <>\n \n \n );\n return;\n }\n\n // check if the file is JSON\n if (jsonFiles.length === 1) {\n setIsFileStaged(true); // unstaged via handleFileDelete\n setIsFileAccepted(true); // rejected if BLS check fails\n dispatchDepositFileNameUpdate(jsonFiles[0].name);\n const reader = new FileReader();\n reader.onload = async event => {\n if (event.target) {\n try {\n const fileData: any[] = JSON.parse(event.target.result as string);\n // perform BLS check\n if (await validateDepositKey(fileData as DepositKeyInterface[])) {\n // add valid files to redux\n dispatchDepositFileKeyUpdate(\n fileData.map((file: DepositKeyInterface) => ({\n ...file,\n transactionStatus: TransactionStatus.READY, // initialize each file with ready state for transaction\n depositStatus: DepositStatus.VERIFYING, // assign to verifying status until the pubkey is checked via beaconscan\n }))\n );\n\n // perform double deposit check\n try {\n const existingDeposits = await getExistingDepositsForPubkeys(\n fileData\n );\n const existingDepositPubkeys = existingDeposits.data.flatMap(\n x => x.publickey.substring(2)\n );\n (fileData as DepositKeyInterface[]).forEach(async file => {\n if (existingDepositPubkeys.includes(file.pubkey)) {\n dispatchDepositStatusUpdate(\n file.pubkey,\n DepositStatus.ALREADY_DEPOSITED\n );\n } else {\n dispatchDepositStatusUpdate(\n file.pubkey,\n DepositStatus.READY_FOR_DEPOSIT\n );\n }\n });\n } catch (error) {\n dispatchBeaconChainAPIStatusUpdate(BeaconChainStatus.DOWN);\n }\n } else {\n // file is JSON but did not pass BLS, so leave it \"staged\" but not \"accepted\"\n setIsFileAccepted(false);\n dispatchDepositFileKeyUpdate([]);\n flushDropzoneCache();\n\n // there are a couple special cases that can occur\n const { fork_version: forkVersion } = fileData[0] || {};\n const hasCorrectStructure = checkJsonStructure(fileData[0] || {});\n if (\n hasCorrectStructure &&\n forkVersion !== GENESIS_FORK_VERSION.toString()\n ) {\n // file doesn't match the correct network\n handleWrongNetwork();\n }\n }\n } catch (e) {\n // possible error example: json is invalid or empty so it cannot be parsed\n // TODO think about other possible errors here, and consider if we might want to set \"isFileStaged\"\n setIsFileAccepted(false);\n handleSevereError();\n dispatchDepositFileKeyUpdate([]);\n flushDropzoneCache();\n }\n }\n };\n reader.readAsText(jsonFiles[0]);\n }\n };\n\n function handleSubmit() {\n if (workflow === WorkflowStep.UPLOAD_VALIDATOR_FILE) {\n dispatchWorkflowUpdate(WorkflowStep.CONNECT_WALLET);\n }\n }\n\n const handleFileDelete = useCallback(\n (e: SyntheticEvent) => {\n e.preventDefault();\n dispatchDepositFileNameUpdate('');\n dispatchDepositFileKeyUpdate([]);\n setFileError(null);\n setIsFileStaged(false);\n setIsFileAccepted(false);\n flushDropzoneCache();\n },\n [\n dispatchDepositFileKeyUpdate,\n dispatchDepositFileNameUpdate,\n flushDropzoneCache,\n ]\n );\n\n const {\n isDragActive,\n isDragAccept,\n isDragReject,\n getRootProps,\n getInputProps,\n } = useDropzone({\n accept: 'application/json',\n noClick: isFileStaged || isFileAccepted,\n onDrop: onFileDrop,\n });\n\n const renderMessage = useMemo(() => {\n if (isDragReject && !isFileStaged) {\n return (\n
\n \n
\n );\n }\n\n if (isFileStaged || fileError) {\n return (\n
\n \n \n \n {fileError || (\n <>\n {isFileAccepted && {depositFileName}}\n {!isFileAccepted && (\n \n {depositFileName},\n }}\n />\n \n )}\n \n )}\n
\n );\n }\n\n return (\n
\n \n
\n );\n }, [\n isDragReject,\n isFileStaged,\n isFileAccepted,\n fileError,\n depositFileName,\n handleFileDelete,\n ]);\n\n if (workflow < WorkflowStep.UPLOAD_VALIDATOR_FILE) {\n return routeToCorrectWorkflowStep(workflow);\n }\n\n return (\n \n \n \n deposit_data-[timestamp].json,\n validatorKeys: ./validator_keys,\n }}\n />\n \n \n \n \n\n \n {renderMessage}\n \n \n \n
\n \n \n \n \n \n \n
\n
\n );\n};\n\n_UploadValidatorPage.displayName = 'UploadValidatorPage';\n\nconst mapStateToProps = (state: StoreState): StateProps => ({\n depositKeys: state.depositFile.keys,\n depositFileName: state.depositFile.name,\n workflow: state.workflow,\n});\n\nconst mapDispatchToProps = (dispatch: Dispatch): DispatchProps => ({\n dispatchDepositFileNameUpdate: name => dispatch(updateDepositFileName(name)),\n dispatchDepositStatusUpdate: (pubkey, depositStatus) =>\n dispatch(updateDepositStatus(pubkey, depositStatus)),\n dispatchDepositFileKeyUpdate: files => dispatch(updateDepositFileKeys(files)),\n dispatchWorkflowUpdate: step => dispatch(updateWorkflow(step)),\n dispatchBeaconChainAPIStatusUpdate: status =>\n dispatch(updateBeaconChainAPIStatus(status)),\n});\n\nexport const UploadValidatorPage = connect<\n StateProps,\n DispatchProps,\n OwnProps,\n StoreState\n>(\n mapStateToProps,\n mapDispatchToProps\n)(_UploadValidatorPage);\n","import React from 'react';\nimport styled from 'styled-components';\nimport _shuffle from 'lodash/shuffle';\nimport _sortBy from 'lodash/sortBy';\nimport { CheckBox } from 'grommet';\nimport { FormattedDate, FormattedMessage, useIntl } from 'react-intl';\nimport { FormNext } from 'grommet-icons';\nimport { Link } from '../../components/Link';\nimport { PageTemplate } from '../../components/PageTemplate';\nimport { Heading } from '../../components/Heading';\nimport { Text } from '../../components/Text';\nimport {\n BEACONCHAIN_URL,\n IS_MAINNET,\n TESTNET_LAUNCHPAD_URL,\n TESTNET_LAUNCHPAD_NAME,\n EL_TESTNET_NAME,\n TUTORIAL_URL,\n NETWORK_NAME,\n} from '../../utils/envVars';\nimport { ClientCard } from '../Congratulations/ClientCard';\nimport PrysmaticBg from '../../static/prysmatic-bg.png';\nimport LighthouseBg from '../../static/lighthouse-bg.png';\n// import NimbusBg from '../../static/nimbus-bg.png';\n// import TekuBg from '../../static/teku-bg.png';\n// import BesuBg from '../../static/besu-bg.png';\n// import NethermindBg from '../../static/nethermind-bg.png';\nimport ErigonBg from '../../static/erigon-bg.png';\nimport GethBg from '../../static/geth-bg.png';\nimport { routesEnum } from '../../Routes';\nimport { Code } from '../../components/Code';\nimport { Alert } from '../../components/Alert';\nimport useIntlNetworkName from '../../hooks/useIntlNetworkName';\n\nconst ChecklistPageStyles = styled.div`\n section {\n background-color: white;\n padding: 1rem;\n margin: 1rem;\n border-radius: 4px;\n > h3 {\n border-bottom: 1px solid lightgray;\n margin-bottom: 5px;\n }\n }\n label {\n padding: 1rem;\n }\n .sub-checklist-item {\n margin-top: -0.5rem;\n margin-left: 1.5rem;\n }\n .checkbox-label {\n margin-left: 0.5rem;\n }\n ul {\n padding-left: 0px;\n padding-top: 16px;\n }\n @media screen and (max-width: 1080px) {\n section {\n background-color: white;\n margin: 0px;\n padding: 16px;\n flex-wrap: wrap;\n }\n }\n`;\n\nconst CodeSnippet = styled.div`\n padding: 10px;\n font-family: Courier, sans-serif;\n font-size: 1em;\n line-height: 1.3;\n color: #fff;\n background-color: #597ea3;\n border-radius: 6px;\n margin: 10px 0;\n\n code {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n`;\n\nconst ClientContainer = styled.div`\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr));\n gap: 1rem;\n margin: 1.5rem 0 2.5rem;\n`;\n\nconst Subtitle = styled.p`\n font-size: 20px;\n margin-bottom: 32px;\n`;\n\nconst PortTable = styled.table`\n margin: 1rem auto;\n color: #212529;\n\n * {\n text-align: start;\n }\n\n th,\n td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n }\n\n thead th {\n vertical-align: bottom;\n }\n\n tbody + tbody {\n border-top: 2px solid #dee2e6;\n }\n`;\n\nconst ClientLayerContainer = styled.section`\n display: flex;\n`;\n\nconst SectionHeader = styled.div`\n margin: 3rem 0 1rem;\n padding: 1rem;\n box-sizing: border-box;\n border-radius: 4px;\n &:before {\n content: '';\n display: block;\n height: 3rem;\n margin-top: -3rem;\n visibility: hidden;\n }\n`;\n\nconst RainbowHeader = styled(SectionHeader as any)`\n margin: 3rem 1rem 1rem;\n background-image: ${p =>\n `linear-gradient(to right, ${p.theme.rainbowLight})`};\n`;\n\nconst CardContainer = styled.div`\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));\n gap: 1rem;\n @media only screen and (max-width: ${p => p.theme.screenSizes.medium}) {\n flex-direction: column;\n }\n`;\n\nconst Card = styled.div`\n padding: 24px;\n border: 1px solid ${p => p.theme.gray.dark};\n border-radius: 4px;\n width: 100%;\n background: white;\n display: flex;\n align-items: center;\n width: 100%;\n justify-content: space-between;\n @media only screen and (max-width: ${p => p.theme.screenSizes.medium}) {\n margin: 0px;\n margin-top: 16px;\n }\n\n &:hover {\n cursor: pointer;\n box-shadow: 0px 8px 17px rgba(0, 0, 0, 0.15);\n transition: transform 0.1s;\n transform: scale(1.02);\n }\n`;\n\nconst BoldGreen = styled.span`\n color: ${(p: { theme: any; fontSize: number }) => p.theme.green.dark};\n font-size: ${(p: { theme: any; fontSize: number }) => p.fontSize}px;\n font-weight: bold;\n`;\n\nconst StyledLink = styled(Link as any)`\n width: 100%;\n`;\n\nenum layerEnum {\n execution = 'execution',\n consensus = 'consensus',\n}\n\ninterface Client {\n header: string;\n text: string;\n imgUrl: any;\n url: routesEnum;\n linkText: string;\n layer: layerEnum;\n discord: string;\n defaultTcp: number;\n defaultUdp: number;\n jwtUrl: string;\n feeRecipientUrl?: string;\n metricsUrl?: string;\n}\n\nconst tutorialLinkBox = () => {\n if (TUTORIAL_URL !== null) {\n return (\n \n \n \n \n \n \n \n \n );\n }\n return null;\n};\n\nexport const Checklist = () => {\n const { formatMessage } = useIntl();\n const { consensusLayerName } = useIntlNetworkName();\n\n const defaultExecutionPorts: {\n defaultTcp: number;\n defaultUdp: number;\n } = {\n defaultTcp: 30303,\n defaultUdp: 30303,\n };\n\n const defaultConsensusPorts: {\n defaultTcp: number;\n defaultUdp: number;\n } = {\n defaultTcp: 9000,\n defaultUdp: 9000,\n };\n\n // TODO: re-enable clients\n const clientInfo: Client[] = _shuffle([\n // {\n // header: 'Besu',\n // text: formatMessage({\n // defaultMessage:\n // 'Hyperledger Besu is an open-source LUKSO client developed under the Apache 2.0 license and written in Java.',\n // }),\n // imgUrl: BesuBg,\n // url: routesEnum.besu,\n // linkText: formatMessage({\n // defaultMessage: 'Configure Besu',\n // }),\n // layer: layerEnum.execution,\n // discord: 'https://discord.gg/hyperledger',\n // ...defaultExecutionPorts,\n // jwtUrl:\n // 'https://besu.hyperledger.org/en/stable/public-networks/reference/cli/options/#engine-jwt-secret',\n // },\n // {\n // header: 'Nethermind',\n // text: formatMessage({\n // defaultMessage:\n // 'Nethermind is a robust client built on .NET core designed for performance, versatility and customizability.',\n // }),\n // imgUrl: NethermindBg,\n // url: routesEnum.nethermind,\n // linkText: formatMessage({\n // defaultMessage: 'Configure Nethermind',\n // }),\n // layer: layerEnum.execution,\n // discord: 'https://discord.gg/PaCMRFdvWT',\n // ...defaultExecutionPorts,\n // jwtUrl:\n // 'https://docs.nethermind.io/nethermind/first-steps-with-nethermind/running-nethermind-post-merge#jwt-secrets',\n // },\n {\n header: 'Erigon',\n text: formatMessage({\n defaultMessage:\n 'Erigon is an execution client on the efficiency frontier, written in Go.',\n }),\n imgUrl: ErigonBg,\n url: routesEnum.erigon,\n linkText: formatMessage({\n defaultMessage: 'Configure Erigon',\n }),\n layer: layerEnum.execution,\n discord: 'https://github.com/ledgerwatch/erigon#erigon-discord-server',\n ...defaultExecutionPorts,\n jwtUrl:\n 'https://github.com/ledgerwatch/erigon#beacon-chain-consensus-layer',\n },\n {\n header: 'Geth',\n text: formatMessage({\n defaultMessage:\n 'Geth is one of the three original implementations of the LUKSO protocol, written in Go.',\n }),\n imgUrl: GethBg,\n url: routesEnum.geth,\n linkText: formatMessage({\n defaultMessage: 'Configure Geth',\n }),\n layer: layerEnum.execution,\n discord: 'https://discord.gg/nthXNEv',\n ...defaultExecutionPorts,\n jwtUrl: 'https://geth.ethereum.org/docs/interface/consensus-clients',\n },\n {\n header: 'Lighthouse',\n text: formatMessage({\n defaultMessage:\n 'Lighthouse is a consensus client implementation, written in Rust with a heavy focus on speed and security.',\n }),\n imgUrl: LighthouseBg,\n url: routesEnum.lighthouse,\n linkText: formatMessage({\n defaultMessage: 'Configure Lighthouse',\n }),\n layer: layerEnum.consensus,\n discord: 'https://discord.gg/uC7TuaH',\n ...defaultConsensusPorts,\n jwtUrl:\n 'https://lighthouse-book.sigmaprime.io/merge-migration.html#connecting-to-an-execution-engine',\n feeRecipientUrl:\n 'https://lighthouse-book.sigmaprime.io/suggested-fee-recipient.html',\n metricsUrl: 'https://github.com/sigp/lighthouse-metrics',\n },\n // {\n // header: 'Nimbus',\n // text: formatMessage({\n // defaultMessage:\n // 'Nimbus is a research project and a consensus client implementation for LUKSO designed to perform well on embedded systems and personal mobile devices.',\n // }),\n // imgUrl: NimbusBg,\n // url: routesEnum.nimbus,\n // linkText: formatMessage({\n // defaultMessage: 'Configure Nimbus',\n // }),\n // layer: layerEnum.consensus,\n // discord: 'https://discord.gg/YbTCNat',\n // ...defaultConsensusPorts,\n // jwtUrl:\n // 'https://nimbus.guide/eth1.html#3-pass-the-url-and-jwt-secret-to-nimbus',\n // feeRecipientUrl: 'https://nimbus.guide/suggested-fee-recipient.html',\n // metricsUrl: 'https://nimbus.guide/metrics-pretty-pictures.html',\n // },\n {\n header: 'Prysm',\n text: formatMessage({\n defaultMessage:\n 'Prysm is a Go consensus client implementation of the LUKSO protocol with a focus on usability, security, and reliability.',\n }),\n imgUrl: PrysmaticBg,\n url: routesEnum.prysm,\n linkText: formatMessage({\n defaultMessage: 'Configure Prysm',\n }),\n layer: layerEnum.consensus,\n discord: 'https://discord.gg/z9efH7e',\n defaultTcp: 13000,\n defaultUdp: 12000,\n jwtUrl: 'https://docs.prylabs.network/docs/execution-node/authentication',\n feeRecipientUrl:\n 'https://docs.prylabs.network/docs/execution-node/fee-recipient',\n metricsUrl:\n 'https://docs.prylabs.network/docs/prysm-usage/monitoring/grafana-dashboard/',\n },\n // {\n // header: 'Teku',\n // text: formatMessage({\n // defaultMessage:\n // 'PegaSys Teku is a Java-based LUKSO consensus client built to meet institutional needs and security requirements.',\n // }),\n // imgUrl: TekuBg,\n // url: routesEnum.teku,\n // linkText: formatMessage({\n // defaultMessage: 'Configure Teku',\n // }),\n // layer: layerEnum.consensus,\n // discord: 'https://discord.gg/7hPv2T6',\n // ...defaultConsensusPorts,\n // jwtUrl: 'https://docs.prylabs.network/docs/execution-node/authentication',\n // feeRecipientUrl:\n // 'https://docs.teku.consensys.net/en/latest/HowTo/Prepare-for-The-Merge/#configure-the-fee-recipient',\n // metricsUrl:\n // 'https://docs.teku.consensys.net/en/latest/HowTo/Monitor/Metrics/',\n // },\n ]);\n\n return (\n \n
\n \n \n \n \n Discord\n \n ),\n reddit: (\n \n Reddit\n \n ),\n }}\n description=\"{variables} are social media platform links to Discord and Reddit (do not translate names)\"\n />\n \n \n \n \n \n
\n \n \n \n \n \n \n
\n \n
\n
\n \n \n
\n \n \n \n \n \n \n
\n \n
\n
\n \n \n
\n \n \n \n \n \n \n
\n \n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n
    \n
  • \n \n \n \n \n ),\n consensusClient: (\n \n \n \n ),\n }}\n description=\"{executionLayer} is a link labeled 'execution client'. {consensusLayer} is a link labeled 'consensus client'\"\n />\n \n
  • \n
  • \n \n \n \n
  • \n
  • \n \n \n ),\n }}\n />\n \n
  • \n
  • \n \n \n \n
  • \n
  • \n \n \n \n
  • \n
\n
\n
\n \n \n \n
    \n
  • \n \n \n \n
  • \n
  • \n \n \n \n
  • \n
\n
\n
\n \n \n \n
    \n
  • \n \n \n \n
  • \n
  • \n \n \n \n
  • \n
  • \n \n \n \n
  • \n
\n \n \n \n
    \n
  • \n \n {' '}\n \n \n \n \n
  • \n
  • \n \n \n \n
  • \n
\n
\n \n \n \n \n \n \n \n \n
\n \n \n \n
    \n
  • \n \n \n \n
  • \n
  • \n \n \n \n
  • \n
\n
\n
\n \n \n \n\n \n \n \n }\n />\n \n \n \n }\n />\n \n \n \n }\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n {clientInfo\n .filter(({ layer }) => layer === layerEnum.execution)\n .sort((a, b) => b.defaultTcp - a.defaultTcp)\n .map(({ header, defaultTcp, defaultUdp }) => (\n \n {header}\n \n {defaultTcp === defaultUdp\n ? `${defaultUdp} TCP/UDP`\n : `${defaultTcp} TCP, ${defaultUdp} UDP`}\n \n \n ))}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {clientInfo\n .filter(({ layer }) => layer === layerEnum.consensus)\n .map(({ header, defaultTcp, defaultUdp }) => (\n \n {header}\n \n {defaultTcp === defaultUdp\n ? `${defaultUdp} TCP/UDP`\n : `${defaultTcp} TCP, ${defaultUdp} UDP`}\n \n \n ))}\n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n
    \n
  • \n \n \n \n \n timedatectl\n \n
  • \n
  • \n \n NTP Service,\n code2: active,\n }}\n description=\"{code} values are terminal outputs to look for, should not translate\"\n />\n \n
  • \n
  • \n \n Local time,\n code2: Time zone,\n code3: Universal time,\n }}\n description=\"{code} values are terminal outputs to look for to confirm system time\"\n />\n \n
  • \n
  • \n \n NTP Service,\n code2: active,\n code3: (\n \n sudo timedatectl set-ntp on\n \n ),\n }}\n description=\"{code} values are terminal outputs and commands.\"\n />\n \n
  • \n
  • \n \n Failed to set ntp: NTP not supported,\n code2: chrony,\n code3: ntp,\n }}\n description=\"{code} values are terminal outputs and commands.\"\n />\n \n
  • \n
  • \n \n \n \n
  • \n
\n \n \n \n }\n />\n
    \n
  • \n \n \n \n
  • \n
\n
\n \n \n \n \n \n \n {' '}\n \n {TESTNET_LAUNCHPAD_NAME}\n \n \n \n
\n \n \n \n \n \n \n \n {clientInfo\n .filter(({ layer }) => layer === layerEnum.execution)\n .map(client => (\n \n ))}\n \n \n \n \n \n \n \n \n \n \n \n ) : (\n EL_TESTNET_NAME\n ),\n }}\n />\n \n }\n />\n \n \n \n \n \n \n }\n />\n \n \n \n {' '}\n {clientInfo\n .filter(\n ({ discord, layer }) =>\n !!discord && layer === layerEnum.execution\n )\n .map(({ header, discord }, idx) => (\n \n {idx !== 0 && ' | '}\n \n {header}\n \n \n ))}\n \n
\n
\n \n \n \n \n {clientInfo\n .filter(({ layer }) => layer === layerEnum.consensus)\n .map(client => (\n \n ))}\n \n {tutorialLinkBox()}\n \n \n \n \n \n \n {formatMessage({\n defaultMessage: 'More on slashing risks',\n })}\n \n ),\n }}\n />\n \n \n \n \n {formatMessage({\n defaultMessage: 'latest stable software release',\n })}\n \n ),\n }}\n description=\"{latestReleased} = 'latest stable software release', being styled in bold\"\n />\n \n }\n />\n \n \n \n \n \n \n }\n />\n \n \n \n {' '}\n {clientInfo\n .filter(\n ({ discord, layer }) =>\n !!discord && layer === layerEnum.consensus\n )\n .map(({ header, discord }, idx) => (\n \n {idx !== 0 && ' | '}\n \n {header}\n \n \n ))}\n \n
\n
\n \n \n \n \n \n \n \n ),\n }}\n />\n \n \n \n \n \n ),\n }}\n />\n \n \n \n \n {' '}\n {_sortBy(clientInfo, 'header')\n .filter(({ layer }) => layer === layerEnum.consensus)\n .map(({ header, jwtUrl }, idx) => (\n \n {idx !== 0 && ' | '}\n \n {header}\n \n \n ))}\n \n \n \n \n {' '}\n {_sortBy(clientInfo, 'header')\n .filter(({ layer }) => layer === layerEnum.execution)\n .map(({ header, jwtUrl }, idx) => (\n \n {idx !== 0 && ' | '}\n \n {header}\n \n \n ))}\n \n \n \n \n }\n />\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {' '}\n {_sortBy(clientInfo, 'header')\n .filter(\n ({ layer, feeRecipientUrl }) =>\n layer === layerEnum.consensus && !!feeRecipientUrl\n )\n .map(({ header, feeRecipientUrl }, idx) => (\n <>\n \n {idx !== 0 && ' | '}\n \n {header}\n \n \n \n ))}\n \n \n \n \n }\n />\n
\n
\n \n \n \n \n \n \n \n \n \n }\n />\n
    \n
  • \n \n \n \n \n \n {`curl -H \"Content-Type: application/json\" -X POST --data '{\"jsonrpc\":\"2.0\",\"method\":\"web3_clientVersion\",\"params\":[],\"id\":67}' http://:8545`}\n \n \n
  • \n
\n \n \n \n }\n />\n
    \n
  • \n \n \n \n
  • \n
\n
\n
\n \n \n \n \n \n \n \n \n \n }\n />\n \n \n {formatMessage({\n defaultMessage:\n 'only stored on one validator machine.',\n })}\n \n ),\n }}\n description=\"{boldCaution} is states 'only stored on one validator machine', a bolded caution statement to users\"\n />\n \n }\n />\n \n \n \n }\n />\n
\n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n {' '}\n {_sortBy(clientInfo, 'header')\n .filter(({ metricsUrl }) => !!metricsUrl)\n .map(({ header, metricsUrl }, idx) => (\n \n {idx !== 0 && ' | '}\n \n {header}\n \n \n ))}\n \n \n \n \n Prometheus\n \n ),\n }}\n description=\"{prometheus} is 'Prometheus' service, with link to its homepage (do not translate name)\"\n />\n \n }\n />\n \n \n Grafana\n \n ),\n }}\n description=\"{grafana} is 'Grafana' service, with link to its homepage (do not translate name)\"\n />\n \n }\n />\n \n \n \n }\n />\n
\n
\n \n \n \n \n \n \n \n \n \n }\n />\n \n \n \n }\n />\n \n \n \n }\n />\n \n \n \n }\n />\n
\n
\n \n \n \n
    \n
  • \n \n \n \n
  • \n
  • \n \n \n \n
  • \n
\n
\n
\n \n \n {' '}\n \n \n Beaconcha.in\n \n ),\n }}\n description=\"{variables} are Consensus Chain block explorers, with links to each (do not translate names)\"\n />\n \n \n \n \n }\n />\n
\n \n \n Discord\n \n ),\n reddit: (\n \n Reddit\n \n ),\n }}\n description=\"{variables} social media platform links to Discord and Reddit (do not translate names)\"\n />\n \n
\n \n );\n};\n","import React from 'react';\nimport { Dispatch } from 'redux';\nimport { useWeb3React } from '@web3-react/core';\nimport { Web3Provider } from '@ethersproject/providers';\nimport { connect } from 'react-redux';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { AbstractConnector } from '@web3-react/abstract-connector';\nimport _every from 'lodash/every';\nimport _some from 'lodash/some';\nimport { DepositKeyInterface, StoreState } from '../../store/reducers';\nimport { Heading } from '../../components/Heading';\nimport { Paper } from '../../components/Paper';\nimport { Text } from '../../components/Text';\nimport { Button } from '../../components/Button';\nimport { Link } from '../../components/Link';\nimport { routesEnum } from '../../Routes';\nimport { KeyList } from './Keylist';\nimport { handleMultipleTransactions } from './transactionUtils';\nimport { TARGET_NETWORK_CHAIN_ID } from '../ConnectWallet/web3Utils';\nimport { web3ReactInterface } from '../ConnectWallet';\nimport { WalletDisconnected } from '../ConnectWallet/WalletDisconnected';\nimport { WrongNetwork } from '../ConnectWallet/WrongNetwork';\nimport { WorkflowPageTemplate } from '../../components/WorkflowPage/WorkflowPageTemplate';\nimport {\n DepositStatus,\n DispatchTransactionStatusUpdateType,\n TransactionStatus,\n updateTransactionStatus,\n} from '../../store/actions/depositFileActions';\nimport {\n DispatchWorkflowUpdateType,\n updateWorkflow,\n WorkflowStep,\n} from '../../store/actions/workflowActions';\nimport { routeToCorrectWorkflowStep } from '../../utils/RouteToCorrectWorkflowStep';\n\n// Prop definitions\ninterface OwnProps {}\ninterface StateProps {\n depositKeys: DepositKeyInterface[];\n workflow: WorkflowStep;\n}\ninterface DispatchProps {\n dispatchTransactionStatusUpdate: DispatchTransactionStatusUpdateType;\n dispatchWorkflowUpdate: DispatchWorkflowUpdateType;\n}\ntype Props = StateProps & DispatchProps & OwnProps;\n\nconst _TransactionsPage = ({\n depositKeys,\n workflow,\n dispatchTransactionStatusUpdate,\n dispatchWorkflowUpdate,\n}: Props): JSX.Element => {\n const { formatMessage } = useIntl();\n const { account, chainId, connector }: web3ReactInterface = useWeb3React<\n Web3Provider\n >();\n\n const totalTxCount = depositKeys.filter(\n key => key.depositStatus !== DepositStatus.ALREADY_DEPOSITED\n ).length;\n\n const remainingTxCount = depositKeys.filter(\n file =>\n file.depositStatus !== DepositStatus.ALREADY_DEPOSITED &&\n (file.transactionStatus === TransactionStatus.READY ||\n file.transactionStatus === TransactionStatus.REJECTED)\n ).length;\n\n const allTxConfirmed = _every(\n depositKeys.map(\n file => file.transactionStatus === TransactionStatus.SUCCEEDED\n )\n );\n\n const oneTxConfirmed = _some(\n depositKeys.map(\n file => file.transactionStatus === TransactionStatus.SUCCEEDED\n )\n );\n\n const createButtonText = (): string => {\n if (totalTxCount === 1) {\n return formatMessage({ defaultMessage: 'Send deposit' });\n }\n if (totalTxCount === remainingTxCount && totalTxCount > 0) {\n return formatMessage(\n {\n defaultMessage: `Send all {totalTxCount} deposits`,\n },\n { totalTxCount }\n );\n }\n if (remainingTxCount > 1) {\n return formatMessage(\n {\n defaultMessage: `Send remaining {remainingTxCount} deposits`,\n },\n { remainingTxCount }\n );\n }\n if (remainingTxCount === 1) {\n return formatMessage({ defaultMessage: `Send last deposit` });\n }\n return formatMessage({ defaultMessage: 'No pending deposits' });\n };\n\n const createContinueButtonText = (): string => {\n if (!oneTxConfirmed) {\n return formatMessage({ defaultMessage: 'Continue' });\n }\n return allTxConfirmed\n ? formatMessage({ defaultMessage: 'Continue' })\n : formatMessage({\n defaultMessage: 'Continue without all transactions confirmed',\n });\n };\n\n const handleAllTransactionsClick = () => {\n handleMultipleTransactions(\n depositKeys.filter(\n key => key.depositStatus !== DepositStatus.ALREADY_DEPOSITED\n ),\n connector as AbstractConnector,\n account,\n dispatchTransactionStatusUpdate\n );\n };\n\n const handleSubmit = () => {\n if (workflow === WorkflowStep.TRANSACTION_SIGNING) {\n dispatchWorkflowUpdate(WorkflowStep.CONGRATULATIONS);\n }\n };\n\n if (workflow < WorkflowStep.TRANSACTION_SIGNING) {\n return routeToCorrectWorkflowStep(workflow);\n }\n\n if (!account || !connector) return ;\n\n if (chainId !== TARGET_NETWORK_CHAIN_ID) return ;\n\n return (\n \n \n \n {depositKeys.length === 1 ? (\n \n ) : (\n \n )}\n \n {depositKeys.length === 1 && (\n \n \n \n )}\n {depositKeys.length > 1 && (\n <>\n \n \n \n \n \n \n \n )}\n {depositKeys.length >= 1 && }\n
\n \n
\n
\n\n
\n \n \n \n \n \n \n
\n \n );\n};\n\nconst mapStateToProps = ({\n depositFile,\n workflow,\n}: StoreState): StateProps => ({\n depositKeys: depositFile.keys,\n workflow,\n});\n\nconst mapDispatchToProps = (dispatch: Dispatch): DispatchProps => ({\n dispatchWorkflowUpdate: step => dispatch(updateWorkflow(step)),\n dispatchTransactionStatusUpdate: (pubkey, status, txHash) =>\n dispatch(updateTransactionStatus(pubkey, status, txHash)),\n});\n\nexport const TransactionsPage = connect<\n StateProps,\n DispatchProps,\n OwnProps,\n StoreState\n>(\n mapStateToProps,\n mapDispatchToProps\n)(_TransactionsPage);\n","import React from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { HashLink as Anchor } from 'react-router-hash-link';\nimport styled from 'styled-components';\nimport { Link } from '../../components/Link';\nimport { PageTemplate } from '../../components/PageTemplate';\nimport { Heading } from '../../components/Heading';\nimport { Text } from '../../components/Text';\nimport { PRICE_PER_VALIDATOR } from '../../utils/envVars';\n\nconst FAQStyles = styled.div`\n section {\n margin-top: 30px;\n }\n a {\n text-decoration: none;\n }\n`;\n\nconst BlockQuote = styled.div`\n margin-top: 10px;\n padding-left: 20px;\n border-left: 5px solid lightgray;\n`;\n\nconst SectionTitle = styled(Heading)`\n margin-top: 30px;\n border-bottom: 1px solid lightgray;\n padding-bottom: 10px;\n`;\n\nexport const FAQ = () => {\n const { formatMessage } = useIntl();\n return (\n \n \n
\n \n \n \n \n \n\n
\n \n \n \n \n \n \n \n ),\n }}\n />\n \n
\n
\n \n \n \n \n \n \n \n ),\n }}\n />\n \n
\n
\n \n \n \n \n \n \n \n ),\n }}\n />\n \n
\n
\n \n \n \n \n {PRICE_PER_VALIDATOR} LYX,\n initialAndMaximum: (\n \n \n \n ),\n }}\n />\n \n
\n
\n \n \n \n \n \n \n \n \n effective balance\n \n ),\n }}\n />\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n ),\n consensusLayer: (\n \n \n \n ),\n }}\n description=\"{executionLayer} is a link labeled 'execution layer'. {consensusLayer} is a link labeled 'consensus layer'\"\n />\n \n
\n
\n
\n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n \n {formatMessage({ defaultMessage: 'slashings' })}\n \n ),\n }}\n description=\"{slashings} shows 'slashings' in bold for emphasis\"\n />\n
  • \n
\n \n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n ),\n }}\n />\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n {formatMessage({ defaultMessage: 'effective balance' })}\n \n ),\n article: (\n \n {formatMessage({\n defaultMessage:\n 'understanding validator effective balance',\n })}\n \n ),\n }}\n description=\"{effectiveBalance} shows 'effective balance' in bold. {article}\n shows 'excellent post' and links to an article.\"\n />\n \n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n {formatMessage({\n defaultMessage: 'impact of effective balance',\n })}\n \n ),\n }}\n description=\"{impact} shows 'impact of effective balance' and links to article on 'Effective Balance'\"\n />\n \n
    \n
  1. \n \n \n {formatMessage({\n defaultMessage: 'This is the expected scenario.',\n })}\n \n ),\n }}\n description=\"{expected} shows 'This is the expected scenario' and is bolded for emphasis\"\n />\n \n
  2. \n
  3. \n \n \n {formatMessage({\n defaultMessage:\n 'This scenario is very extreme and unlikely to happen.',\n })}\n \n ),\n }}\n description=\"{strongText} shows 'This scenario is very extreme and unlikely to happen' and is bolded for emphasis\"\n />\n \n
  4. \n
\n
\n \n \n \n
\n
\n
\n \n \n \n \n \n {formatMessage({ defaultMessage: 'greater than 50%' })}\n \n ),\n }}\n description=\"{greater than 50%} shows 'greater than 50%' and is a link to validator incentives article\"\n />\n \n \n \n \n
\n
\n \n \n \n \n \n \n \n \n {formatMessage({\n defaultMessage:\n 'this number increases if other validators are slashed at the same time',\n })}\n \n ),\n }}\n description=\"{strongText} is a warning, bolded for emphasis\"\n />\n \n \n \n \n
\n
\n \n \n \n \n \n \n \n \n \n
\n
\n
\n \n \n \n \n \n
\n \n \n \n \n \n \n \n ),\n }}\n />\n \n
    \n
  1. \n \n \n {formatMessage({\n defaultMessage: 'withdrawal key',\n })}\n \n ),\n eip2334: (\n \n EIP2334\n \n ),\n }}\n />\n \n
  2. \n
  3. \n \n \n {' '}\n {`--eth1_withdrawal_address `}{' '}\n \n ),\n boldWarning: (\n \n {formatMessage({\n defaultMessage:\n 'Please ensure that you have control over the keys to this address.',\n })}\n \n ),\n }}\n />\n \n
  4. \n
\n
\n \n \n \n \n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n
\n \n \n EIP2334\n \n ),\n strongText: (\n \n {formatMessage({\n defaultMessage:\n 'you can always recalculate your signing key from your withdrawal key',\n })}\n \n ),\n }}\n description=\"{eip2334} shows 'EIP2334' and links to EIP documentation. {strongText} is important information bolded for emphasis\"\n />\n \n
\n \n \n \n
\n \n \n \n
\n
\n
\n \n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n \n \n \n \n \n
\n \n \n \n \n \n Discord\n \n ),\n reddit: (\n \n Reddit\n \n ),\n }}\n description=\"{discord} and {reddit} are links to EthStaker forums on Discord and Reddit respectively\"\n />\n \n
\n
\n
\n \n );\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport { PageTemplate } from '../../components/PageTemplate';\nimport { Heading } from '../../components/Heading';\nimport { Text } from '../../components/Text';\nimport { Link } from '../../components/Link';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { PRICE_PER_VALIDATOR } from '../../utils/envVars';\n\nconst SectionTitle = styled(Heading)`\n margin-top: 30px;\n border-bottom: 1px solid lightgray;\n padding-bottom: 10px;\n`;\n\nexport const Phishing = () => {\n const { formatMessage } = useIntl();\n return (\n \n \n \n \n
\n \n \n \n
    \n
  • \n \n \n \n
  • \n
  • \n \n \n \n
  • \n
  • \n \n \n \n
  • \n
\n
\n
\n \n \n \n \n \n \n
    \n
  • \n \n \n lukso.network\n \n ),\n }}\n description=\"{luksonetwork} is a link to deposit contract page on lukso.network\"\n />\n \n
  • \n
  • \n \n \n {/* \n lukso.network\n */}\n \n
      \n
    • \n \n \n \n
    • \n
    • \n \n \n \n
    • \n
    • \n \n \n \n
    • \n
    • \n \n \n \n
    • \n
    \n
  • \n
  • \n \n \n \n
      \n
    • \n \n \n \n
    • \n
    \n
  • \n
\n \n \n \n
    \n
  • \n \n \n \n
  • \n
  • \n \n \n \n
  • \n
  • \n \n \n \n
  • \n
\n
\n
\n );\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Text } from '../../components/Text';\nimport { Link } from '../../components/Link';\n\nconst Container = styled.div`\n background-color: white;\n box-shadow: -1px 2px 4px rgba(238, 238, 238, 0.5),\n -1px 2px 2px rgba(222, 222, 222, 0.5);\n max-width: 250px;\n border-radius: 5px;\n\n .sub-container {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n height: calc(100% - 125px); // image-height\n padding: 20px;\n }\n`;\n\nconst HeroImg = styled.img`\n width: 100%;\n max-height: 125px;\n border-radius: 5px 5px 0 0;\n`;\n\ninterface Props {\n imgUrl: any;\n header: string | React.ReactElement;\n text: string | React.ReactElement;\n className?: string;\n url: string;\n linkText: string;\n}\n\nexport const ClientCard = ({\n imgUrl,\n header,\n text,\n className,\n url,\n linkText,\n}: Props) => {\n return (\n \n \n \n
\n
\n {header}\n \n {text}\n \n
\n \n {linkText}\n \n
\n
\n \n );\n};\n","import React, { FunctionComponent } from 'react';\nimport { Helmet } from 'react-helmet';\nimport { Route, Switch, withRouter } from 'react-router-dom';\nimport { useIntl } from 'react-intl';\nimport { supportedLanguages } from './intl';\nimport {\n AcknowledgementPage,\n CongratulationsPage,\n ConnectWalletPage,\n SelectClientPage,\n GenerateKeysPage,\n LandingPage,\n NotFoundPage,\n SummaryPage,\n UploadValidatorPage,\n TransactionsPage,\n FAQ,\n Phishing,\n Checklist,\n TermsOfService,\n Languages,\n TopUpPage,\n} from './pages';\nimport ScrollToTop from './utils/ScrollToTop';\nimport { Prysm } from './pages/Clients/Consensus/Prysm';\nimport { Teku } from './pages/Clients/Consensus/Teku';\nimport { Nimbus } from './pages/Clients/Consensus/Nimbus';\nimport { Lighthouse } from './pages/Clients/Consensus/Lighthouse';\nimport { Besu } from './pages/Clients/Execution/Besu';\nimport { Nethermind } from './pages/Clients/Execution/Nethermind';\nimport { Erigon } from './pages/Clients/Execution/Erigon';\nimport { Geth } from './pages/Clients/Execution/Geth';\n\ntype RouteType = {\n path: string;\n component: FunctionComponent;\n exact?: boolean;\n};\n\nexport enum routesEnum {\n termsOfServicePage = '/terms-of-service',\n congratulationsPage = '/congratulations',\n connectWalletPage = '/connect-wallet',\n generateKeysPage = '/generate-keys',\n acknowledgementPage = '/overview',\n selectClient = '/select-client',\n summaryPage = '/summary',\n uploadValidatorPage = '/upload-deposit-data',\n transactionsPage = '/transactions',\n FaqPage = '/faq',\n besu = '/besu',\n erigon = '/erigon',\n geth = '/geth',\n lighthouse = '/lighthouse',\n nethermind = '/nethermind',\n nimbus = '/nimbus',\n prysm = '/prysm',\n teku = '/teku',\n phishingPage = '/phishing',\n checklistPage = '/checklist',\n topUpPage = '/top-up',\n landingPage = '/',\n notFoundPage = '/*',\n languagesPage = '/languages',\n}\nconst routes: RouteType[] = [\n {\n path: routesEnum.termsOfServicePage,\n exact: true,\n component: TermsOfService,\n },\n {\n path: routesEnum.congratulationsPage,\n exact: true,\n component: CongratulationsPage,\n },\n {\n path: routesEnum.connectWalletPage,\n exact: true,\n component: ConnectWalletPage,\n },\n {\n path: routesEnum.selectClient,\n exact: true,\n component: SelectClientPage,\n },\n {\n path: routesEnum.generateKeysPage,\n exact: true,\n component: GenerateKeysPage,\n },\n {\n path: routesEnum.acknowledgementPage,\n exact: true,\n component: AcknowledgementPage,\n },\n { path: routesEnum.summaryPage, exact: true, component: SummaryPage },\n {\n path: routesEnum.uploadValidatorPage,\n exact: true,\n component: UploadValidatorPage,\n },\n {\n path: routesEnum.transactionsPage,\n exact: true,\n component: TransactionsPage,\n },\n {\n path: routesEnum.FaqPage,\n exact: true,\n component: FAQ,\n },\n {\n path: routesEnum.besu,\n exact: true,\n component: Besu,\n },\n {\n path: routesEnum.erigon,\n exact: true,\n component: Erigon,\n },\n {\n path: routesEnum.geth,\n exact: true,\n component: Geth,\n },\n {\n path: routesEnum.lighthouse,\n exact: true,\n component: Lighthouse,\n },\n {\n path: routesEnum.nethermind,\n exact: true,\n component: Nethermind,\n },\n {\n path: routesEnum.nimbus,\n exact: true,\n component: Nimbus,\n },\n {\n path: routesEnum.prysm,\n exact: true,\n component: Prysm,\n },\n {\n path: routesEnum.teku,\n exact: true,\n component: Teku,\n },\n {\n path: routesEnum.phishingPage,\n exact: true,\n component: Phishing,\n },\n {\n path: routesEnum.checklistPage,\n exact: true,\n component: Checklist,\n },\n {\n path: routesEnum.languagesPage,\n exact: true,\n component: Languages,\n },\n {\n path: routesEnum.topUpPage,\n exact: true,\n component: TopUpPage,\n },\n { path: routesEnum.landingPage, exact: true, component: LandingPage },\n // NOTE: this wildcard route must be the last index of the routes array\n { path: routesEnum.notFoundPage, component: NotFoundPage },\n];\n\nconst localizeRoutes = (locale: String, routes: RouteType[]) => {\n return routes.map(route => {\n const languagePath = route.path.split('/')[1];\n const routeHasLangPath = supportedLanguages.includes(languagePath);\n if (routeHasLangPath || route.path === '/*') {\n return route;\n }\n const localizedRoute: RouteType = {\n path: `/${locale}${route.path}`,\n exact: route.exact,\n component: route.component,\n };\n return localizedRoute;\n });\n};\n\nconst _Routes = () => {\n const { locale, formatMessage } = useIntl();\n const localizedRoutes = localizeRoutes(locale, routes);\n\n const title = formatMessage({ defaultMessage: 'Staking Launchpad' });\n const description = formatMessage({\n defaultMessage: 'Become a validator and help secure the future of LUKSO.',\n });\n return (\n <>\n \n \n \n {title}\n \n \n \n \n \n \n \n {localizedRoutes.map((route: RouteType) => (\n window.scrollTo(0, 0)}\n {...route}\n key={route.path}\n />\n ))}\n \n \n \n );\n};\n\nexport const Routes = withRouter(_Routes);\n","import React from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport styled from 'styled-components';\nimport { Link } from '../../components/Link';\nimport { PageTemplate } from '../../components/PageTemplate';\nimport { supportedLanguages } from '../../intl';\n\nconst LangContainer = styled.div`\n margin-top: 2rem;\n margin-bottom: 2rem;\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n`;\n\nconst LangItem = styled(Link)`\n text-decoration: none;\n margin: 1rem 1rem 1rem 0;\n padding: 1rem;\n width: 240px;\n list-style: none;\n border-radius: 2px;\n border: 1px solid #000000;\n &:hover {\n border-radius: 4px;\n box-shadow: 0px 8px 17px rgba(0, 0, 0, 0.15);\n background-image: ${p => `linear-gradient(to right, ${p.theme.rainbow})`};\n transition: transform 0.1s;\n transform: scale(1.02);\n }\n @media only screen and (max-width: ${p => p.theme.screenSizes.medium}) {\n width: 100%;\n }\n`;\n\nconst ContentContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: space-between;\n`;\n\nconst LangTitle = styled.div`\n font-size: 24px;\n`;\n\nconst Lang = styled.div`\n font-size: 20px;\n margin-top: 1rem;\n`;\n\nexport const Languages = () => {\n const { formatMessage } = useIntl();\n const langs = [\n {\n code: 'ar',\n title: formatMessage({ defaultMessage: 'Arabic' }),\n language: 'العربية',\n },\n {\n code: 'bg',\n title: formatMessage({ defaultMessage: 'Bulgarian' }),\n language: 'Български',\n },\n {\n code: 'cs',\n title: formatMessage({ defaultMessage: 'Czech' }),\n language: 'čeština',\n },\n {\n code: 'de',\n title: formatMessage({ defaultMessage: 'German' }),\n language: 'Deutsch',\n },\n {\n code: 'el',\n title: formatMessage({ defaultMessage: 'Greek' }),\n language: 'Ελληνικά',\n },\n {\n code: 'en',\n title: formatMessage({ defaultMessage: 'English' }),\n language: 'English',\n },\n {\n code: 'es',\n title: formatMessage({ defaultMessage: 'Spanish' }),\n language: 'Español',\n },\n {\n code: 'fr',\n title: formatMessage({ defaultMessage: 'French' }),\n language: 'Français',\n },\n {\n code: 'hu',\n title: formatMessage({ defaultMessage: 'Hungarian' }),\n language: 'Magyar',\n },\n {\n code: 'id',\n title: formatMessage({ defaultMessage: 'Indonesian' }),\n language: 'Bahasa Indonesia',\n },\n {\n code: 'it',\n title: formatMessage({ defaultMessage: 'Italian' }),\n language: 'Italiano',\n },\n {\n code: 'ja',\n title: formatMessage({ defaultMessage: 'Japanese' }),\n language: '日本語',\n },\n {\n code: 'ko',\n title: formatMessage({ defaultMessage: 'Korean' }),\n language: '한국어',\n },\n {\n code: 'pl',\n title: formatMessage({ defaultMessage: 'Polish' }),\n language: 'Polskie',\n },\n {\n code: 'pt-br',\n title: formatMessage({ defaultMessage: 'Portuguese (Brazilian)' }),\n language: 'Português',\n },\n {\n code: 'ro',\n title: formatMessage({ defaultMessage: 'Romanian' }),\n language: 'Română',\n },\n {\n code: 'ru',\n title: formatMessage({ defaultMessage: 'Russian' }),\n language: 'Pусский',\n },\n {\n code: 'sl',\n title: formatMessage({ defaultMessage: 'Slovenian' }),\n language: 'Slovenščina',\n },\n {\n code: 'tr',\n title: formatMessage({ defaultMessage: 'Turkish' }),\n language: 'Türkçe',\n },\n {\n code: 'zh',\n title: formatMessage({ defaultMessage: 'Chinese (simplified)' }),\n language: '简体中文',\n },\n {\n code: 'zh-tw',\n title: formatMessage({ defaultMessage: 'Chinese (traditional)' }),\n language: '繁體中文',\n },\n ]\n .filter(lang => supportedLanguages.includes(lang.code))\n .sort((a, b) => a.title.localeCompare(b.title));\n\n return (\n \n \n {langs.map((lang, idx) => {\n return (\n \n \n {lang.language}\n {lang.title}\n \n \n );\n })}\n \n

\n \n {formatMessage({ defaultMessage: 'Get in touch' })}\n \n ),\n }}\n />\n

\n \n );\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport { AppBar } from '../../components/AppBar';\nimport { Heading } from '../../components/Heading';\nimport { Text } from '../../components/Text';\nimport { Link } from '../../components/Link';\n\nconst TermsOfServiceStyles = styled.div`\n .tos-text {\n margin: 10px 0;\n }\n\n .tos-text.last-updated-text {\n margin-top: 3rem;\n }\n\n .tos-text.section-title {\n margin-top: 1.5rem;\n }\n`;\n\nconst Container = styled.div`\n width: 100%;\n min-height: 100vh;\n padding-bottom: 3rem; // adds space for footer\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n\n /* mobile landscape*/\n @media (min-width: 576px) {\n max-width: 540px;\n }\n\n /* portrait tablet */\n @media (min-width: 768px) {\n max-width: 720px;\n }\n\n /* landscape tablet */\n @media (min-width: 992px) {\n max-width: 960px;\n }\n\n /* laptop & desktop */\n @media (min-width: 1360px) {\n max-width: 1280px;\n }\n`;\n\nexport const TermsOfService = () => {\n return (\n
\n \n \n \n \n Page last updated: January 10, 2023\n \n Terms of Use\n \n PLEASE READ THESE TERMS OF USE BEFORE USING THE WEBSITE.\n \n \n Acceptance of the Terms of Use These terms of use are entered into\n by and between you and the Foundation for the New Creative Economies\n (\"Foundation\", \"we\" or \"us\"). The following terms and conditions,\n together with any documents they expressly incorporate by reference\n (collectively, these \"Terms of Use\"), govern your access to and use\n of lukso.network, including any content, functionality and services\n offered on or through lukso.network,\n new-creative-economies.foundation, and lukso.tech (together, the\n \"Website\").\n \n \n Please read the Terms of Use carefully before you start to use the\n Websites. By using the Websites or by clicking to accept or agree to\n the Terms of Use when this option is made available to you, you\n accept and agree to be bound and abide by these Terms of Use in\n addition to\n
    \n
  • \n our{' '}\n \n Privacy Policy\n \n , incorporated herein by reference; and\n
  • \n
  • \n our{' '}\n \n Cookie Policy\n \n , incorporated herein by reference (note: no cookies are used on\n deposit.mainnet.lukso.network).\n
  • \n
\n
\n \n If you do not to agree to these Terms of Use or the Privacy Policy,\n you must not access or use the Websites.\n \n \n Who May Use the Websites\n \n \n This Websites is offered and available to users who are 13 years of\n age or older. The Websites is not intended for children under 13\n years of age. By using this Website, you represent and warrant that\n you (i) are 13 years of age or older, (ii) are not barred to use the\n Websites under any applicable law, and (iii) are using the Websites\n only for your own personal use. If you do not meet these\n requirements, you must not access or use the Websites.\n \n \n Changes to the Terms of Use\n \n \n We may revise and update these Terms of Use from time to time in our\n sole discretion. All changes are effective immediately when we post\n them.\n \n \n Your continued use of the Websites following the posting of revised\n Terms of Use means that you accept and agree to the changes. You are\n expected to check this page frequently so you are aware of any\n changes, as they are binding on you.\n \n \n Accessing the Websites and Account Security\n \n \n We reserve the right to withdraw or amend this Website, and any\n service or material we provide on the Website, in our sole\n discretion without notice. We do not guarantee that our site or any\n content on it, will always be available or be interrupted. We will\n not be liable if for any reason all or any part of the Websites is\n unavailable at any time or for any period. From time to time, we may\n restrict access to some parts of the Website, or the entire Website,\n to users.\n \n \n You are responsible for:\n
    \n
  • \n Making all arrangements necessary for you to have access to the\n Websites.\n
  • \n
  • \n Ensuring that all persons who access the Websites through your\n internet connection are aware of these Terms of Use and comply\n with them.\n
  • \n
\n
\n \n To access the Websites or some of the resources it offers, you may\n be asked to provide certain registration details or other\n information. It is a condition of your use of the Websites that all\n the information you provide on the Websites is correct, current and\n complete. You agree that all information you provide to register\n using this Websites or otherwise, including, but not limited to,\n using any interactive features on the Website, is governed by our\n Privacy Policy, and you consent to all actions we take with respect\n to your information consistent with our Privacy Policy.\n \n \n You should use particular caution when inputting personal\n information on to the Websites on a public or shared computer so\n that others are not able to view or record your personal\n information.\n \n \n Intellectual Property Rights\n \n \n The Websites and its entire contents, features and functionality\n (including but not limited to all information, software, text,\n displays, images, video and audio, and the design, selection and\n arrangement thereof), are owned by the Foundation, its licensors or\n other providers of such material and are protected by copyright,\n trademark, patent, trade secret and other intellectual property or\n proprietary rights laws.\n \n \n Unless otherwise marked: (a) all material, data, and information on\n the Websites, such as data files, text, music, audio files or other\n sounds, photographs, videos, or other images, but excluding any\n software or computer code (collectively, the “Non- Code Content”) is\n licensed under the Creative Commons Attribution 4.0 International\n License; and (b) all software or computer code (collectively, the\n “Code Content”) is licensed under the MIT License.\n \n \n Trademarks\n \n \n The Foundation name, the terms LUKSO, the Foundation logo and all\n related names, logos, product and service names, designs and slogans\n are trademarks of the Foundation or its affiliates or licensors. You\n must not use such marks without the prior written permission of the\n Foundation. All other names, logos, product and service names,\n designs and slogans on this Websites are the trademarks of their\n respective owners.\n \n \n Prohibited Uses\n \n \n You may use the Websites only for lawful purposes and in accordance\n with these Terms of Use. You agree not to use the Website:\n
    \n
  • \n In any way that violates any applicable federal, state, local or\n international law or regulation (including, without limitation,\n any laws regarding the export of data or software to and from\n the US or other countries).\n
  • \n
  • \n For the purpose of exploiting, harming or attempting to exploit\n or harm minors in any way by exposing them to inappropriate\n content, asking for personally identifiable information or\n otherwise.\n
  • \n
  • \n To send, knowingly receive, upload, download, use or re-use any\n material which does not comply with these Terms of Use.\n
  • \n
  • \n To transmit, or procure the sending of, any advertising or\n promotional material without our prior written consent,\n including any \"junk mail\", \"chain letter\" or \"spam\" or any other\n similar solicitation.\n
  • \n
  • \n To impersonate or attempt to impersonate the Foundation, a\n Foundation employee, another user or any other person or entity\n (including, without limitation, by using e-mail addresses or\n screen names associated with any of the foregoing).\n
  • \n
  • \n To engage in any other conduct that restricts or inhibits\n anyone's use or enjoyment of the Website, or which, as\n determined by us, may harm the Foundation or users of the\n Websites or expose them to liability.\n
  • \n
\n
\n \n Additionally, you agree not to:\n
    \n
  • \n Use the Websites in any manner that could disable, overburden,\n damage, or impair the site or interfere with any other party's\n use of the Website, including their ability to engage in real\n time activities through the Websites.\n
  • \n
  • \n Use any robot, spider or other automatic device, process or\n means to access the Websites for any purpose, including\n monitoring or copying any of the material on the Websites.\n
  • \n
  • \n Use any manual process to monitor or copy any of the material on\n the Websites or for any other unauthorized purpose without our\n prior written consent.\n
  • \n
  • \n Use any device, software or routine that interferes with the\n proper working of the Websites.\n
  • \n
  • \n Introduce any viruses, trojan horses, worms, logic bombs or\n other material which is malicious or technologically harmful.\n
  • \n
  • \n Attempt to gain unauthorized access to, interfere with, damage\n or disrupt any parts of the Website, the server on which the\n Websites is stored, or any server, computer or database\n connected to the Websites.\n
  • \n
  • \n Attack the Websites via a denial-of-service attack or a\n distributed denial-of-service attack.\n
  • \n
  • \n Otherwise attempt to interfere with the proper working of the\n Websites.\n
  • \n
\n
\n \n Reliance on Information Posted\n \n \n The information presented on or through the Websites is made\n available solely for general information purposes. We do not warrant\n the accuracy, completeness or usefulness of this information. Any\n reliance you place on such information is strictly at your own risk.\n We disclaim all liability and responsibility arising from any\n reliance placed on such materials by you or any other visitor to the\n Website, or by anyone who may be informed of any of its contents.\n \n \n This Websites includes content provided by third parties, including\n materials provided by other users, bloggers and third-party\n licensors, syndicators, aggregators and/or reporting services. All\n statements and/or opinions expressed in these materials, and all\n articles and responses to questions and other content, other than\n the content provided by the Foundation, are solely the opinions and\n the responsibility of the person or entity providing those\n materials. These materials do not necessarily reflect the opinion of\n the Foundation. We are not responsible, or liable to you or any\n third party, for the content or accuracy of any materials provided\n by any third parties.\n \n \n Changes to the Websites\n \n \n We may update the content on this Websites from time to time, but\n its content is not necessarily complete or up-to-date. Any of the\n material on the Websites may be out of date at any given time, and\n we are under no obligation to update such material.\n \n\n \n Information About You and Your Visits to the Websites\n \n\n \n All information we collect on this Websites is subject to our{' '}\n \n Privacy Policy\n \n . By using the Website, you consent to all actions taken by us with\n respect to your information in compliance with the Privacy Policy.\n \n\n \n Online Purchases and Other Terms and Conditions\n \n\n \n Additional terms and conditions may also apply to specific portions,\n services or features of the Website, including the registration and\n sponsorship for conference events. All such additional terms and\n conditions are hereby incorporated by this reference into these\n Terms of Use. In the event of terms that are directly conflicting\n between these Terms of Use and terms of conditions for the\n registration or sponsorship of a conference event, the terms and\n conditions for the event shall control.\n \n\n \n Linking to the Websites and Social Media Features\n \n \n You may link to our homepage, provided you do so in a way that is\n fair and legal and does not damage our reputation or take advantage\n of it, but you must not establish a link in such a way as to suggest\n any form of association, approval or endorsement on our part without\n our express written consent.\n \n \n Links from the Websites\n \n \n If the Websites contains links to other sites and resources provided\n by third parties, these links are provided for your convenience\n only. This includes links contained in advertisements, including\n banner advertisements and sponsored links. We have no control over\n the contents of those sites or resources, and accept no\n responsibility for them or for any loss or damage that may arise\n from your use of them. If you decide to access any of the third\n party websites linked to this Website, you do so entirely at your\n own risk and subject to the terms and conditions of use for such\n websites. We reserve the right to withdraw linking permission\n without notice.\n \n \n Geographic Restrictions\n \n \n The owner of the Websites is based in Switzerland. We make no claims\n that the Websites or any of its content is accessible or appropriate\n outside of Switzerland. Access to the Websites may not be legal by\n certain persons or in certain countries. If you access the Websites\n from outside Switzerland, you do so on your own initiative and are\n responsible for compliance with local laws.\n \n \n Disclaimer of Warranties\n \n \n You understand that we cannot and do not guarantee or warrant that\n files available for downloading from the internet or the Websites\n will be free of viruses or other destructive code. You are\n responsible for implementing sufficient procedures and checkpoints\n to satisfy your particular requirements for anti-virus protection\n and accuracy of data input and output, and for maintaining a means\n external to our site for any reconstruction of any lost data. WE\n WILL NOT BE LIABLE FOR ANY LOSS OR DAMAGE CAUSED BY A DISTRIBUTED\n DENIAL-OF-SERVICE ATTACK, VIRUSES OR OTHER TECHNOLOGICALLY HARMFUL\n MATERIAL THAT MAY INFECT YOUR COMPUTER EQUIPMENT, COMPUTER PROGRAMS,\n DATA OR OTHER PROPRIETARY MATERIAL DUE TO YOUR USE OF THE WEBSITES\n OR ANY SERVICES OR ITEMS OBTAINED THROUGH THE WEBSITES OR TO YOUR\n DOWNLOADING OF ANY MATERIAL POSTED ON IT, OR ON ANY WEBSITES LINKED\n TO IT.\n \n \n YOUR USE OF THE WEBSITE, ITS CONTENT AND ANY SERVICES OR ITEMS\n OBTAINED THROUGH THE WEBSITES IS AT YOUR OWN RISK. THE WEBSITE, ITS\n CONTENT AND ANY SERVICES OR ITEMS OBTAINED THROUGH THE WEBSITES ARE\n PROVIDED ON AN \"AS IS\" AND \"AS AVAILABLE\" BASIS, WITHOUT ANY\n WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED. NEITHER THE\n FOUNDATION NOR ANY PERSON ASSOCIATED WITH THE FOUNDATION MAKES ANY\n WARRANTY OR REPRESENTATION WITH RESPECT TO THE COMPLETENESS,\n SECURITY, RELIABILITY, QUALITY, ACCURACY OR AVAILABILITY OF THE\n WEBSITES. WITHOUT LIMITING THE FOREGOING, NEITHER THE FOUNDATION NOR\n ANYONE ASSOCIATED WITH THE FOUNDATION REPRESENTS OR WARRANTS THAT\n THE WEBSITE, ITS CONTENT OR ANY SERVICES OR ITEMS OBTAINED THROUGH\n THE WEBSITES WILL BE ACCURATE, RELIABLE, ERROR-FREE OR\n UNINTERRUPTED, THAT DEFECTS WILL BE CORRECTED, THAT OUR SITE OR THE\n SERVER THAT MAKES IT AVAILABLE ARE FREE OF VIRUSES OR OTHER HARMFUL\n COMPONENTS OR THAT THE WEBSITES OR ANY SERVICES OR ITEMS OBTAINED\n THROUGH THE WEBSITES WILL OTHERWISE MEET YOUR NEEDS OR EXPECTATIONS.\n \n \n THE FOUNDATION HEREBY DISCLAIMS ALL WARRANTIES OF ANY KIND, WHLYXER\n EXPRESS OR IMPLIED, STATUTORY OR OTHERWISE, INCLUDING BUT NOT\n LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT AND\n FITNESS FOR PARTICULAR PURPOSE.\n \n \n SOME JURISDICTIONS DO NOT ALLOW EXCLUSION OF WARRIANTIES OR\n LIMITATIONS ON THE DURATION OF IMPLIED WARRANTIES, SO THE ABOVE\n DISCLAIMER MAY NOT APPLY TO YOU IN THEIR ENTIRETIES, BUT WILL APPLY\n TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW.\n \n \n Limitation on Liability\n \n \n IN NO EVENT WILL THE FOUNDATION, ITS AFFILIATES OR THEIR LICENSORS,\n SERVICE PROVIDERS, EMPLOYEES, AGENTS, OFFICERS OR DIRECTORS BE\n LIABLE FOR DAMAGES OF ANY KIND, UNDER ANY LEGAL THEORY, ARISING OUT\n OF OR IN CONNECTION WITH YOUR USE, OR INABILITY TO USE, THE WEBSITE,\n ANY WEBSITES LINKED TO IT, ANY CONTENT ON THE WEBSITES OR SUCH OTHER\n WEBSITES OR ANY SERVICES OR ITEMS OBTAINED THROUGH THE WEBSITES OR\n SUCH OTHER WEBSITES, INCLUDING ANY DIRECT, INDIRECT, SPECIAL,\n INCIDENTAL, CONSEQUENTIAL OR PUNITIVE DAMAGES, INCLUDING BUT NOT\n LIMITED TO, PERSONAL INJURY, PAIN AND SUFFERING, EMOTIONAL DISTRESS,\n LOSS OF REVENUE, LOSS OF PROFITS, LOSS OF BUSINESS OR ANTICIPATED\n SAVINGS, LOSS OF USE, LOSS OF GOODWILL, LOSS OF DATA, AND WHLYXER\n CAUSED BY TORT (INCLUDING NEGLIGENCE), BREACH OF CONTRACT OR\n OTHERWISE, EVEN IF FORESEEABLE. THE FOREGOING DOES NOT AFFECT ANY\n LIABILITY WHICH CANNOT BE EXCLUDED OR LIMITED UNDER APPLICABLE LAW\n WHICH MAY INCLUDE FRAUD.\n \n \n Indemnification\n \n \n You agree to defend, indemnify and hold harmless the Foundation, its\n affiliates, licensors and service providers, and its and their\n respective officers, directors, employees, contractors, agents,\n licensors, suppliers, successors and assigns from and against any\n claims, liabilities, damages, judgments, awards, losses, costs,\n expenses or fees (including reasonable attorneys' fees) arising out\n of or relating to your violation of these Terms of Use or your use\n of the Website, including, but not limited to, any use of the\n Website's content, services and products other than as expressly\n authorized in these Terms of Use or your use of any information\n obtained from the Websites.\n \n \n Governing Law and Jurisdiction\n \n \n All matters relating to the Websites and these Terms of Use and any\n dispute or claim arising therefrom or related thereto (in each case,\n including non-contractual disputes or claims), shall be governed by\n and construed in accordance with the internal laws of Switzerland\n without giving effect to any choice or conflict of law provision or\n rule (whether of Switzerland or any other jurisdiction).\n \n \n Any legal suit, action or proceeding arising out of, or related to,\n these Terms of Use or the Websites shall be instituted exclusively\n in the Switzerland in the Kanton of Zug although we retain the right\n to bring any suit, action or proceeding against you for breach of\n these Terms of Use in your country of residence or any other\n relevant country. You waive any and all objections to the exercise\n of jurisdiction over you by such courts and to venue in such courts.\n \n \n Waiver and Severability\n \n \n No waiver of by the Foundation of any term or condition set forth in\n these Terms of Use shall be deemed a further or continuing waiver of\n such term or condition or a waiver of any other term or condition,\n and any failure of the Foundation to assert a right or provision\n under these Terms of Use shall not constitute a waiver of such right\n or provision.\n \n \n If any provision of these Terms of Use is held by a court or other\n tribunal of competent jurisdiction to be invalid, illegal or\n unenforceable for any reason, such provision shall be eliminated or\n limited to the minimum extent such that the remaining provisions of\n the Terms of Use will continue in full force and effect.\n \n \n Entire Agreement\n \n \n The Terms of Use, our Privacy Policy and terms of conditions for the\n registration of events constitute the sole and entire agreement\n between you and the Foundation for the New Creative Economies with\n respect to the Websites and supersede all prior and contemporaneous\n understandings, agreements, representations and warranties, both\n written and oral, with respect to the Websites.\n \n \n Your Comments and Concerns\n \n \n This Websites is operated by the Foundation. All other feedback,\n comments, requests for technical support and other communications\n relating to the Websites should be directed to:\n support@lukso.network.\n \n
\n
\n
\n );\n};\n","import styled from 'styled-components';\n\nexport const NakedButton = styled.button`\n appearance: none;\n background: none;\n border: none;\n color: inherit;\n display: inline-block;\n font: inherit;\n padding: initial;\n cursor: pointer;\n`;\n","import React, { useMemo, useState } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport styled from 'styled-components';\nimport { useWeb3React } from '@web3-react/core';\nimport { Web3Provider } from '@ethersproject/providers';\nimport { AbstractConnector } from '@web3-react/abstract-connector';\nimport { Layer } from 'grommet';\nimport { Network } from 'grommet-icons';\nimport {\n AllowedNetworks,\n fortmatic,\n metamask,\n NetworkChainId,\n portis,\n} from '../../ConnectWallet/web3Utils';\nimport { WalletButton } from '../../ConnectWallet/WalletButton';\nimport { web3ReactInterface } from '../../ConnectWallet';\nimport metamaskLogo from '../../../static/metamask.svg';\nimport closeGlyph from '../../../static/close.svg';\nimport { ENABLE_RPC_FEATURES, PORTIS_DAPP_ID } from '../../../utils/envVars';\nimport portisLogo from '../../../static/portis.svg';\nimport fortmaticLogo from '../../../static/fortmatic.svg';\nimport { Heading } from '../../../components/Heading';\nimport { Text } from '../../../components/Text';\nimport { NakedButton } from '../../../components/NakedButton';\nimport { MetamaskHardwareButton } from '../../ConnectWallet/MetamaskHardwareButton';\nimport { useKeyPress } from '../../../hooks/useKeyPress';\nimport useIntlNetworkName from '../../../hooks/useIntlNetworkName';\n\nconst CloseButton = styled(NakedButton)`\n padding: 1rem;\n align-self: flex-end;\n`;\n\nconst Close = styled.img`\n height: 24px;\n width: 24px;\n display: block;\n`;\n\nconst WalletConnectModal: React.FC<{\n loading: boolean;\n handleModalClose: () => void;\n}> = ({\n loading,\n handleModalClose,\n}: {\n loading: boolean;\n handleModalClose: () => void;\n}) => {\n const {\n connector,\n error,\n chainId,\n active,\n }: web3ReactInterface = useWeb3React();\n const executionLayerName = useIntlNetworkName();\n\n const [selectedWallet, setSelectedWallet] = useState<\n AbstractConnector | null | undefined\n >(null);\n\n const isInvalidNetwork = useMemo(() => {\n if (!chainId) return false;\n\n const network = NetworkChainId[chainId as number];\n\n return !Object.values(AllowedNetworks).includes(network);\n }, [chainId]);\n\n useKeyPress('Escape', handleModalClose);\n\n if (isInvalidNetwork) {\n return (\n \n
\n \n \n \n \n \n testnet'\"\n />\n \n
\n
\n );\n }\n\n if (active || !loading) return null;\n\n return (\n \n \n \n \n \n \n \n
\n \n \n\n \n\n \n
\n
\n );\n};\n\nexport default WalletConnectModal;\n","import { useEffect } from 'react';\n\nexport const useKeyPress = (\n targetKey: string,\n handler: (event: KeyboardEvent) => void\n) => {\n const downHandler = (event: KeyboardEvent) => {\n if (event.key === targetKey) {\n handler(event);\n }\n };\n\n useEffect(() => {\n window.addEventListener('keydown', downHandler);\n // Remove event listeners on cleanup\n return () => {\n window.removeEventListener('keydown', downHandler);\n };\n });\n};\n","import React from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport styled from 'styled-components';\nimport {\n Box,\n Table,\n TableBody,\n TableCell,\n TableHeader,\n TableRow,\n} from 'grommet';\nimport ReactTooltip from 'react-tooltip';\nimport { Wifi, StatusWarning, Refresh, StatusDisabled } from 'grommet-icons';\nimport numeral from 'numeral';\nimport { styledComponentsTheme as theme } from '../../../styles/styledComponentsTheme';\nimport { BeaconChainValidator } from '../types';\nimport { Text } from '../../../components/Text';\nimport shortenAddress from '../../../utils/shortenAddress';\nimport { Button } from '../../../components/Button';\nimport { Paper } from '../../../components/Paper';\nimport { Link } from '../../../components/Link';\nimport {\n BEACONCHAIN_URL,\n PRICE_PER_VALIDATOR,\n TICKER_NAME,\n LYXER_TO_GWEI,\n} from '../../../utils/envVars';\n\nconst FakeLink = styled.span`\n color: blue;\n text-decoration: underline;\n cursor: pointer;\n display: inline;\n`;\n\nconst ValidatorTable: React.FC<{\n validators: BeaconChainValidator[];\n setSelectedValidator: (validator: BeaconChainValidator) => void;\n handleConnect: () => void;\n}> = ({ validators, setSelectedValidator, handleConnect }) => {\n const { formatMessage } = useIntl();\n\n const validatorStatus = (validator: BeaconChainValidator) => {\n const { status } = validator;\n\n switch (status) {\n case 'pending': {\n return (\n
\n \n \n \n \n
\n );\n }\n case 'slashing': {\n return (\n
\n \n \n \n \n
\n );\n }\n case 'slashed': {\n return (\n
\n \n \n \n \n
\n );\n }\n case 'exiting': {\n return (\n
\n \n \n \n \n
\n );\n }\n case 'exited': {\n return (\n
\n \n \n \n \n
\n );\n }\n case 'active_offline': {\n return (\n
\n \n \n \n \n
\n );\n }\n case 'active_online': {\n return (\n
\n \n \n \n \n
\n );\n }\n default:\n return '';\n }\n };\n\n const validatorRows = React.useMemo(() => {\n return validators.map(validator => {\n const alreadyToppedUp =\n validator.effectivebalance >=\n Number(PRICE_PER_VALIDATOR) * LYXER_TO_GWEI;\n // No top-ups for exited or slashed validators:\n const statusIneligible =\n validator.status === 'slashed' || validator.status === 'exited';\n\n const toolTipText = () => {\n if (statusIneligible)\n return formatMessage({\n defaultMessage:\n 'Validators that have exited or been slashed are not eligible for topping up',\n });\n if (alreadyToppedUp)\n return formatMessage(\n {\n defaultMessage:\n \"This validator's balance is at the effective maximum: {PRICE_PER_VALIDATOR} {TICKER_NAME}.\",\n },\n { PRICE_PER_VALIDATOR, TICKER_NAME }\n );\n return formatMessage({\n defaultMessage:\n 'You can improve the effective balance of this validator by topping up',\n });\n };\n\n return (\n \n \n \n \n {shortenAddress(validator.pubkey)}\n \n \n \n {validatorStatus(validator)}\n \n \n \n {validator.slashed ? (\n \n ) : (\n \n )}\n \n \n \n \n {`${numeral(validator.balance / LYXER_TO_GWEI).format(\n '0.00000'\n )} ${TICKER_NAME}`}\n \n \n \n \n {`${numeral(validator.effectivebalance / LYXER_TO_GWEI).format(\n '0.00000'\n )} ${TICKER_NAME}`}\n \n \n \n setSelectedValidator(validator)}\n label={formatMessage({ defaultMessage: 'Top up' })}\n rainbow\n disabled={statusIneligible}\n />\n \n \n \n );\n });\n }, [validators, setSelectedValidator, formatMessage]);\n\n return validators.length > 0 ? (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {validatorRows}\n
\n
\n ) : (\n \n \n \n \n \n \n \n \n ),\n }}\n description=\"{changeYourWallet} is a link labeled 'change your wallet'\"\n />\n \n \n );\n};\n\nexport default ValidatorTable;\n","import React, { useState, useMemo, useEffect, useCallback } from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useWeb3React } from '@web3-react/core';\nimport { Web3Provider } from '@ethersproject/providers';\nimport styled from 'styled-components';\nimport { FormPrevious } from 'grommet-icons';\nimport { Alert as AlertIcon } from 'grommet-icons/icons';\nimport {\n BeaconChainValidator,\n BeaconChainValidatorResponse,\n Props,\n} from './types';\nimport { Text } from '../../components/Text';\nimport { web3ReactInterface } from '../ConnectWallet';\nimport WalletConnectModal from './components/WalletConnectModal';\nimport ValidatorTable from './components/ValidatorTable';\nimport TopupPage from './components/TopupPage';\nimport Spinner from '../../components/Spinner';\nimport { PageTemplate } from '../../components/PageTemplate';\nimport {\n BEACONCHAIN_URL,\n PRICE_PER_VALIDATOR,\n EJECTION_PRICE,\n TICKER_NAME,\n} from '../../utils/envVars';\nimport { AllowedNetworks, NetworkChainId } from '../ConnectWallet/web3Utils';\nimport { Alert } from '../../components/Alert';\nimport { Link } from '../../components/Link';\nimport { Button } from '../../components/Button';\n\nconst Arrow = styled(props => )`\n position: absolute;\n left: 0;\n color: ${p => p.theme.blue.medium};\n`;\n\nconst SubTextContainer = styled.div``;\n\nconst BackText = styled(Text)`\n margin-top: -25px;\n cursor: pointer;\n :hover {\n text-decoration: underline;\n }\n position: relative;\n padding-left: 25px;\n`;\n\nconst FakeLink = styled.span`\n color: blue;\n text-decoration: underline;\n cursor: pointer;\n display: inline;\n`;\n\nconst ButtonLink = styled(FakeLink)`\n text-decoration: none;\n width: fit-content;\n button {\n padding: 16px 32px;\n }\n`;\n\nconst ButtonContainer = styled.div`\n display: flex;\n justify-content: center;\n @media screen and (max-width: 518px) {\n span,\n button {\n width: 100%;\n }\n }\n`;\n\nconst _TopUpPage: React.FC = () => {\n const {\n account,\n active,\n chainId,\n deactivate,\n }: web3ReactInterface = useWeb3React();\n const [validators, setValidators] = useState([]);\n const [loading, setLoading] = React.useState(false);\n const [validatorLoadError, setValidatorLoadError] = React.useState(\n false\n );\n const [\n showDepositVerificationWarning,\n setShowDepositVerificationWarning,\n ] = React.useState(false);\n\n const { formatMessage } = useIntl();\n\n // an effect that fetches validators from beaconchain when the user connects or changes their wallet\n useEffect(() => {\n const fetchValidatorsForUserAddress = async () => {\n setLoading(true);\n\n // beaconchain API requires two fetches - one that gets the public keys for an LUKSO address, and one that\n // queries by the validators public keys\n\n fetch(`${BEACONCHAIN_URL}/api/v1/validator/eth1/${account}`)\n .then(r => r.json())\n .then(\n ({\n data,\n }: {\n data: BeaconChainValidatorResponse[] | BeaconChainValidatorResponse;\n }) => {\n setShowDepositVerificationWarning(false);\n const response = Array.isArray(data) ? data : [data];\n // no validators for that user's wallet address\n if (response.length === 0) {\n setValidators([]);\n setLoading(false);\n return;\n }\n\n if (response.length === 0) {\n setValidators([]);\n setLoading(false);\n } else {\n // query by public keys\n const pubKeysCommaDelineated = `${response\n .slice(0, 50)\n .map(validator => validator.publickey)\n .join(',')}`;\n\n fetch(\n `${BEACONCHAIN_URL}/api/v1/validator/${pubKeysCommaDelineated}`\n )\n .then(r => r.json())\n .then(({ data }: { data: BeaconChainValidator[] }) => {\n if (data.length === 0) {\n setShowDepositVerificationWarning(true);\n }\n setValidators(data);\n setLoading(false);\n })\n .catch(error => {\n console.log(error);\n setLoading(false);\n setValidatorLoadError(true);\n });\n }\n }\n )\n .catch(error => {\n console.log(error);\n setLoading(false);\n setValidatorLoadError(true);\n });\n };\n\n const network = NetworkChainId[chainId as number];\n\n const isValidNetwork = Object.values(AllowedNetworks).includes(network);\n\n if (active && account && isValidNetwork) {\n fetchValidatorsForUserAddress();\n }\n }, [account, active, chainId]);\n\n const [\n selectedValidator,\n setSelectedValidator,\n ] = useState(null);\n\n const handleConnect = useCallback((): void => {\n setLoading(true);\n deactivate();\n }, [setLoading, deactivate]);\n\n const handleModalClose = useCallback((): void => {\n setLoading(false);\n }, [setLoading]);\n\n const topUpPageContent = useMemo(() => {\n if (loading) {\n return ;\n }\n\n if (!active) {\n return (\n \n \n \n \n \n );\n }\n if (validatorLoadError) {\n return (\n \n
\n \n \n \n \n
\n
\n \n \n \n \n ),\n github: (\n \n GitHub\n \n ),\n }}\n description=\"{reloadYourWallet} is a link labeled 'reload your wallet'\"\n />\n \n
\n
\n );\n }\n\n if (selectedValidator) {\n return ;\n }\n\n return (\n <>\n {showDepositVerificationWarning && (\n \n
\n \n \n \n \n
\n
\n )}\n \n \n );\n }, [\n loading,\n validatorLoadError,\n selectedValidator,\n active,\n validators,\n showDepositVerificationWarning,\n deactivate,\n formatMessage,\n handleConnect,\n ]);\n\n return (\n <>\n {/* the wallet connect modal controls it's own display, so it is always rendered here */}\n \n\n \n {/* render a \"back button\" if there's a selected validator */}\n {selectedValidator && (\n setSelectedValidator(null)}\n color=\"blueMedium\"\n >\n \n \n \n )}\n\n \n \n \n \n \n {' '}\n \n \n \n \n \n\n {/* the main content for the topup page */}\n {topUpPageContent}\n \n \n );\n};\n\nexport const TopUpPage = _TopUpPage;\n","import { useEffect, useRef } from 'react';\nimport { withRouter } from 'react-router-dom';\n\nconst ScrollIntoView = ({\n children,\n location,\n}: {\n children?: any;\n location?: any;\n}) => {\n const prevLocation = useRef();\n\n useEffect(() => {\n if (prevLocation.current !== location.pathname) {\n window.scrollTo(0, 0);\n prevLocation.current = location.pathname;\n }\n }, [location]);\n\n return children;\n};\n\nexport default withRouter(ScrollIntoView);\n","import React from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport tekuBg from '../../../static/teku-bg.png';\nimport {\n Hero,\n SectionTitle,\n ValidatorClientPageStyles,\n} from '../ValidatorClientComponents';\nimport { PageTemplate } from '../../../components/PageTemplate';\nimport { Text } from '../../../components/Text';\nimport { Link } from '../../../components/Link';\nimport { Code } from '../../../components/Code';\nimport { Heading } from '../../../components/Heading';\nimport { TEKU_INSTALLATION_URL } from '../../../utils/envVars';\n\nexport const TekuDetails = ({ shortened }: { shortened?: boolean }) => (\n <>\n \n Teku\n \n \n \n \n \n \n {' '}\n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n
\n {!shortened && (\n <>\n
\n \n \n \n \n \n \n \n \n \n \n \n
    \n
  • \n {`:`}\n
  • \n
  • \n \n {`:,...,:`}\n \n ),\n validatorsKeys: (\n --validators-keys\n ),\n }}\n />\n
  • \n
\n
\n \n \n \n \n \n \n TEKU_VALIDATORS_KEYS\n \n \n \n \n \n \n
    \n
  • \n \n \n \n
  • \n
      \n
    • \n --config-file\n
    • \n
    \n
  • \n \n \n \n
  • \n
      \n
    • \n TEKU_CONFIG_FILE\n
    • \n
    \n
\n \n \n \n
    \n
  • \n \n {`validators-keys: [:]`}\n \n
  • \n
  • \n \n {`validators-keys: [:,...,:]`}\n \n
  • \n
\n \n \n \n \n {`:`}\n ),\n keyDirectory: (\n {`/**.json`}\n ),\n passwordDirectory: (\n {`/**.txt`}\n ),\n }}\n />{' '}\n {`:`}\n ),\n keyFile: {''},\n passwordFile: {''},\n }}\n />{' '}\n ;,\n colon: :,\n }}\n />\n \n
\n
\n \n \n \n
    \n
  • \n \n \n \n \n \n
  • \n
  • \n \n \n \n
  • \n
\n
\n \n )}\n \n);\n\nexport const Teku = () => {\n const { formatMessage } = useIntl();\n return (\n \n \n \n \n
\n \n \n \n \n \n \n
\n
\n \n );\n};\n","import React from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport nimbusBg from '../../../static/nimbus-bg.png';\nimport {\n Hero,\n SectionTitle,\n ValidatorClientPageStyles,\n} from '../ValidatorClientComponents';\nimport { PageTemplate } from '../../../components/PageTemplate';\nimport { Text } from '../../../components/Text';\nimport { Link } from '../../../components/Link';\nimport { Code } from '../../../components/Code';\nimport { NIMBUS_INSTALLATION_URL } from '../../../utils/envVars';\n\nexport const NimbusDetails = ({ shortened }: { shortened?: boolean }) => (\n <>\n \n Nimbus\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n
\n\n {!shortened && (\n <>\n
\n \n \n \n \n \n \n ./build/data/[testnet_name]/validators\n \n \n \n /build/data/[testnet_name]/secrets\n \n \n \n
\n
\n \n \n \n \n \n \n ./build/data/[testnet_name]/\n \n \n \n
\n \n )}\n \n);\n\nexport const Nimbus = () => {\n const { formatMessage } = useIntl();\n return (\n \n \n \n \n
\n \n \n \n \n \n \n
\n
\n \n );\n};\n","import React from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport besuBg from '../../../static/besu-bg.png';\nimport {\n Hero,\n SectionTitle,\n ValidatorClientPageStyles,\n} from '../ValidatorClientComponents';\nimport { PageTemplate } from '../../../components/PageTemplate';\nimport { Text } from '../../../components/Text';\nimport { Link } from '../../../components/Link';\nimport { Code } from '../../../components/Code';\nimport { Heading } from '../../../components/Heading';\nimport { IS_MAINNET } from '../../../utils/envVars';\n\n// eslint-disable-next-line no-unused-vars\nexport const BesuDetails = () => (\n <>\n \n Hyperledger Besu\n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n {!IS_MAINNET && (\n <>\n \n \n \n \n --network=testnet,\n }}\n description=\"{testnet} shows '--network=testnet' terminal command\"\n />\n \n \n \n \n \n )}\n \n \n \n \n -rpc-http-enabled,\n }}\n description=\"{http} shows '-rpc-http-enabled' terminal command\"\n />\n \n \n \n \n
\n \n);\n\nexport const Besu = () => {\n const { formatMessage } = useIntl();\n return (\n \n \n \n \n
\n \n \n \n \n \n \n
\n
\n \n );\n};\n","import React from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport nethermindBg from '../../../static/nethermind-bg.png';\nimport {\n Hero,\n SectionTitle,\n ValidatorClientPageStyles,\n} from '../ValidatorClientComponents';\nimport { PageTemplate } from '../../../components/PageTemplate';\nimport { Text } from '../../../components/Text';\nimport { Link } from '../../../components/Link';\nimport { Code } from '../../../components/Code';\nimport { Heading } from '../../../components/Heading';\nimport { IS_MAINNET } from '../../../utils/envVars';\n\n// eslint-disable-next-line no-unused-vars\nexport const NethermindDetails = () => (\n <>\n \n Nethermind\n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n {IS_MAINNET && (\n <>\n \n --config mainnet,\n }}\n description=\"{mainnet} shows '--config mainnet' terminal command\"\n />\n \n \n --config mainnet documentation\n \n \n )}\n {!IS_MAINNET && (\n <>\n \n \n \n \n --config testnet,\n }}\n description=\"{testnet} shows '--config testnet' terminal command\"\n />\n \n \n \n \n \n )}\n \n \n \n \n --JsonRpc.Enabled true,\n }}\n description=\"{http} shows '--JsonRpc.Enabled true' terminal command\"\n />\n \n \n \n \n
\n \n);\n\nexport const Nethermind = () => {\n const { formatMessage } = useIntl();\n return (\n \n \n \n \n
\n \n \n \n \n \n \n
\n
\n \n );\n};\n","import React, { useEffect, useState } from 'react';\nimport { AppBar } from '../../components/AppBar';\nimport { Hero } from './Hero';\nimport { NetworkStatus } from './NetworkStatus';\nimport { Introduction } from './Introduction';\n// import { SignupSteps } from './SignupSteps';\nimport { Upgrades } from './Upgrades';\nimport { queryBeaconchain } from '../../utils/queryBeaconchain';\n\nexport const LandingPage = (): JSX.Element => {\n const [state, setState] = useState({\n amountEth: 0,\n totalValidators: 0,\n status: 0,\n });\n\n useEffect(() => {\n (async () => {\n const response = await queryBeaconchain();\n setState({\n amountEth: response.body.amountEth,\n totalValidators: response.body.totalValidators,\n status: response.statusCode,\n });\n })().catch(() => {});\n }, []);\n\n return (\n <>\n \n \n \n \n {/* */}\n \n \n );\n};\n","import { createGlobalStyle } from 'styled-components';\nimport { range } from 'lodash';\n\nconst shorthandSpacing = range(0, 150, 5).map(n => {\n return `\n .m${n}{ margin: ${n}px; }\n .mt${n}{ margin-top: ${n}px; }\n .mb${n}{ margin-bottom: ${n}px; }\n .ml${n}{ margin-left: ${n}px; }\n .mr${n}{ margin-right: ${n}px; }\n .mx${n}{ margin-right: ${n}px; margin-left: ${n}px; }\n .my${n}{ margin-top: ${n}px; margin-bottom: ${n}px; }\n .p${n}{ padding: ${n}px; }\n .pt${n}{ padding-top: ${n}px; }\n .pb${n}{ padding-bottom: ${n}px; }\n .pl${n}{ padding-left: ${n}px; }\n .pr${n}{ padding-right: ${n}px; }\n .px${n}{ padding-right: ${n}px; padding-left: ${n}px; }\n .py${n}{ padding-top: ${n}px; padding-bottom: ${n}px; }\n `;\n});\n\nconst shorthandClasses = `\n .relative { position: relative }\n .flex { display: flex }\n .flex-inline { display: inline-flex }\n .flex-row { flex-direction: row }\n .flex-wrap { flex-wrap: wrap }\n .flex-column { flex-direction: column }\n .space-between { justify-content: space-between }\n .space-evenly { justify-content: space-evenly }\n .center { justify-content: center }\n .start { justify-content: flex-start }\n .rm-double-border { margin-top: -2px }\n .m-auto { margin: auto }\n .dont-break-out {\n overflow-wrap: break-word;\n word-wrap: break-word;\n -ms-word-break: break-all;\n word-break: break-word;\n }\n .align-flex-end { align-items: flex-end; }\n`;\n\nconst transitionClasses = `\n \n@keyframes fadeIn {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}`;\n\nexport const GlobalStyles = createGlobalStyle`\n ${shorthandSpacing}\n ${shorthandClasses}\n ${transitionClasses}\n`;\n","import React from 'react';\nimport { Router } from 'react-router-dom';\n\nimport { IntlProvider } from 'react-intl';\nimport { Route, Redirect } from 'react-router-dom';\nimport { messages, AppLanguage, supportedLanguages } from '../intl';\nimport { routesEnum } from '../Routes';\n\ninterface Props {\n history: any;\n}\n\nexport const LocalizedRouter: React.FC = ({ children, history }) => (\n \n \n {({ match, location }) => {\n /**\n * Get current language\n * Set default locale to en if base path is used without a language\n */\n const params = match ? match.params : {};\n const { lang = AppLanguage.English } = params;\n\n /**\n * If language provided is not supported, redirect to \"languages\" page\n */\n if (supportedLanguages.indexOf(lang) < 0) {\n return ;\n }\n\n /**\n * If language is not in route path, redirect to language route\n */\n const { pathname } = location;\n if (!pathname.includes(`/${lang}/`) && pathname !== `/${lang}`) {\n return ;\n }\n\n /**\n * Return Intl provider with default language set\n */\n return (\n \n {children}\n \n );\n }}\n \n \n);\n","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport styled from 'styled-components';\nimport { Heading } from '../Heading';\nimport { routesEnum } from '../../Routes';\nimport { Link } from '../Link';\nimport SocialInstagram from '../../static/custom/social-instagram.svg';\nimport SocialTwitter from '../../static/custom/social-twitter.svg';\nimport SocialLinkedIn from '../../static/custom/social-linkedin.svg';\nimport SocialTelegram from '../../static/custom/social-telegram.svg';\nimport SocialDiscord from '../../static/custom/social-discord.svg';\nimport SocialReddit from '../../static/custom/social-reddit.svg';\nimport SocialMedium from '../../static/custom/social-medium.svg';\nimport SocialGithub from '../../static/custom/social-github.svg';\nimport LuksoLogo from '../../static/custom/lukso-logo.svg';\n\nconst FooterWrapper = styled.div`\n background: var(--neutral-100);\n`;\n\nconst FooterUpper = styled.div`\n display: grid;\n grid-template-columns: auto 1fr;\n padding: 40px 40px 0;\n background-color: var(--neutral-100);\n gap: 70px;\n @media screen and (max-width: 650px) {\n grid-template-columns: 1fr;\n gap: 40px;\n }\n`;\n\nconst FooterMiddle = styled.div`\n display: grid;\n grid-template-columns: auto auto 1fr;\n align-items: center;\n gap: 48px;\n padding-top: 32px;\n margin: 32px 40px 40px;\n background-color: var(--neutral-100);\n border-top: 1px var(--neutral-95) solid;\n @media screen and (max-width: 1000px) {\n grid-template-columns: auto;\n }\n @media screen and (max-width: 650px) {\n gap: 32px;\n padding-top: 40px;\n margin-top: 40px;\n }\n`;\n\nconst MiddleLinks = styled.div`\n display: flex;\n gap: 40px;\n @media screen and (max-width: 650px) {\n flex-direction: column;\n gap: 24px;\n }\n`;\n\nconst SocialLinks = styled.div`\n display: flex;\n justify-content: flex-end;\n gap: 16px;\n @media screen and (max-width: 1000px) {\n justify-content: flex-start;\n }\n @media screen and (max-width: 650px) {\n flex-wrap: wrap;\n width: 224px;\n }\n`;\n\nconst Logo = styled.img``;\n\nconst FooterBottom = styled.div`\n padding: 27px 40px;\n display: flex;\n justify-content: space-between;\n background-color: var(--neutral-95);\n @media screen and (max-width: 1000px) {\n flex-direction: column;\n gap: 20px;\n }\n`;\n\nconst BottomLinks = styled.div`\n display: flex;\n gap: 32px;\n`;\n\nexport const CustomFooter = () => {\n return (\n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \"Twitter\"\n \n \n \"Instagram\"\n \n \n \"LinkedIn\"\n \n \n \"Telegram\"\n \n \n \"Discord\"\n \n \n \"Reddit\"\n \n \n \"Medium\"\n \n \n \"Github\"\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n};\n","import React from 'react';\nimport { createStore } from 'redux';\nimport { Provider } from 'react-redux';\nimport { ThemeProvider } from 'styled-components';\nimport { createBrowserHistory } from 'history';\nimport { Grommet } from 'grommet';\nimport { Web3Provider } from '@ethersproject/providers';\nimport { Web3ReactProvider } from '@web3-react/core';\nimport { grommetTheme } from './styles/grommetTheme';\nimport { styledComponentsTheme } from './styles/styledComponentsTheme';\nimport { Routes as RoutedContent } from './Routes';\nimport { GlobalStyles } from './styles/GlobalStyles';\nimport { reducers } from './store/reducers';\nimport { LocalizedRouter } from './components/LocalizedRouter';\nimport { CustomFooter } from './components/Custom/Footer';\nimport './styles/luksoTheme/main.scss';\n\n// due to SSR we need to check if window is defined\nif (typeof window !== 'undefined') {\n import('@lukso/web-components');\n}\n\nexport const store = createStore(\n reducers,\n // @ts-ignore\n window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()\n);\n\nfunction getLibrary(provider: any): Web3Provider {\n const library = new Web3Provider(provider);\n library.pollingInterval = 12000;\n return library;\n}\n\nexport const history = createBrowserHistory();\n\nexport const App: React.FC = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { App } from './App';\n\nReactDOM.render(\n ,\n\n document.querySelector('#root')\n);\n\nReactDOM.render(, document.getElementById('root'));\n","module.exports = __webpack_public_path__ + \"static/media/geth-bg.502dad1b.png\";","import React from 'react';\nimport styled from 'styled-components';\nimport { Button as GrommetButton, ButtonProps } from 'grommet';\n\ninterface CustomButtonProps {\n className?: string;\n width?: number;\n fullWidth?: boolean;\n rainbow?: boolean;\n onClick?: () => any;\n}\n\nconst calculateWidth = (p: { width?: number; fullWidth?: boolean }) => {\n if (p.width) {\n return `${p.width}px`;\n }\n if (p.fullWidth) {\n return '100%';\n }\n};\n\nconst StyledButton = styled(GrommetButton)`\n display: block;\n padding: 15px;\n text-transform: uppercase;\n width: ${calculateWidth};\n font-size: 18px;\n letter-spacing: 1.5px;\n background-color: ${p =>\n p.primary ? p.theme.blue.dark : p.theme.gray.light};\n border: ${p => `1px solid ${p.theme.gray.medium}`};\n &:hover {\n border-radius: 4px;\n box-shadow: 0px 8px 17px rgba(0, 0, 0, 0.15);\n background-image: ${p => `linear-gradient(to right, ${p.theme.rainbow})`};\n transition: transform 0.1s;\n transform: scale(1.02);\n }\n // rainbow styles\n ${p =>\n // @ts-ignore\n p.rainbow &&\n `background-image: linear-gradient(to right, ${p.theme.rainbow});\n color: ${p.theme.blue.dark};\n border: 1px solid ${p.theme.blue.dark};\n `}\n`;\n\nexport const Button = (props: CustomButtonProps & ButtonProps) => {\n const { className } = props;\n return ;\n};\n","export const isLedgerTimeoutError = (error: any) => {\n return (\n error?.message ===\n 'Failed to sign with Ledger device: U2F DEVICE_INELIGIBLE'\n );\n};\n\nexport const ledgerTxRejected = (error: any) => {\n return error?.message.includes(\n 'Ledger device: Condition of use not satisfied (denied by the user?)'\n );\n};\n\nexport const metamaskTxRejected = (error: any) => {\n return (\n error?.message ===\n 'MetaMask Tx Signature: User denied transaction signature.'\n );\n};\n\nexport const fortmaticTxRejected = (error: any) => {\n return (\n error?.message ===\n 'Fortmatic RPC Error: [-32603] Fortmatic: User denied transaction.'\n );\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Box, BoxProps } from 'grommet';\n\nconst variantStyles = {\n primary: {\n backgroundColor: '#cce5ff',\n borderColor: '#b8daff',\n },\n warning: {\n backgroundColor: 'var(--yellow-85)',\n borderColor: 'var(--yellow-85)',\n },\n secondary: {\n backgroundColor: '#fdfcfe',\n borderColor: '#d3d3d3',\n },\n info: {\n backgroundColor: 'var(--yellow-85)',\n borderColor: 'var(--yellow-85)',\n },\n error: {\n backgroundColor: 'var(--red-85)',\n borderColor: 'var(--red-85)',\n },\n success: {\n backgroundColor: '#d4edda',\n borderColor: '#c3e6cb',\n },\n};\n\nconst HighlightStyles = styled.div`\n .alert-highlight {\n padding: 5px;\n border-radius: 4px;\n background-color: rgba(0, 0, 0, 0.04);\n margin-right: 3px;\n margin-left: 3px;\n }\n`;\n\nconst AlertBox = styled(Box)``;\n\nexport const Alert = (\n props: {\n children: React.ReactNode;\n className?: string;\n error?: boolean;\n style?: any;\n variant?: string;\n } & BoxProps\n): JSX.Element => {\n const { variant = 'primary', className, children, pad } = props;\n return (\n \n {children}\n \n );\n};\n","module.exports = __webpack_public_path__ + \"static/media/leslie-rhino.243747b9.png\";","module.exports = __webpack_public_path__ + \"static/media/metamask.a0103549.svg\";","module.exports = __webpack_public_path__ + \"static/media/fortmatic.f886c8c5.svg\";","module.exports = __webpack_public_path__ + \"static/media/prysmatic-bg.7bab1421.png\";","import styled from 'styled-components';\nimport { Text as T } from 'grommet';\n\nexport const Text = styled(T)`\n font-family: 'Maison Neue', system-ui, -apple-system, BlinkMacSystemFont,\n 'Segoe UI', Helvetica, Arial, sans-serif;\n font-size: ${(p: any) => (p.size ? '' : '18px')}; // default to grommet\n line-height: ${(p: any) => (p.size ? '' : '24px')}; // default to grommet\n font-style: normal;\n font-weight: ${(p: any) =>\n p.weight ? undefined : 300}; // default to grommet\n letter-spacing: normal;\n color: ${(p: any) => (p.color ? p.color : p.theme.blue.dark)};\n margin: 0;\n display: block;\n text-align: ${(p: { center?: boolean }) => p.center && 'center'};\n`;\n","module.exports = __webpack_public_path__ + \"static/media/lighthouse-bg.f5c85d64.png\";","const shortenAddress = (address = '', num = 3): string =>\n `${address.substring(0, num + 2)}...${address.substring(\n address.length - num\n )}`;\n\nexport default shortenAddress;\n","import React from 'react';\nimport { Box } from 'grommet';\n\nexport const Spinner = ({\n className,\n align = 'center',\n justify = 'center',\n}: {\n className?: string;\n align?: string;\n justify?: string;\n}) => (\n // @ts-ignore\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nexport default Spinner;\n","import React from 'react';\nimport { Box, BoxProps } from 'grommet';\nimport styled from 'styled-components';\n\nexport const Paper = (\n props: {\n children: React.ReactNode;\n className?: string;\n error?: boolean;\n style?: any;\n } & BoxProps\n): JSX.Element => {\n const { error, className, children, pad } = props;\n return (\n \n {children}\n \n );\n};\n\nconst BoxGroup = styled(Box)`\n width: 100%;\n > :first-child {\n border-radius: ${p =>\n `${p.theme.borderRadius} ${p.theme.borderRadius} 0 0`};\n }\n > :last-child {\n border-radius:${p => `0 0 ${p.theme.borderRadius} ${p.theme.borderRadius}`};\n }\n }\n > *:not(:first-child):not(:last-child) {\n border-radius: 0;\n border-top: none;\n border-bottom: none;\n }\n`;\n\nexport const PaperGroup = (\n props: {\n children: React.ReactNode;\n className?: string;\n id?: string;\n } & BoxProps\n): JSX.Element => {\n const { children } = props;\n return {children};\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Link as RouterLink } from 'react-router-dom';\nimport { useIntl } from 'react-intl';\n\nimport { supportedLanguages } from '../intl';\n\ninterface LinkProps {\n primary?: boolean | undefined;\n theme?: any;\n className?: string;\n href?: string;\n inline?: boolean;\n isTextLink?: boolean;\n}\n\nconst styles = `\n line-height: 33px;\n color:inherit;\n display: inherit;\n text-decoration: none;\n font-weight: 400;\n &:hover {\n opacity: 0.8;\n };\n &:focus,\n &:visited,\n &:link,\n &:active {\n text-decoration: none;\n };\n `;\n\nconst StyledExternalLink = styled.a<\n Pick\n>`\n ${styles};\n color: ${(props: any) =>\n props.primary ? props.theme.blue.medium : 'inherit'};\n display: ${(props: any) => (props.inline ? 'inline' : 'inherit')};\n &:after {\n display: ${(props: any) => (props.isTextLink ? `inline` : `none`)};\n margin-left: 0.125em;\n margin-right: 0.3em;\n content: '↗';\n transition: all 0.1s ease-in-out;\n font-style: normal;\n }\n & > button:after {\n display: ${(props: any) => (props.isTextLink ? `none` : `inline`)};\n margin-left: 0.25em;\n margin-right: 0.3em;\n content: '↗';\n font-style: normal;\n }\n`;\n\nconst StyledHashLink = styled(StyledExternalLink as any)<\n Pick\n>`\n &:after {\n content: none;\n }\n`;\n\nconst StyledLink = styled(RouterLink)`\n ${styles};\n color: ${(props: any) =>\n props.primary ? props.theme.blue.medium : 'inherit'};\n display: ${(props: any) => (props.inline ? 'inline' : 'inherit')};\n`;\n\ninterface LinkProps {\n to: string;\n key?: string;\n children: React.ReactNode;\n className?: string;\n primary?: boolean | undefined;\n onClick?: (param?: any) => void;\n isTextLink?: boolean;\n inline?: boolean;\n shouldOpenNewTab?: boolean;\n}\n\nconst HASH_PATTERN = /^#.*/;\nconst isHashLink = (to: string) => HASH_PATTERN.test(to);\n\nexport const Link = (props: LinkProps) => {\n const {\n children,\n className,\n to,\n primary,\n inline,\n isTextLink = true,\n shouldOpenNewTab = false,\n } = props;\n const { locale } = useIntl();\n const isExternal = (to && to.includes('http')) || to.includes('mailto');\n // Check for ethereum.org root domain links\n const LUKSO_DOT_NETWORK = `https://lukso.network`;\n const isLuksoDotNetwork = to && to.includes(LUKSO_DOT_NETWORK);\n const isHash = isHashLink(to);\n\n if (isHash) {\n return (\n \n {children}\n \n );\n }\n\n if (isExternal) {\n let href = to;\n\n if (to === LUKSO_DOT_NETWORK) {\n // Path is to https://ethereum.org homepage; will append locale\n href = `${LUKSO_DOT_NETWORK}/${locale}`;\n } else if (isLuksoDotNetwork) {\n // Grab everything after \"https://ethereum.org/\"\n const slug: string = to.substr(LUKSO_DOT_NETWORK.length + 1);\n // Split path on \"/\" and check if index 0 matches current locale\n const pathSplit: string[] = slug.split('/');\n if (pathSplit[0] === locale) {\n // Path of link already has matching language path\n href = to;\n } else if (supportedLanguages.includes(pathSplit[0])) {\n // Path of link has a supported language, but does not match locale; swap it\n href = `${LUKSO_DOT_NETWORK}/${locale}/${pathSplit.slice(1).join('/')}`;\n } else {\n // Path of link does not specify a language; will insert locale\n href = `${LUKSO_DOT_NETWORK}/${locale}/${slug}`;\n }\n }\n\n return (\n \n {children}\n \n );\n }\n\n // Add language path if not already present\n const firstPath = to.split('/')[1];\n const langPath = supportedLanguages.includes(firstPath)\n ? to\n : `/${locale}${to}`;\n\n return (\n \n {children}\n \n );\n};\n","module.exports = __webpack_public_path__ + \"static/media/mobile.c6ccc384.svg\";","module.exports = __webpack_public_path__ + \"static/media/laptop.4acaec8f.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOEAAADhCAMAAAAJbSJIAAAAclBMVEX///8dICgMERx7fIAZHCUsLzfExMUAAAze3+A0Nj0AAADk5OUSFh8XGyMpLDTKysv19fXq6+vW1tdhYmZzdXmur7FBQ0oAAAanqKqGh4sAABMECxcOEh2QkZUgIywVGiVZW1+dn6KPkJNoam63uLo5PEM14Rt4AAADdElEQVR4nO2d25KaQBBAGRYFWfCCiLqjeIv//4txN6msqR1nKizdauWcZ7XnVENDDdgdRQAAAAAAAAAAAAAAAAAAAAAA0AezajK8xvWZavh9JtVMW+2dbDtv2jj9JN+5Plbn6beJ22a+zXT1potmaYvSXFMOXJ98iU0PlIVdNoupnt9qZMsvq0gEDT8s7Wil5Jjt08SxAmnDS4R0r3KsrvLCHV/c0JgiX8kLrm8tWcPQmHgtLVi/3YotWWmueKtlBdc3BZVyeFEUzeLKs14tQxMLnotZ7gmsZmhysYo63burqLZhsZe6Lq5SX1ylSvNOKnScTkeuC/0f9HJokpFMEhfWH1bP0NiFiGHz9V70XoZlIyGYLf1RNQ3NUqKcbv0HqWaluRymWwHDue9SYZRzWMz7F5wFTkNdw7Lpf2OjagNBVQ1NW/VuOAktVdcwnvRuOPTe0BjlSmNS586erKFuDjHEEEMXVBoMMcRQ3vD5K02e+CnGz264G/gZO3cWnsiwIxhiiOH9wRBDDO8PhhhieH8wxBDD+4Mhhhj2yGz9EqB2PVp/IsNsbGM/+euTG/rfaruAIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYY/jbs9vywTgPf6kj+MM+AF3Xoa92o+/+nMwAAAAAAAAAAPAavzbhLX4x1G2in0TpbO4eCDXYS+6VFp94mNtASxb64vjYOBEsEdhODO8Id+9PETsNBoA3lXfa8O/YYumEY2mDHEEMMXVBp/s3wEXOIIYb3NzwHTv6nrzRS/bw75lCgF3TkHd+hbijQzzuqNw9kKNGTPToEJgeoGkr01feP0THKlUZkNsI0UExVcygy3yI6ikxh6WRYiMwoiTL/dARNw1hmzkx08q5W0bA8Cw18qnbesHqVJhVK4eWCcXuunGYONye5WZat575GzTBxvgTZE5nn6NEyTErR9kJDezO0luHbQVIwin44psj+QqfSJNKClywObpyLKjksjcKo1ax1V1QNQ2t1Xg0+7FzLljfcbI5aY52rU/v1dBQ2LK2Za77bnR3Pud0UZfntyQFuw+una2VZbGx+Pmq/uz7NDvW+OY8+cd7vB2er5875vs3V756bfX3I9MaO/8Usu8J5p1H5Bt9/4EzN6/UPC2xYAAAAAAAAAAAAAAAAAAAAAAD8p/wEUAVlt99kiIwAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/apple.d4bdafbf.svg\";","module.exports = __webpack_public_path__ + \"static/media/linux.9bb3c026.svg\";","module.exports = __webpack_public_path__ + \"static/media/windows.fda9ea20.svg\";","module.exports = __webpack_public_path__ + \"static/media/github-cli-screenshot.aa2e24ef.png\";","module.exports = __webpack_public_path__ + \"static/media/github-wagyu-key-gen-screenshot.8b32999a.png\";","module.exports = __webpack_public_path__ + \"static/media/instructions_1.74cc9c8d.svg\";","module.exports = __webpack_public_path__ + \"static/media/instructions_2.c77f4b7d.svg\";","module.exports = __webpack_public_path__ + \"static/media/eth-round-landing.c7517c8e.svg\";","module.exports = __webpack_public_path__ + \"static/media/error.e06f957c.svg\";","module.exports = __webpack_public_path__ + \"static/media/complete-filled.d0cf9449.svg\";","module.exports = __webpack_public_path__ + \"static/media/prysmatic-labs-circle.96c803fe.png\";","module.exports = __webpack_public_path__ + \"static/media/lighthouse-circle.e0b82d14.png\";","module.exports = __webpack_public_path__ + \"static/media/gethereum-mascot-circle.75cbd3a5.png\";","module.exports = __webpack_public_path__ + \"static/media/erigon-circle.98cbaf0b.png\";","module.exports = __webpack_public_path__ + \"static/media/erigon-bg.363c42dd.png\";","module.exports = __webpack_public_path__ + \"static/media/close.f1d56225.svg\";","module.exports = __webpack_public_path__ + \"static/media/portis.805b2921.svg\";","import React, { useMemo, useState } from 'react';\nimport { useIntl, FormattedMessage } from 'react-intl';\nimport { CheckBox } from 'grommet';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { SendOptions } from 'web3-eth-contract';\nimport { ByteVectorType, ContainerType, NumberUintType } from '@chainsafe/ssz';\nimport { useWeb3React } from '@web3-react/core';\nimport { AbstractConnector } from '@web3-react/abstract-connector';\nimport Web3 from 'web3';\nimport BigNumber from 'bignumber.js';\nimport { Alert as AlertIcon } from 'grommet-icons';\nimport ReactTooltip from 'react-tooltip';\nimport styled from 'styled-components';\nimport { contractAbi } from '../../../contractAbi';\nimport { BeaconChainValidator, TransactionStatus } from '../types';\nimport { bufferHex } from '../../../utils/SSZ';\nimport { buf2hex } from '../../../utils/buf2hex';\nimport { Text } from '../../../components/Text';\nimport { Button } from '../../../components/Button';\nimport { Paper } from '../../../components/Paper';\nimport { Heading } from '../../../components/Heading';\nimport { TopupInput } from './TopUpInput';\nimport shortenAddress from '../../../utils/shortenAddress';\nimport { Alert } from '../../../components/Alert';\nimport TopUpTransactionModal from './TopUpTransactionModal';\nimport {\n fortmaticTxRejected,\n isLedgerTimeoutError,\n ledgerTxRejected,\n metamaskTxRejected,\n} from '../../../utils/transactionErrorTypes';\nimport {\n PRICE_PER_VALIDATOR,\n TICKER_NAME,\n CONTRACT_ADDRESS,\n LYXER_TO_GWEI,\n} from '../../../utils/envVars';\n\ninterface Props {\n validator: BeaconChainValidator;\n}\n\nconst depositDataContainer = new ContainerType({\n fields: {\n pubkey: new ByteVectorType({\n length: 48,\n }),\n withdrawalCredentials: new ByteVectorType({\n length: 32,\n }),\n amount: new NumberUintType({\n byteLength: 8,\n }),\n signature: new ByteVectorType({\n length: 96,\n }),\n },\n});\n\nconst InputContainer = styled.div`\n margin: 0 auto;\n display: flex;\n justify-content: space-between;\n position: relative;\n`;\n\nconst SubmitButton = styled(Button)`\n height: 50px;\n`;\n\nconst TopUpDetailsContainer = styled.div`\n display: flex;\n justify-content: space-around;\n margin: 10px 0;\n border: 1px solid lightblue;\n background: #eaf6f9;\n border-radius: 5px;\n padding: 10px 20px;\n flex-wrap: wrap;\n @media screen and (max-width: 724px) {\n flex-direction: column;\n .details-item {\n display: flex;\n justify-content: space-between;\n }\n }\n`;\n\nconst TopupPage: React.FC = ({ validator }) => {\n const { connector, account } = useWeb3React();\n\n const effectiveBalance = useMemo(\n () => Number(validator.effectivebalance) / LYXER_TO_GWEI,\n [validator]\n );\n\n const balance = useMemo(() => Number(validator.balance) / LYXER_TO_GWEI, [\n validator,\n ]);\n\n const maxTopupValue = useMemo(\n () => Math.max(1, Number(PRICE_PER_VALIDATOR) + 0.26 - Number(balance)),\n [balance]\n );\n\n const minTopupValue = 1;\n\n const [value, setValue] = React.useState(maxTopupValue);\n\n const [showTxModal, setShowTxModal] = React.useState(false);\n\n const [txHash, setTxHash] = React.useState('');\n\n const balanceAfterTopup = useMemo(() => +balance + Number(value), [\n balance,\n value,\n ]);\n\n const [transactionStatus, setTransactionStatus] = useState(\n 'not_started'\n );\n\n const { formatMessage } = useIntl();\n\n const submitTopupTransaction = async () => {\n setTransactionStatus('waiting_user_confirmation');\n setShowTxModal(true);\n const walletProvider: any = await (connector as AbstractConnector).getProvider();\n const web3: any = new Web3(walletProvider);\n const contract = new web3.eth.Contract(contractAbi, CONTRACT_ADDRESS);\n const bnInput = new BigNumber(value);\n const transactionAmount = bnInput.multipliedBy(1e18).toNumber();\n const reconstructedRootAmount = bnInput.multipliedBy(1e9).toNumber();\n\n const transactionParameters: SendOptions = {\n gasPrice: web3.utils.toHex(await web3.eth.getGasPrice()),\n from: account as string,\n value: transactionAmount,\n };\n\n const reconstructedKeyFile = {\n pubkey: bufferHex(validator.pubkey.substring(2)),\n withdrawalCredentials: Buffer.alloc(32),\n amount: reconstructedRootAmount,\n signature: Buffer.alloc(96),\n };\n\n const byteRoot = depositDataContainer.hashTreeRoot(reconstructedKeyFile);\n const reconstructedDepositDataRoot = `0x${buf2hex(byteRoot)}`;\n\n contract.methods\n .deposit(\n reconstructedKeyFile.pubkey,\n reconstructedKeyFile.withdrawalCredentials,\n reconstructedKeyFile.signature,\n reconstructedDepositDataRoot\n )\n .send(transactionParameters)\n .on('transactionHash', (hash: string): void => {\n setTransactionStatus('confirm_on_chain');\n setTxHash(hash);\n })\n .on(\n 'confirmation',\n (confirmation: number, receipt: { status: {} }): any => {\n if (confirmation === 0) {\n if (receipt.status) {\n setTransactionStatus('success');\n } else {\n setTransactionStatus('error');\n }\n }\n }\n )\n .on('error', (error: any) => {\n if (isLedgerTimeoutError(error)) {\n setShowTxModal(false);\n } else if (\n metamaskTxRejected(error) ||\n ledgerTxRejected(error) ||\n fortmaticTxRejected(error)\n ) {\n setTransactionStatus('user_rejected');\n } else {\n setTransactionStatus('error');\n }\n });\n };\n\n const [termA, setTermA] = useState(false);\n\n const showAlert = React.useMemo(() => {\n return (\n balanceAfterTopup > PRICE_PER_VALIDATOR || balance > PRICE_PER_VALIDATOR\n );\n }, [balance, balanceAfterTopup]);\n\n const alertText = React.useMemo(() => {\n // If EB already maxed out\n if (effectiveBalance >= PRICE_PER_VALIDATOR)\n return formatMessage(\n {\n defaultMessage:\n 'Validator effective balance is currently maxed out. If desired, you may add {minTopupValue} {TICKER_NAME} (the minimum allowed by the deposit contract)',\n description:\n '{minTopupValue} is a number, and {TICKER_NAME} is either LYX or LYXt depending on network',\n },\n { TICKER_NAME, minTopupValue }\n );\n // If EB is low (31 or less)\n if (balance > PRICE_PER_VALIDATOR)\n return formatMessage(\n {\n defaultMessage:\n 'Validator balance is over {PRICE_PER_VALIDATOR}, but effective balance is low ({effectiveBalance}). Adding {minTopupValue} {TICKER_NAME} (the minimum allowed by the deposit contract) will max out your effective balance.',\n },\n { PRICE_PER_VALIDATOR, effectiveBalance, minTopupValue, TICKER_NAME }\n );\n if (value > maxTopupValue)\n return formatMessage(\n {\n defaultMessage: `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.`,\n },\n {\n PRICE_PER_VALIDATOR,\n TICKER_NAME,\n maxTopupValue: maxTopupValue.toFixed(4),\n }\n );\n if (value < minTopupValue)\n return formatMessage(\n {\n defaultMessage: `The LUKSO staking deposit contract requires a minimum of {minTopupValue} {TICKER_NAME} to be sent at one time to be accepted.`,\n },\n { minTopupValue, TICKER_NAME }\n );\n return '';\n }, [balance, maxTopupValue, formatMessage, effectiveBalance, value]);\n\n const submitBtnTooltipText = React.useMemo(() => {\n if (value <= 0 || value > maxTopupValue)\n return formatMessage({\n defaultMessage: 'Please enter a valid top-up value.',\n });\n\n if (value < minTopupValue)\n return formatMessage(\n {\n defaultMessage:\n 'Minimum top-up value is {minTopupValue} {TICKER_NAME}.',\n },\n { minTopupValue, TICKER_NAME }\n );\n\n if (!termA)\n return formatMessage({\n defaultMessage: 'Please accept the conditions above.',\n });\n return '';\n }, [value, termA, maxTopupValue, formatMessage]);\n\n return (\n
\n \n {showTxModal && (\n setShowTxModal(false)}\n />\n )}\n\n \n \n \n \n \n
\n \n \n \n {shortenAddress(validator.pubkey, 6)}\n
\n
\n \n \n \n {`${balance.toFixed(8)} ${TICKER_NAME}`}\n
\n
\n \n \n \n {`${balanceAfterTopup.toFixed(8)} ${TICKER_NAME}`}\n
\n
\n \n \n \n
\n setTermA(!termA)}\n label={\n \n \n \n }\n />\n
\n
\n \n
\n \n {alertText}\n
\n
\n
\n \n \n \n maxTopupValue ||\n value < minTopupValue ||\n !termA\n }\n />\n \n \n
\n
\n );\n};\n\nexport default TopupPage;\n","export function buf2hex(buffer: Uint8Array) {\n // buffer is an ArrayBuffer\n return Array.prototype.map\n .call(new Uint8Array(buffer), x => `00${x.toString(16)}`.slice(-2))\n .join('');\n}\n","import React from 'react';\nimport styled from 'styled-components';\nimport { FormDown, FormUp } from 'grommet-icons';\n\nconst StyledButton = styled.button`\n height: 25px;\n width: 50px;\n cursor: pointer;\n border: 1px solid #ddd;\n :focus {\n outline: none;\n }\n :hover {\n background-color: ${(p: any) => p.theme.gray.lightest};\n }\n`;\nconst ButtonContainer = styled.div`\n display: flex;\n flex-direction: column;\n button:nth-child(1) {\n border-radius: ${(p: any) => `0 ${p.theme.borderRadius} 0 0`};\n }\n button:nth-child(2) {\n border-radius: ${(p: any) => `0 0 ${p.theme.borderRadius} 0`};\n }\n`;\nconst StyledInput = styled.input`\n height: 50px;\n width: 100%;\n font-size: 18px;\n line-height: 24px;\n color: #444444;\n padding-left: 10px;\n box-sizing: border-box;\n background-color: ${(p: any) => p.theme.gray.lightest};\n border-radius: ${(p: any) =>\n `${p.theme.borderRadius} 0 0 ${p.theme.borderRadius}`};\n -webkit-appearance: textfield;\n -moz-appearance: textfield;\n appearance: textfield;\n ::-webkit-inner-spin-button,\n ::-webkit-outer-spin-button {\n -webkit-appearance: none;\n }\n border: 1px solid #ddd;\n border-right: none;\n display: inline-flex;\n :focus {\n outline: none;\n }\n`;\n\ninterface Props {\n value: number | string;\n setValue: (e: number) => void;\n maxValue: number;\n}\n\nexport const TopupInput = ({\n value,\n setValue,\n}: // maxValue,\nProps): JSX.Element => {\n const handleManualInput = (e: any) => {\n const val = e.target.value;\n setValue(val);\n };\n\n const decrement = () => {\n if (value > 0) {\n setValue(Math.max(0, +value - 1));\n }\n };\n\n const increment = () => {\n // setValue(Math.min(+value + 1, maxValue));\n setValue(+value + 1);\n };\n\n return (\n
\n \n \n \n \n \n \n \n \n \n
\n );\n};\n","module.exports = __webpack_public_path__ + \"static/media/teku-bg.98a69e3e.png\";","module.exports = __webpack_public_path__ + \"static/media/nimbus-bg.0f9e44a7.png\";","module.exports = __webpack_public_path__ + \"static/media/besu-bg.8330043e.png\";","module.exports = __webpack_public_path__ + \"static/media/nethermind-bg.b5ed7e15.png\";","module.exports = __webpack_public_path__ + \"static/media/social-instagram.43070b59.svg\";","module.exports = __webpack_public_path__ + \"static/media/social-twitter.adf53d59.svg\";","module.exports = __webpack_public_path__ + \"static/media/social-linkedin.4c926e42.svg\";","module.exports = __webpack_public_path__ + \"static/media/social-telegram.23eed863.svg\";","module.exports = __webpack_public_path__ + \"static/media/social-discord.a19ee551.svg\";","module.exports = __webpack_public_path__ + \"static/media/social-reddit.e3afaecf.svg\";","module.exports = __webpack_public_path__ + \"static/media/social-medium.1e564e15.svg\";","module.exports = __webpack_public_path__ + \"static/media/social-github.d2bf2e36.svg\";","module.exports = __webpack_public_path__ + \"static/media/lukso-logo.c9532e8a.svg\";","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport styled from 'styled-components';\nimport { Checkmark, Close } from 'grommet-icons';\nimport Spinner from '../../../components/Spinner';\nimport { Text } from '../../../components/Text';\nimport { stepStatus } from '../types';\n\nconst Container = styled.div`\n justify-content: space-around;\n flex-direction: column;\n`;\n\nconst CircleDiv = styled.div`\n height: 45px;\n width: 45px;\n border: 6px solid\n ${p => {\n // @ts-ignore\n if (p.status === 'error') return p.theme.red.light;\n // @ts-ignore\n if (p.status === 'complete') return p.theme.green.light;\n return p.theme.gray.light;\n }};\n border-radius: 50%;\n position: relative;\n .step {\n position: absolute;\n top: 6px;\n left: 12px;\n }\n`;\n\nconst LoadingCircleDiv = styled.div`\n position: relative;\n .step {\n position: absolute;\n top: 12px;\n left: 18px;\n }\n`;\n\nconst Circle = ({\n step,\n loading,\n status,\n}: {\n step: any;\n loading?: boolean;\n status?: string;\n}) => {\n if (loading) {\n return (\n \n \n {step}\n \n );\n }\n\n return (\n // @ts-ignore\n \n {step}\n \n );\n};\n\nconst CloseIcon = styled(p => )`\n position: absolute;\n left: -7px;\n top: -1px;\n`;\nconst CheckIcon = styled(p => )`\n position: absolute;\n left: -7px;\n top: -1px;\n`;\n\nconst ProgressCircle = ({\n status,\n step,\n}: {\n status: stepStatus;\n step: number;\n}) => {\n if (status === 'loading') {\n return ;\n }\n if (status === 'staged') {\n return ;\n }\n if (status === 'complete') {\n return } />;\n }\n if (status === 'error') {\n return } />;\n }\n return ;\n};\n\ninterface TransactionProgressProps {\n signTxStatus: stepStatus;\n confirmOnChainStatus: stepStatus;\n}\n\nconst TransactionProgress: React.FC = ({\n signTxStatus,\n confirmOnChainStatus,\n}) => {\n return (\n \n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n );\n};\n\nexport default TransactionProgress;\n","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { Box, Layer } from 'grommet';\nimport { Heading } from '../../../components/Heading';\nimport { Text } from '../../../components/Text';\nimport TransactionProgress from './TransactionProgress';\nimport { stepStatus, TransactionStatus } from '../types';\nimport { Button } from '../../../components/Button';\nimport { LYXERSCAN_URL } from '../../../utils/envVars';\nimport { Link } from '../../../components/Link';\n\ninterface TopUpTransactionModalProps {\n onClose: () => void;\n transactionStatus: TransactionStatus;\n txHash: string;\n}\n\nconst TopUpTransactionModal: React.FC = ({\n onClose,\n transactionStatus,\n txHash,\n}) => {\n const signTxStatus: stepStatus = React.useMemo(() => {\n if (\n transactionStatus === 'waiting_user_confirmation' ||\n transactionStatus === 'not_started'\n ) {\n return 'loading';\n }\n if (transactionStatus === 'user_rejected') {\n return 'error';\n }\n return 'complete';\n }, [transactionStatus]);\n\n const confirmOnChainStatus: stepStatus = React.useMemo(() => {\n if (\n transactionStatus === 'waiting_user_confirmation' ||\n transactionStatus === 'not_started' ||\n transactionStatus === 'user_rejected'\n ) {\n return 'staged';\n }\n if (transactionStatus === 'confirm_on_chain') {\n return 'loading';\n }\n if (transactionStatus === 'error') {\n return 'error';\n }\n return 'complete';\n }, [transactionStatus]);\n\n return (\n \n \n \n \n \n \n {txHash?.length > 0 && (\n \n \n Blockexplorer\n \n ),\n }}\n description=\"{etherscan} is a share link to this transaction on etherscan.io, labeled 'Etherscan'\"\n />\n \n )}\n \n \n