{"version":3,"sources":["types/global.ts","types/localStorage.ts","context/reducer.ts","context/index.tsx","consts/api.ts","data/Account.ts","utils/routerWizard.ts","hooks/useStoredData/useLocalStorage.ts","hooks/useStoredData/index.ts","hooks/useEmailAccount.ts","types/snackbar.tsx","consts/errors.tsx","hooks/usePrevious.ts","hooks/useSnackPack.ts","hooks/useMatomo.ts","hooks/useWallet/index.ts","context/actions.ts","hooks/useWallet/useMetaMask.ts","hooks/useWallet/useWalletConnect.ts","utils/ethToGwei.ts","utils/http.ts","data/requestDepositPlan.ts","data/storeSignedAgreement.ts","hooks/useStepWizard.ts","hooks/useWalletService.ts","utils/addressTool.ts","core/MetaTags.tsx","components/Footer.tsx","components/SnackbarPack.tsx","components/Logo.tsx","components/Header.tsx","components/Stepper.tsx","components/Progress.tsx","components/Layout.tsx","components/ActionButtons.tsx","components/Divider.tsx","components/FeedbackForm.tsx","components/BlockLayout.tsx","components/SubscribeForm.tsx","components/AgreementsLinks.tsx","containers/Sign.tsx","containers/Review.tsx","components/AmountForm.tsx","utils/mathTool.ts","containers/StakeAmount.tsx","assets/Explanation.tsx","containers/TxBroadcasted.tsx","containers/StepWizard.tsx","containers/RouterWizard.tsx","components/WalletWidgetViews/private/ConnectingLayout.tsx","components/WalletWidgetViews/private/DisabledWalletButton.tsx","components/WalletWidgetViews/private/StateIndicator.tsx","components/WalletWidgetViews/private/TransactionList.tsx","components/WalletWidgetViews/ConnectedView.tsx","components/WalletWidgetViews/ConnectingView.tsx","components/WalletWidgetViews/ConnectErrorView.tsx","components/WalletWidgetViews/DisconnectedView.tsx","components/WalletWidgetViews/WalletChangingView.tsx","containers/WalletWidgetWizard.tsx","copy/index.ts","copy/en-EN.ts","core/App.tsx","hooks/useStep.ts","core/GlobalStyles.tsx","lib.tsx","index.tsx","assets/MetaMaskLogo.tsx","assets/WalletConnectLogo.tsx","consts/wallet.tsx","types/staking.ts","services/wallet.ts","utils/web3.ts","types/wallet.ts","consts/staking.tsx","consts/stakefish.tsx"],"names":["GlobalState","StorageKey","INIT_STATES","staking","contracts","currentStep","StakingStep","StakeAmount","stakeAmount","MINIMUM_STAKING_VALUE","exitDate","ExitDate","Fastest","gasCost","undefined","validatorsAmount","userEmail","txBroadcastState","BroadcastState","Pending","txBroadcastResult","eth1Id","eth1TxUrl","errorMsg","wallet","connectedWallet","web3Provider","balance","address","network","history","errorOnWalletConnection","global","modalOpen","modalId","snackbarPack","loadingComponent","walletCapsule","mainSection","appCombinedReducer","combineReducers","state","type","payload","field","value","payloads","AppContext","createContext","AppContextProvider","children","useReducer","dispatch","useState","provider","setProvider","memoizedValue","useMemo","Provider","memo","API_URL","signUp","account","a","url","axios","post","then","data","checkStatus","unsubscribe","scheduleReminder","cancelReminder","handleOnLoadChangeStep","setStep","props","localStorageStep","currentPath","localStorage","walletConnected","agreementSigned","agreementsSignature","STEP_PATH_MAP","Review","Sign","getOnLoadStep","StakingState","STAKE_AMOUNT","EXIT_DATE","isNil","targetNextStep","AGREEMENTS_SIGNATURE","useLocalStorage","key","initialValue","item","window","getItem","JSON","parse","error","console","log","storedValue","setStoredValue","valueToStore","Function","setItem","stringify","removeItem","useStoredData","useContext","WALLET_CONNECT","storageWalletConnect","removeStorageWalletConnect","WALLET_CONNECTED","storageWalletConnected","setStorageWalletConnected","removeStorageWalletConnected","useEffect","name","storageStakeAmount","setStorageStakeAmount","removeStorageStakeAmount","storageExitDate","setStorageExitDate","removeStorageExitDate","storageAgreementsSignature","setStorageAgreementsSignature","removeStorageAgreementsSignature","USER_EMAIL","storageEmail","setStorageEmail","removeStorageEmail","LAST_EDIT_TIMESTAMP","storageTimeStamp","setStorageTimeStamp","removeStorageTimeStamp","newDate","lastDate","Date","getTime","resetLocalStorage","resetWallet","useEmailAccount","setAccount","reminder","setReminder","status","confirmed","createAccountRequest","email","language","verifyAccount","createAccount","useCallback","newAccount","removeAccount","turnReminderOn","includes","turnReminderOff","snackPackProps","alertProps","color","autoHideDuration","disableNextButton","EthErrorMessages","id","CustomErrorMessages","insufficientFunds","metaMaskUninstalled","values","chunks","href","target","rel","metaMaskProviderFailed","LINK_CONTACT","broadcastGeneralFailure","storeAgreementsError","mainnetRequirement","timeoutSignMessage","walletService","ErrorKeys","ErrorMessages","getErrorMessage","err","Object","isWalletError","String","code","Error","message","usePrevious","ref","useRef","current","useSnackPack","openSnackPack","SNACKBAR_PACK","hideSnackPack","isOpenSnackPack","useMatomo","trackEvent","matomo","MetaMask","SUPPORTED_WALLETS","WalletConnect","useWallet","formatMessage","useIntl","setConnectingWallet","setWalletWidgetStateChangeType","setWalletWidgetState","walletChecked","setWalletChecked","currentStepRef","stateWalletRef","boundedDispatchWalletInfo","dispatchWalletInfo","boundedDispatchWalletConnectionError","e","errorMessage","WalletState","ERROR_ON_WALLET_CONNECTION","dispatchWalletConnectionError","boundedDispatchStakingStatesReset","GAS_COST","VALIDATORS_AMOUNT","dispatchStakingStatesReset","connectWallet","connectWalletCallback","MODAL_OPEN","category","action","handleError","fetchWallet","fetchWalletCallback","walletInfo","WalletWidgetState","CONNECTED","resetStoredDataAndReload","removeWallet","setTimeout","location","reload","handleStepReset","handleFetchWallet","Broadcasting","Done","targetPrevStep","handleChainChanged","handleAccountsChanged","accounts","walletType","length","handleDisconnect","handleProviderChange","previousWalletProvider","handleConnectWallet","connectMetaMaskCallback","connectWalletConnectCallback","handleUpdateBalance","getBalance","BALANCE","Number","ethers","utils","formatEther","handleBlock","blockNumber","accountsChangedHandler","connected","setConnected","extensionInstalled","ethereum","inLocalStorage","connector","send","chainId","Wallet","initializeWallet","retrieveAddress","retrieveWallet","on","removeListener","useMetaMask","hasConnectedWallet","isWalletConnectPreferred","hasWalletConnectObject","web3Modal","connectTo","rawProvider","pollingInterval","initListeners","connectedProvider","providers","Web3Provider","disconnect","_newNetwork","oldNetwork","clearCachedProvider","useWalletConnect","walletUnconnected","walletHasEnoughBalance","isMainnetNetwork","STAKE_INPUT_ERROR_MESSAGES","overWalletBalance","off","ethToGwei","eth","axiosOriginal","create","requestDepositPlan","depositAmount","promisedExitDate","takeLimit","body","plan","storeSignedAgreement","agreement","signature","signedAt","useStepWizard","prevStep","isFirstLoad","broadcastedTx","setBroadcastedTx","providerRef","getWalletService","useWalletService","stakingStateRef","walletStateRef","getAndSetWalletService","WalletService","dispatchBroadcastError","TX_BROADCAST_RESULT","TX_BROADCAST_STATE","Negative","beforeChangeActions","LOADING_COMPONENT","CONTRACTS","MODAL_ID","estimateGasCost","agreementText","EN_AGREEMENTS","join","signAgreement","signedPayload","broadcastAndGetTx","tx","afterChangeActions","getBroadcastReceipt","receipt","txHash","Positive","onNavigateStepClick","direction","scroll","majorButtonCallbacks","firstStep","reviewStep","signStep","txPendingStep","txPositiveStep","txNegativeStep","subButtonCallbacks","handleAfterChange","getTruncatedAddress","truncateAfter","replace","substring","HTML","Helmet","SEO","META_DATA","title","description","keywords","suffixedTitle","meta","content","property","SocialIconsBox","styled","theme","listStyle","margin","spacing","padding","display","justifyContent","flexWrap","gap","textAlign","breakpoints","down","LegalBox","MuiBox","marginBottom","palette","gray","background","fontWeight","Copyright","FooterBox","letterSpacing","fontSize","lineHeight","Footer","intl","renderers","copyright","privacyPolicy","termsOfService","ifYouHaveAnyQuestions","dashboard","SOCIAL_LINKS","map","index","SocialIcon","variant","icon","mt","mb","Typography","component","LINK_PRIVACY_POLICY","LINK_TERMS_OF_SERVICE","LINK_DASHBOARD","SnackbarPack","useTheme","isMobile","useMediaQuery","snackPack","setSnackPack","prevSnackPack","open","setOpen","messageInfo","setMessageInfo","handleClose","event","reason","onClose","handleExited","prev","slice","Snackbar","Icon","iconKey","size","sx","alignItems","TransitionProps","onExited","LogoRoot","width","minWidth","overflow","transition","transformOrigin","height","Logo","viewBox","style","className","d","fill","HeaderBox","backgroundColor","white","networkRenderer","isSupportedNetwork","split","toUpperCase","SUPPORTED_NETWORK_MAP","Header","loading","walletCapsuleProps","WalletCapsule","renderNetwork","EthAmountLabel","amount","StepLabelText","typographyProps","Wrapper","paddingBottom","whiteSpace","Stepper","steps","activeStep","label","isLastStepInDone","isErrorStep","StepLabel","step","xs","sm","GridContainerBox","GridContainer","marginTop","MainBox","flexDirection","minHeight","ContainerBox","maxWidth","paddingLeft","paddingRight","boxSizing","Layout","stepperProps","modal","headerProps","flexGrow","columnSpacing","rowSpacing","md","GridItem","Progress","pt","Modal","list","activeId","majorButtonTextMap","ButtonGroup","position","MajorButton","stepState","fullWidth","dashboardUrl","hasLessThanMinimumBalance","commonProps","disabled","onClick","majorButtonPropsMap","Button","ActionButtons","getStepState","isPrevNeeded","marginY","StyledDivider","left","top","Divider","my","Rectangle","inset","primary","main","borderRadius","zIndex","transform","Card","FeedbackForm","text","button","mx","mailto","BlockLayout","titleSize","tooltip","Tooltip","TooltipSizeVariants","Small","Large","startIcon","SubscribeForm","accountStatus","validationError","setValidationError","emailAddress","setEmailAddress","handleChange","handleSubmit","isEmail","yourEmail","subscribe","validEmail","helperText","buttonText","actionButtonProps","TextField","placeholder","onChange","AgreementsLinks","linkProps","stakingSummary","enterYourEmailAddress","whileNotRequiredIfYouShareEmailAddress","lg","Bullet","StyledCard","highlight","reviewAgreements","validatingServiceFee","percentOfRewards","CardColorVariants","Muted","Initial","CardSizeVariants","SwipeableMobileStepper","swipeableViewsProps","overflowXHidden","marginLeft","AGREEMENTS","i","Medium","wrap","pr","HELPER_MESSAGES","default","handleValueChange","walletBalance","setters","setHelperText","setIsError","onAmountChange","isError","belowMinStakeValue","val","Math","floor","valueOf","str","toString","getDecimalLength","overflowStepDigit","AmountForm","setValue","NumericField","InputProps","inputProps","min","pattern","minLength","inputMode","autoComplete","autoCorrect","spellCheck","valueAsNumber","onBlur","splitValue","digitValue","handleInputBlur","stakeAmountOfEth","Explanation","src","alt","copyData","blurb","summary","gas","txLink","ctaButton","Status","break","IdLinkBox","TableBox","paddingBlockStart","wordBreak","tableLayout","borderSpacing","verticalAlign","wordWrap","typography","fontWeightMedium","th","tr","StyledTypography","secondary","fontWeightRegular","StepBox","$state","positive","light","negative","getStakeSummaryData","copies","align","rotate","TxBroadcasted","isPositive","isNegative","isPending","showStatus","pair","getRenderer","onExitDateChange","date","StepWizard","DASHBOARD_URL","showFeedbackForm","FEEDBACK_EMAIL","Router","stepWizardProps","walletBalanceRef","boundedHandleOnLoadChangeStep","boundedHandleBrowserChangeStep","PATH_STEP_MAP","targetStep","boundedHandleWalletChangeStep","handleWalletChangeStep","Wizard","useBeforeunload","PrevButtonBox","LayoutHeader","ConnectingLayout","onPrevClick","DisabledWalletButton","WalletButton","onWalletButtonClick","StatusIndicatorBox","StateIndicator","subtitle","LoadingIcon","TransactionBox","TransactionListWrapper","maxHeight","TransactionListUl","TransactionListItem","border","transitions","textDecoration","marginBlockStart","TransactionList","walletStates","transactions","emptyListMessage","depositTransaction","withdrawTransaction","otherTransaction","trimEsnAddressAfterNChars","getTransactionType","from","to","items","hash","ActionButtonBox","ConnectedView","onChangeClick","clipboard","useClipboard","copiedTimeout","handleCopyClick","copy","connectedWith","change","copyAddress","addressCopied","viewOnExplorer","balanceLabel","balanceValue","copied","ConnectingView","connectingWallet","layoutProps","ConnectErrorView","DisconnectedView","walletList","WalletChangingView","validSupportedWallets","entries","filter","devices","isDesktop","stateChangeTypeMaps","toDisconnected","CONNECT_ERROR","DISCONNECTED","toConnecting","WALLET_CHANGING","CONNECTING","toConnectError","toConnected","toWalletChanging","viewPropsMap","walletButtonClickHandler","getViewProps","currentState","setState","handleWalletButtonClick","Disconnected","Connecting","ConnectError","Connected","WalletChanging","ConnectedNoteRoot","ConnectedNote","WalletButtons","supportingElement","WalletWidgetWizard","stateChangeType","ADDRESS_COPIED","AN_ERROR_OCCURED","AS_SOON_AS_WITHDRAWALS_ARE_ENABLED","BACK_TO_SIGN_AND_BROADCAST","BEFORE_STAKING_PLEASE_CONNECT_YOUR_WALLET","BEFORE_YOU_CONTINUE_SOME_THINGS_TO_REMEMBER","CHANGE","CONNECTED_WITH","CONNECT_TO_A_WALLET","CONNECT_WALLET","COPYRIGHT_STAKE_FISH","COPY_ADDRESS","DEPOSIT_AMOUNT","DEPOSIT_IS_STILL_BROADCASTING","DEPOSIT_TRANSACTION_HASNT_BEEN_BROADCASTED","DEPOSIT_TRANSACTION_HAS_BEEN_BROADCASTED","DO_NOT_LOSE_ACCESS_TO_YOUR_WALLET","DO_NOT_USE_WALLET_ADDRESS","ENTER_YOUR_EMAIL_ADDRESS_OPTIONAL","ERROR","SUCCESS","ESTIMATED_AMOUNT_OF_VALIDATORS","ETH1_DEPOSIT_TRANSACTION_ID","ETHEREUM_STAKING","ETHEREUM_STAKING_SHORT","GO_BACK_TO_THE_PREVIOUS_STEP_AND_TRY_AGAIN","IF_THIS_TAKES_AN_EXCESSIVE_AMOUNT_OF_TIME","IF_YOU_HAVE_ANY_QUESTIONS_CONTACT_US","IF_YOU_HAVE_ANY_QUESTIONS_PLEASE_CONTACT_US","INSUFFICIENT_FUNDS_IN_CONNECTED_WALLET","I_HAVE_READ_AND_ACCEPTED_TOS","I_UNDERSTAND_THE_SLASHING_RISK_ASSOCIATED_WITH_STAKING","I_WONT_BE_ABLE_TO_WITHDRAW","MINIMUM_STAKING_VALUE_IS","NEXT_STEP","ONE_YEAR_AFTER_WITHDRAWALS_ARE_ENABLED","PERCENT_OF_REWARDS","PLEASE_REVIEW_AND_SIGN_USING_CONNECTED_WALLET","PREV_STEP","PRIVACY_POLICY","REVIEW_AGREEMENTS","SIGN_AND_BROADCAST","SIX_MONTHS_AFTER_WITHDRAWALS_ARE_ENABLED","STACKING_SUMMARY","STAKEFISH_DOES_NOT_HAVE_CUSTODY_OF_MY_DEPOSIT","STAKEFISH_VALIDATING_SERVICE_FEE","STAKE_AMOUNT_MUST_BE_AT_LEAST","STAKE_AMOUNT_OF_ETH","STEP","SUBSCRIBE","UNSUBSCRIBE","TERMS_OF_SERVICE","THE_EXIT_DATE_IS_WHEN_AN_EXIT_TRANSACTION_WILL_BE_SENT","TRANSACTION_BROADCASTED","TRANSACTION_SUMMARY","TRY_AGAIN","TX_BROADCASTING","USE_WALLET_TO_SIGN_FOR_CONFIRMATION","VALUE_STEPPER_IS","VIEW_ON_ETHERSCAN","VIEW_ON_EXPLORER","VIEW_YOUR_VALIDATORS_ON_THE_DASHBOARD","DASHBOARD","WE_ARE_WAITING_FOR_YOUR_TRANSACTION","WHILE_NOT_REQUIRED_IF_YOU_SHARE_EMAIL_ADDRESS","WITHDRAWAL_WILL_NOT_BE_ENABLED","YOUR_EMAIL","REQUIRE_VALID_EMAIL","TRANSACTION_LIST_TITLE","TRANSACTION_LIST_EMPTY","WALLET_BALANCE_LABEL","WALLET_BALANCE_VALUE","DEPOSIT_TRANSACTION","WITHDRAW_TRANSACTION","OTHER_TRANSACTION","ERR_GENERAL","ERR_WALLET_SERVICE","ERR_ETH_GENERAL","ERR_STORE_AGREEMENTS","ERR_MAINNET_REQUIREMENT","ERR_METAMASK_UNINSTALLED","ERR_METAMASK_PROVIDER_FAILURE","ERR_INSUFFICIENT_FUNDS","ERR_TIMEOUT_SING_MESSAGE","ERR_BROADCAST_GENERAL_FAILURE","ERR_EMAIL_SUBSCRIBE","ERR_EMAIL_UNSUBSCRIBE","ERR_ETH_PARSE","ERR_ETH_INVALID_REQUEST","ERR_ETH_METHOD_NOT_FOUND","ERR_ETH_INVALID_PARAMS","ERR_ETH_INTERNAL","ERR_ETH_INVALID_INPUT","ERR_ETH_RESOURCE_NOT_FOUND","ERR_ETH_RESOURCE_UNAVAILABLE","ERR_ETH_TRANSACTION_REJECTED","ERR_ETH_METHOD_NOT_SUPPORTED","ERR_ETH_LIMIT_EXCEEDED","ERR_ETH_USER_REJECTED_REQUEST","ERR_ETH_UNAUTHORIZED","ERR_ETH_UNSUPPORTED_METHOD","ERR_ETH_DISCONNECTED","ERR_ETH_CHAIND_IS_CONNECTED","FEEDBACK_TITLE","FEEDBACK_TEXT","FEEDBACK_BUTTON","locale","handleModalTrigger","Main","setActiveStep","defaultTargetStep","CURRENT_STEP","useStep","walletWidgetState","walletWidgetStateChangeType","STAKING_STEPS","walletWidget","toState","walletInFocusView","RouterWizard","App","messages","GlobalStyles","createGlobalStyle","StakingFlow","MatomoProvider","createInstance","urlBase","siteId","hostname","baseColor","colors","highlightColor","large","duration","ReactDOM","render","StrictMode","document","getElementById","MetaMaskLogo","fillRule","clipRule","WalletConnectLogo","USER_WALLET_ACTION_TIMEOUT","STAKEFISH_SERVICES_CONTRACT_FACTORY_ADDRESS","logo","Web3Modal","cacheProvider","providerOptions","walletconnect","package","WalletConnectProvider","options","rpc","bridge","homestead","walletFactory","getSigner","signer","getAddress","getNetwork","changeChainId","Promise","resolve","reject","timeout","Buffer","clearTimeout","catch","depositSize","saltAddresses","retrieveSaltAddressesFromContract","factory","Contract","STAKEFISH_SERVICES_CONTRACT_FACTORY_ABI","estimateGas","fundMultipleContracts","parseEther","gasUsed","getGasPrice","gasPrice","mul","connect","wait","SupportedNetworks","salt","url1","url2","SocialIconVariant","Telegram","Twitter","YouTube","Instagram","LinkedIn","Reddit"],"mappings":"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","file":"static/js/main.bba32502.chunk.js","sourcesContent":["import { ModalType } from \"./modal\"\nimport { ActionShape } from \"./context\"\nimport { SnackPackProps } from \"./snackbar\"\n\nexport type GlobalActionKey = \"SET_MODAL_OPEN\" | \"SET_MODAL_ID\" | \"SET_SNACKBAR_PACK\" | \"SET_LOADING_COMPONENT\"\n\nexport type GlobalActionsUnion = SetModalOpen | SetModalId | SetSnackbarPack | SetLoadingComponent\n\nexport enum GlobalState {\n MODAL_OPEN = \"modalOpen\",\n MODAL_ID = \"modalId\",\n SNACKBAR_PACK = \"snackbarPack\",\n LOADING_COMPONENT = \"loadingComponent\"\n}\n\nexport interface GlobalStates {\n [GlobalState.MODAL_OPEN]: boolean\n [GlobalState.MODAL_ID]: ModalType\n [GlobalState.SNACKBAR_PACK]?: SnackPackProps\n [GlobalState.LOADING_COMPONENT]: {\n walletCapsule: boolean\n mainSection: boolean\n }\n}\n\ninterface GlobalActionShape extends ActionShape {}\n\ninterface SetModalOpen extends GlobalActionShape {\n type: \"SET_MODAL_OPEN\"\n payload: {\n field: GlobalState.MODAL_OPEN\n value: GlobalStates[GlobalState.MODAL_OPEN]\n }\n}\ninterface SetModalId extends GlobalActionShape {\n type: \"SET_MODAL_ID\"\n payload: {\n field: GlobalState.MODAL_ID\n value: GlobalStates[GlobalState.MODAL_ID]\n }\n}\ninterface SetSnackbarPack extends GlobalActionShape {\n type: \"SET_SNACKBAR_PACK\"\n payload: {\n field: GlobalState.SNACKBAR_PACK\n value: GlobalStates[GlobalState.SNACKBAR_PACK]\n }\n}\ninterface SetLoadingComponent extends GlobalActionShape {\n type: \"SET_LOADING_COMPONENT\"\n payload: {\n field: GlobalState.LOADING_COMPONENT\n value: GlobalStates[GlobalState.LOADING_COMPONENT]\n }\n}\n","import { StakingStates } from \"./staking\"\nimport { SupportedWallet } from \"./wallet\"\n\nexport enum StorageKey {\n WALLET_CONNECT = \"walletconnect\",\n WALLET_CONNECTED = \"walletConnected\",\n STAKE_AMOUNT = \"stakeAmount\",\n EXIT_DATE = \"exitDate\",\n AGREEMENTS_SIGNATURE = \"agreementsSignature\",\n LAST_EDIT_TIMESTAMP = \"lastEditTimeStamp\",\n USER_EMAIL = \"userEmail\"\n}\n\nexport interface StorageProps {\n [StorageKey.WALLET_CONNECT]?: {}\n [StorageKey.WALLET_CONNECTED]?: SupportedWallet[\"name\"]\n [StorageKey.STAKE_AMOUNT]?: StakingStates[\"stakeAmount\"]\n [StorageKey.EXIT_DATE]?: StakingStates[\"exitDate\"]\n [StorageKey.AGREEMENTS_SIGNATURE]?: StakingStates[\"agreementsSignature\"]\n [StorageKey.USER_EMAIL]?: StakingStates[\"userEmail\"]\n [StorageKey.LAST_EDIT_TIMESTAMP]?: Date\n}\n","import combineReducers from \"react-combine-reducers\"\nimport { MINIMUM_STAKING_VALUE } from \"../consts/staking\"\nimport { StakingStates, StakingStep, ExitDate, StakingActionsUnion, BroadcastState } from \"../types/staking\"\nimport { WalletStates, WalletActionsUnion } from \"../types/wallet\"\nimport { AppStates, Reducer, AppReducer } from \"../types/context\"\nimport { GlobalStates, GlobalActionsUnion } from \"../types/global\"\n\nexport const INIT_STATES: AppStates = {\n staking: {\n contracts: [],\n currentStep: StakingStep.StakeAmount,\n stakeAmount: MINIMUM_STAKING_VALUE,\n exitDate: ExitDate.Fastest,\n gasCost: undefined,\n validatorsAmount: undefined,\n userEmail: undefined,\n txBroadcastState: BroadcastState.Pending,\n txBroadcastResult: {\n eth1Id: \"\",\n eth1TxUrl: \"\",\n validatorsAmount: 0,\n errorMsg: undefined\n }\n },\n wallet: {\n connectedWallet: null,\n web3Provider: null,\n balance: undefined,\n address: undefined,\n network: undefined,\n history: [],\n errorOnWalletConnection: undefined\n },\n global: {\n modalOpen: false,\n modalId: \"walletWidget\",\n snackbarPack: undefined,\n loadingComponent: {\n walletCapsule: false,\n mainSection: false\n }\n }\n}\n\n/**\n * Reducers\n */\nconst stakingReducer: Reducer = (state, { type, payload }) => {\n switch (type) {\n case \"SET_CONTRACTS\":\n case \"SET_CURRENT_STEP\":\n case \"SET_STAKE_AMOUNT\":\n case \"SET_EXIT_DATE\":\n case \"SET_AGREEMENTS_SIGNATURE\":\n case \"SET_GAS_COST\":\n case \"SET_VALIDATORS_AMOUNT\":\n case \"SET_USER_EMAIL\":\n case \"SET_TX_BROADCAST_STATE\":\n case \"SET_TX_BROADCAST_RESULT\": {\n return {\n ...state,\n [payload.field]: payload.value\n }\n }\n default:\n return state\n }\n}\n\nconst walletReducer: Reducer = (state, { type, payload, payloads }) => {\n switch (type) {\n case \"SET_CONNECTED_WALLET\":\n case \"SET_WEB3_PROVIDER\":\n case \"SET_BALANCE\":\n case \"SET_ADDRESS\":\n case \"SET_NETWORK\":\n case \"SET_HISTORY\":\n case \"SET_ERROR_ON_WALLET_CONNECTION\": {\n return {\n ...state,\n [payload.field]: payload.value\n }\n }\n case \"SET_WALLET_CONNECTED_INFO\": {\n return {\n ...state,\n ...payloads\n }\n }\n default: {\n return state\n }\n }\n}\n\nconst globalReducer: Reducer = (state, { type, payload }) => {\n switch (type) {\n case \"SET_MODAL_ID\":\n case \"SET_MODAL_OPEN\":\n case \"SET_SNACKBAR_PACK\":\n case \"SET_LOADING_COMPONENT\": {\n return {\n ...state,\n [payload.field]: payload.value\n }\n }\n default: {\n return state\n }\n }\n}\n\n/**\n * Main reducer\n */\nexport const appCombinedReducer = combineReducers({\n staking: [stakingReducer, INIT_STATES.staking],\n wallet: [walletReducer, INIT_STATES.wallet],\n global: [globalReducer, INIT_STATES.global]\n})\n","import React, { createContext, memo, useMemo, useReducer, ReactNode, useState } from \"react\"\nimport { ethers } from \"ethers\"\n\nimport { AppStates, AppActionsUnion, AppReducer } from \"../types/context\"\nimport { appCombinedReducer } from \"./reducer\"\n\ninterface Context {\n state: AppStates\n dispatch: React.Dispatch\n provider: ethers.providers.JsonRpcProvider | null\n setProvider: React.Dispatch>\n}\n\nexport interface DefaultContext extends React.Context {}\n\nexport const AppContext = createContext(null)\n\nconst AppContextProvider = ({ children }: { children: ReactNode }) => {\n const [state, dispatch] = useReducer(...appCombinedReducer)\n const [provider, setProvider] = useState(null)\n\n const memoizedValue = useMemo(\n () => ({\n state,\n dispatch,\n provider,\n setProvider\n }),\n [state, provider]\n )\n\n /**\n * Provider\n */\n return {children}\n}\n\nexport default memo(AppContextProvider)\n","export const API_URL = \"https://production-eth2-sov1-api.ethereum.fish\"\n","import axios from \"axios\"\nimport { API_URL } from \"../consts/api\"\n\nexport interface AccountRequest {\n email: string\n address: string\n language?: string\n}\n\nexport interface AccountDefaultResponse {\n status: \"OK\"\n}\n\nexport interface AccountStatusResponse {\n email: string\n language: string\n confirmed: boolean\n}\n\nexport const signUp = async (account: AccountRequest) => {\n const url = `${API_URL}/v1/user/sign-up`\n\n return await axios.post(url, account).then(({ data }) => data)\n}\n\nexport const checkStatus = async (account: AccountRequest) => {\n const url = `${API_URL}/v1/user/check-status`\n\n return await axios.post(url, account).then(({ data }) => data)\n}\n\nexport const unsubscribe = async (account: AccountRequest) => {\n const url = `${API_URL}/v1/user/unsubscribe`\n\n return await axios.post(url, account)\n}\n\nexport const scheduleReminder = async (account: AccountRequest) => {\n const url = `${API_URL}/v1/user/schedule-reminder`\n\n return await axios.post(url, account)\n}\n\nexport const cancelReminder = async (account: AccountRequest) => {\n const url = `${API_URL}/v1/user/cancel-reminder`\n\n return await axios.post(url, account)\n}\n","import { isNil } from \"lodash\"\n\nimport { StepWizardProps } from \"../containers/StepWizard\"\nimport { MINIMUM_STAKING_VALUE, PATH_STEP_MAP, STEP_PATH_MAP } from \"../consts/staking\"\nimport { Dispatch } from \"../types/context\"\nimport { StorageProps } from \"../types/localStorage\"\nimport { StakingState, StakingStep, StakingStates } from \"../types/staking\"\nimport { WalletStates } from \"../types/wallet\"\nimport { SetStep } from \"../hooks/useStep\"\nimport { INIT_STATES } from \"../context/reducer\"\n\n/**\n * Types\n */\ntype LocalStorageStep = StakingStep.Review | StakingStep.Sign | undefined\n\ninterface GetOnLoadStepProps {\n currentPath: RouteWrapperProps[\"currentPath\"]\n localStorage: StorageProps\n}\n\nexport type GetOnLoadStep = (props: GetOnLoadStepProps) => LocalStorageStep\n\nexport interface HandleOnLoadStepChangeProps extends GetOnLoadStepProps {\n setStep: SetStep\n}\nexport interface HandleBrowserChangeProps extends HandleOnLoadStepChangeProps {\n currentStep: StakingStates[\"currentStep\"]\n}\n\nexport interface RouteWrapperProps extends WizardProps {\n currentPath?: string\n localStorage: StorageProps\n}\n\nexport interface WizardProps {\n stepWizardProps: StepWizardProps\n loading?: boolean\n}\n\nexport interface HandleWalletChangeStepProps {\n walletBalance: WalletStates[\"balance\"]\n currentStep: StakingStates[\"currentStep\"]\n localStorage: StorageProps\n setStorageStakeAmount: (value: number | ((val: number | undefined) => number | undefined) | undefined) => void\n setStep: SetStep\n}\n\n/**\n * Helpers\n */\nexport const getOnLoadStep: GetOnLoadStep = ({ currentPath, localStorage }) => {\n const walletConnected = localStorage.walletConnected\n const stakeAmount = localStorage.stakeAmount && localStorage.stakeAmount >= MINIMUM_STAKING_VALUE\n const agreementSigned = localStorage.agreementsSignature\n\n if (currentPath === STEP_PATH_MAP[StakingStep.Review] && walletConnected && stakeAmount) {\n return StakingStep.Review\n }\n if (currentPath === STEP_PATH_MAP[StakingStep.Sign] && walletConnected && stakeAmount && agreementSigned) {\n return StakingStep.Sign\n }\n\n return undefined\n}\n\nexport const isOverLocalStorageTimeLimit = (\n newDate: Exclude,\n lastDate: StorageProps[\"lastEditTimeStamp\"]\n) => {\n if (!lastDate) return false\n\n const daysDiff = (newDate.getTime() - new Date(lastDate).getTime()) / (1000 * 3600 * 24)\n return daysDiff > 3 // TODO: confirm max days\n}\n\nexport const handleOnLoadChangeStep = (dispatch: Dispatch) => {\n return ({ setStep, ...props }: HandleOnLoadStepChangeProps) => {\n const localStorageStep = getOnLoadStep(props)\n\n if (localStorageStep) {\n dispatch({\n type: \"SET_STAKE_AMOUNT\",\n payload: {\n field: StakingState.STAKE_AMOUNT,\n value: props.localStorage.stakeAmount ?? INIT_STATES.staking.stakeAmount\n }\n })\n dispatch({\n type: \"SET_EXIT_DATE\",\n payload: {\n field: StakingState.EXIT_DATE,\n value: !isNil(props.localStorage.exitDate) ? props.localStorage.exitDate : INIT_STATES.staking.exitDate\n }\n })\n }\n\n if (localStorageStep === StakingStep.Review) {\n setStep(StakingStep.StakeAmount, \"next\", {\n targetNextStep: StakingStep.Review\n })\n\n return\n }\n if (localStorageStep === StakingStep.Sign) {\n setStep(StakingStep.Review, \"next\", {\n targetNextStep: StakingStep.Sign\n })\n dispatch({\n type: \"SET_AGREEMENTS_SIGNATURE\",\n payload: {\n field: StakingState.AGREEMENTS_SIGNATURE,\n value: localStorage.agreementsSignature\n }\n })\n }\n }\n}\n\nexport const handleBrowserChangeStep = () => {\n return ({ setStep, currentStep, currentPath }: HandleBrowserChangeProps) => {\n if (!currentPath || !PATH_STEP_MAP[currentPath]) {\n return\n }\n\n const targetStep = PATH_STEP_MAP[currentPath]\n if (targetStep < currentStep) {\n setStep(currentStep, targetStep > currentStep ? \"next\" : \"prev\")\n }\n }\n}\n\nexport const handleWalletChangeStep = (dispatch: Dispatch) => {\n return (props: HandleWalletChangeStepProps) => {\n const { walletBalance = -1, currentStep, localStorage, setStorageStakeAmount, setStep } = props\n const walletHasEnoughBalance =\n walletBalance > 0 && localStorage?.stakeAmount && walletBalance > localStorage.stakeAmount\n\n const isFinalStep = StakingStep.Done === currentStep\n\n /**\n * User finished staking or wallet has enough balance: do nothing\n *\n * IMPORTANT: When user stakes all ETH they have,\n * we should keep them on the last step (DONE).\n */\n if (isFinalStep || (!isNil(walletBalance) && walletHasEnoughBalance)) {\n return\n }\n\n /**\n *\n * Wallet has inadequate balance: reset state and step\n *\n */\n setStorageStakeAmount(INIT_STATES.staking.stakeAmount)\n\n dispatch({\n type: \"SET_STAKE_AMOUNT\",\n payload: {\n field: StakingState.STAKE_AMOUNT,\n value: INIT_STATES.staking.stakeAmount\n }\n })\n\n if (currentStep > StakingStep.StakeAmount) {\n setStep(currentStep, \"prev\", {\n targetPrevStep: StakingStep.StakeAmount\n })\n }\n }\n}\n","import { useState } from \"react\"\nimport { isNil } from \"lodash\"\nimport { StorageKey } from \"../../types/localStorage\"\n\nexport const useLocalStorage = (key: StorageKey, initialValue: T) => {\n // State to store our value\n // Pass initial state function to useState so logic is only executed once\n const [storedValue, setStoredValue] = useState(() => {\n try {\n // Get from local storage by key\n const item = window.localStorage.getItem(key)\n // Parse stored json or if none return initialValue\n return !isNil(item) ? JSON.parse(item) : initialValue\n } catch (error) {\n // If error also return initialValue\n console.log(error)\n return initialValue\n }\n })\n\n // Return a wrapped version of useState's setter function that ...\n // ... persists the new value to localStorage.\n const setValue = (value: T | ((val: T) => T)) => {\n try {\n // Allow value to be a function so we have same API as useState\n const valueToStore = value instanceof Function ? value(storedValue) : value\n // Save state\n setStoredValue(valueToStore)\n // Save to local storage\n if (!isNil(valueToStore)) {\n window.localStorage.setItem(key, JSON.stringify(valueToStore))\n }\n } catch (error) {\n // A more advanced implementation would handle the error case\n console.log(error)\n }\n }\n\n /**\n * Removes item from localstorage\n */\n const removeItem = () => {\n try {\n window.localStorage.removeItem(key)\n } catch (error) {\n console.log(error)\n }\n }\n\n return [storedValue, setValue, removeItem] as const\n}\n","import { useEffect, useContext } from \"react\"\nimport { AppContext, DefaultContext } from \"../../context\"\nimport { INIT_STATES } from \"../../context/reducer\"\nimport { StorageKey, StorageProps } from \"../../types/localStorage\"\nimport { StakingStep } from \"../../types/staking\"\nimport { isOverLocalStorageTimeLimit } from \"../../utils/routerWizard\"\nimport { useLocalStorage } from \"./useLocalStorage\"\n\nexport const useStoredData = () => {\n const { state } = useContext(AppContext as DefaultContext)\n\n /**\n * IMPORTANT! DO NOT TAMPER THIS VALUE!\n *\n * walletconnect - it comes from an exteral SDK. It should never be modified through this hook!\n */\n const [storageWalletConnect, , removeStorageWalletConnect] = useLocalStorage(\n StorageKey.WALLET_CONNECT,\n undefined\n )\n\n /**\n * walletConnected\n */\n // prettier-ignore\n const [storageWalletConnected, setStorageWalletConnected, removeStorageWalletConnected] = useLocalStorage(StorageKey.WALLET_CONNECTED, undefined)\n useEffect(() => {\n setStorageWalletConnected(state.wallet.connectedWallet?.name)\n }, [state.wallet.connectedWallet])\n\n /**\n * stakeAmount\n */\n // prettier-ignore\n const [storageStakeAmount, setStorageStakeAmount, removeStorageStakeAmount] = useLocalStorage(StorageKey.STAKE_AMOUNT, undefined)\n useEffect(() => {\n if (state.staking.currentStep > StakingStep.StakeAmount) setStorageStakeAmount(state.staking.stakeAmount)\n }, [state.staking.currentStep, state.staking.stakeAmount])\n\n /**\n * stakeAmount\n */\n const [storageExitDate, setStorageExitDate, removeStorageExitDate] = useLocalStorage(\n StorageKey.EXIT_DATE,\n INIT_STATES.staking.exitDate\n )\n useEffect(() => {\n if (state.staking.currentStep > StakingStep.StakeAmount) setStorageExitDate(state.staking.exitDate)\n }, [state.staking.currentStep])\n\n /**\n * agreementSigned\n */\n // prettier-ignore\n const [storageAgreementsSignature, setStorageAgreementsSignature, removeStorageAgreementsSignature] = useLocalStorage(\n StorageKey.AGREEMENTS_SIGNATURE,\n undefined\n )\n useEffect(() => {\n setStorageAgreementsSignature(state.staking.agreementsSignature)\n }, [state.staking.currentStep, state.staking.agreementsSignature])\n\n /**\n * user email address\n */\n // prettier-ignore\n const [storageEmail, setStorageEmail, removeStorageEmail] = useLocalStorage(StorageKey.USER_EMAIL, undefined)\n\n /**\n * timeStamp\n */\n // prettier-ignore\n const [storageTimeStamp, setStorageTimeStamp, removeStorageTimeStamp] = useLocalStorage(StorageKey.LAST_EDIT_TIMESTAMP, undefined)\n useEffect(() => {\n if (isOverLocalStorageTimeLimit(new Date(), storageTimeStamp)) {\n setStorageStakeAmount(INIT_STATES.staking.stakeAmount)\n setStorageExitDate(INIT_STATES.staking.exitDate)\n setStorageAgreementsSignature(undefined)\n }\n }, [])\n\n const resetLocalStorage = (resetWallet: boolean = false) => {\n if (resetWallet) {\n removeStorageWalletConnected()\n removeStorageWalletConnect()\n }\n\n removeStorageStakeAmount()\n removeStorageExitDate()\n removeStorageAgreementsSignature()\n removeStorageTimeStamp()\n removeStorageEmail()\n }\n\n return {\n storageWalletConnect,\n storageWalletConnected,\n setStorageWalletConnected,\n storageStakeAmount,\n setStorageStakeAmount,\n storageExitDate,\n setStorageExitDate,\n storageAgreementsSignature,\n setStorageAgreementsSignature,\n storageEmail,\n setStorageEmail,\n removeStorageEmail,\n storageTimeStamp,\n setStorageTimeStamp,\n resetLocalStorage\n }\n}\n","import { useCallback, useContext, useEffect, useMemo, useState } from \"react\"\nimport { AppContext, DefaultContext } from \"../context\"\nimport {\n AccountRequest,\n AccountStatusResponse,\n signUp,\n checkStatus,\n unsubscribe,\n scheduleReminder,\n cancelReminder\n} from \"../data/Account\"\nimport { useStoredData } from \"./useStoredData\"\n\ntype AccountStatus = \"confirmed\" | \"unconfirmed\" | \"no_account\"\n\nexport const useEmailAccount = () => {\n const {\n state: {\n wallet: { address }\n }\n } = useContext(AppContext as DefaultContext)\n const { storageEmail, setStorageEmail, removeStorageEmail } = useStoredData()\n const [account, setAccount] = useState()\n const [reminder, setReminder] = useState(false)\n\n const status: AccountStatus = useMemo(() => {\n if (account === undefined) {\n return \"no_account\"\n }\n\n if (account.confirmed) {\n return \"confirmed\"\n }\n\n return \"unconfirmed\"\n }, [account])\n\n const createAccountRequest = (email: string): AccountRequest => {\n return {\n email,\n address: address as string,\n // TODO hook language [mateusz]\n language: \"en\"\n }\n }\n\n const verifyAccount = async (email: string) => {\n try {\n const account = await checkStatus({ address: address as string, email })\n setAccount(account)\n\n return account\n } catch (err) {\n console.error(err)\n }\n\n return undefined\n }\n\n const createAccount = useCallback(\n async (email: string) => {\n const account = await verifyAccount(email)\n if (account !== undefined) {\n setAccount(account)\n setStorageEmail(email)\n return\n }\n const newAccount = await signUp(createAccountRequest(email))\n setAccount(newAccount)\n setStorageEmail(email)\n },\n [address]\n )\n\n const removeAccount = useCallback(\n async (email: string) => {\n await unsubscribe(createAccountRequest(email))\n removeStorageEmail()\n setAccount(undefined)\n },\n [address]\n )\n\n const turnReminderOn = useCallback(async () => {\n if (![storageEmail, address].includes(undefined) && !reminder) {\n await scheduleReminder(createAccountRequest(storageEmail as string))\n setReminder(true)\n }\n }, [storageEmail, address, account, reminder])\n\n const turnReminderOff = useCallback(async () => {\n if (![storageEmail, address].includes(undefined)) {\n await cancelReminder(createAccountRequest(storageEmail as string))\n setReminder(false)\n }\n }, [storageEmail, address, account, reminder])\n\n useEffect(() => {\n if (![storageEmail, address].includes(undefined)) {\n verifyAccount(storageEmail as string)\n }\n }, [storageEmail, address])\n\n return {\n status,\n account,\n createAccount,\n removeAccount,\n scheduleReminder: turnReminderOn,\n cancelReminder: turnReminderOff\n }\n}\n","import { SnackbarProps } from \"@stakefish/ui/components/Snackbar\"\n\nexport type SnackbarType =\n | \"insufficientFund\"\n | \"walletUnconnected\"\n | \"storeAgreementsError\"\n | \"generalError\"\n | \"ethError\"\n | \"emailError\"\n\nexport interface SnackPackProps extends Partial> {\n type: SnackbarType\n disableNextButton?: boolean\n}\n\nexport const snackPackProps: Record = {\n walletUnconnected: {\n type: \"walletUnconnected\",\n alertProps: {\n color: \"info\"\n },\n autoHideDuration: 5000\n },\n insufficientFund: {\n type: \"insufficientFund\",\n alertProps: {\n color: \"error\"\n },\n disableNextButton: true,\n autoHideDuration: 5000\n },\n storeAgreementsError: {\n type: \"storeAgreementsError\",\n alertProps: {\n color: \"error\"\n },\n disableNextButton: true,\n autoHideDuration: 5000\n },\n ethError: {\n type: \"ethError\",\n alertProps: {\n color: \"error\"\n },\n autoHideDuration: 5000\n },\n emailError: {\n type: \"emailError\",\n alertProps: {\n color: \"error\"\n },\n autoHideDuration: 5000\n },\n generalError: {\n type: \"generalError\",\n alertProps: {\n color: \"error\"\n },\n autoHideDuration: 5000\n }\n}\n","import { ReactNode } from \"react\"\nimport { FormattedMessage } from \"react-intl\"\nimport { WalletError } from \"../types/web3\"\nimport { LINK_CONTACT } from \"./stakefish\"\n\n/**\n *\n * Eth errors\n *\n */\nconst EthErrorCodes = [\n \"-32700\",\n \"-32600\",\n \"-32601\",\n \"-32602\",\n \"-32603\",\n \"-32000\",\n \"-32001\",\n \"-32002\",\n \"-32003\",\n \"-32004\",\n \"-32005\",\n \"4001\",\n \"4100\",\n \"4200\",\n \"4900\",\n \"4901\"\n] as const\n\ntype EthErrorCode = typeof EthErrorCodes[number]\n\nexport const EthErrorMessages: Record = {\n \"-32700\": ,\n \"-32600\": ,\n \"-32601\": ,\n \"-32602\": ,\n \"-32603\": ,\n \"-32000\": ,\n \"-32001\": ,\n \"-32002\": ,\n \"-32003\": ,\n \"-32004\": ,\n \"-32005\": ,\n 4001: ,\n 4100: ,\n 4200: ,\n 4900: ,\n 4901: \n}\n\n/**\n *\n * Custom errors\n *\n */\nconst CustomErrorKeys = [\n \"insufficientFunds\",\n \"metaMaskUninstalled\",\n \"metaMaskProviderFailed\",\n \"broadcastGeneralFailure\",\n \"mainnetRequirement\",\n \"timeoutSignMessage\",\n \"storeAgreementsError\",\n \"walletService\"\n] as const\n\ntype CustomErrorKey = typeof CustomErrorKeys[number]\n\nexport const CustomErrorMessages: Record = {\n insufficientFunds: ,\n metaMaskUninstalled: (\n (\n \n {chunks}\n \n )\n }}\n />\n ),\n metaMaskProviderFailed: (\n (\n \n {chunks}\n \n )\n }}\n />\n ),\n broadcastGeneralFailure: (\n (\n \n {chunks}\n \n )\n }}\n />\n ),\n storeAgreementsError: (\n (\n \n {chunks}\n \n )\n }}\n />\n ),\n mainnetRequirement: ,\n timeoutSignMessage: ,\n walletService: (\n (\n \n {chunks}\n \n )\n }}\n />\n )\n}\n\n/**\n *\n * Combined errors\n *\n */\nconst ErrorKeys = [...EthErrorCodes, ...CustomErrorKeys] as const\n\ntype ErrorKey = typeof ErrorKeys[number]\n\nexport const ErrorMessages: Record = {\n ...EthErrorMessages,\n ...CustomErrorMessages\n}\n\nexport const isErrorKey = (value: string): value is ErrorKey => ErrorKeys.includes(String(value) as ErrorKey)\n\nconst isWalletError = (err: any): err is WalletError => err instanceof Object && \"code\" in err\n\nexport const getErrorMessage = (err?: ErrorKey | string | Error | WalletError) => {\n if (!err) return \n\n const errorMsg = (() => {\n if (isWalletError(err)) return String(err.code)\n if (err instanceof Error) return err.message\n return err\n })()\n\n if (isErrorKey(errorMsg)) {\n return ErrorMessages[errorMsg]\n }\n\n return \n}\n","import { useEffect, useRef } from \"react\"\n\n/**\n * `usePrevProps` stores the previous value of the prop.\n *\n * @param {K} value\n * @returns {K | undefined}\n */\nexport const usePrevious = (value: K) => {\n const ref = useRef()\n\n useEffect(() => {\n ref.current = value\n })\n\n return ref.current\n}\n","import { useCallback, useContext } from \"react\"\nimport { AppContext, DefaultContext } from \"../context\"\nimport { GlobalState, GlobalStates } from \"../types/global\"\nimport { SnackbarType } from \"../types/snackbar\"\n\nexport const useSnackPack = () => {\n const { state, dispatch } = useContext(AppContext as DefaultContext)\n\n const openSnackPack = useCallback(\n (value: GlobalStates[GlobalState.SNACKBAR_PACK]) => {\n dispatch({\n type: \"SET_SNACKBAR_PACK\",\n payload: {\n field: GlobalState.SNACKBAR_PACK,\n value\n }\n })\n },\n [dispatch]\n )\n\n const hideSnackPack = useCallback(() => {\n dispatch({\n type: \"SET_SNACKBAR_PACK\",\n payload: {\n field: GlobalState.SNACKBAR_PACK,\n value: undefined\n }\n })\n }, [])\n\n const isOpenSnackPack = useCallback(\n (type: SnackbarType) => {\n return state.global.snackbarPack?.type === type\n },\n [state.global.snackbarPack?.type]\n )\n\n return {\n isOpenSnackPack,\n openSnackPack,\n hideSnackPack\n }\n}\n","import * as matomo from \"@datapunt/matomo-tracker-react\"\nimport { TrackEventParams } from \"@datapunt/matomo-tracker-react/lib/types\"\n\ninterface Wallet extends TrackEventParams {\n category: \"wallet\"\n action: \"clickConnect\" | \"openModal\" | \"connected\" | \"disconnected\"\n}\ninterface Snackbar extends TrackEventParams {\n category: \"snackbar\"\n action: \"shown\" | \"hidden\"\n}\ninterface Transaction extends TrackEventParams {\n category: \"transaction\"\n action: \"broadcastStarted\" | \"broadcastEnded\" | \"broadcastSuccess\" | \"broadcastFailure\"\n}\ninterface StepStakeAmount extends TrackEventParams {\n category: \"stepStakeAmount\"\n action: \"selectExitDate\" | \"clickConnect\" | \"clickNextStep\" | \"clickPreviousStep\"\n}\ninterface StepReview extends TrackEventParams {\n category: \"stepReview\"\n action: \"clickReviewAndSign\" | \"clickPreviousStep\"\n}\ninterface StepSign extends TrackEventParams {\n category: \"stepSign\"\n action: \"clickSignAndBroadcast\" | \"clickPreviousStep\"\n}\n\ntype CategoryUnion = Wallet | Snackbar | Transaction | StepStakeAmount | StepReview | StepSign\n\nexport const useMatomo = () => {\n const { trackEvent } = matomo.useMatomo()\n\n return {\n trackEvent: (props: CategoryUnion) => trackEvent(props)\n }\n}\n","import { useEffect, useContext, useState, useCallback, useRef } from \"react\"\nimport { useIntl } from \"react-intl\"\nimport { ethers } from \"ethers\"\nimport { SupportedWalletShape } from \"@stakefish/ui/components/WalletButton\"\n\nimport { SUPPORTED_WALLETS } from \"../../consts/wallet\"\nimport { STAKE_INPUT_ERROR_MESSAGES, MINIMUM_STAKING_VALUE } from \"../../consts/staking\"\nimport { WalletWidgetWizardProps } from \"../../containers/WalletWidgetWizard\"\nimport { AppContext, DefaultContext } from \"../../context\"\nimport { dispatchWalletConnectionError, dispatchWalletInfo, dispatchStakingStatesReset } from \"../../context/actions\"\nimport { WalletError } from \"../../types/web3\"\nimport { GlobalState } from \"../../types/global\"\nimport { StakingStep } from \"../../types/staking\"\nimport { snackPackProps } from \"../../types/snackbar\"\nimport { SupportedWallet, WalletWidgetState, WalletType, WalletState } from \"../../types/wallet\"\nimport { usePrevious } from \"../usePrevious\"\nimport { useSnackPack } from \"../useSnackPack\"\nimport { SetStep } from \"../useStep\"\nimport { useStoredData } from \"../useStoredData\"\nimport { useMatomo } from \"../useMatomo\"\nimport { useMetaMask } from \"./useMetaMask\"\nimport { useWalletConnect } from \"./useWalletConnect\"\nimport { FetchWallet, FetchWalletCallback, HandleAccountsChanged } from \"./types\"\n\n/**\n * Types\n */\ntype SetWalletWidgetStateChangeType = (\n value: React.SetStateAction\n) => void\n\ninterface UseWalletProps {\n setWalletWidgetState: React.Dispatch>\n setWalletWidgetStateChangeType: SetWalletWidgetStateChangeType\n setConnectingWallet: React.Dispatch>\n setStep: SetStep\n}\n\nconst { MetaMask, WalletConnect } = SUPPORTED_WALLETS\n\n/**\n * Main\n */\nexport const useWallet = (props: UseWalletProps) => {\n const { formatMessage } = useIntl()\n const { setConnectingWallet, setWalletWidgetStateChangeType, setWalletWidgetState, setStep } = props\n\n const { state, dispatch, provider, setProvider } = useContext(AppContext as DefaultContext)\n const [walletChecked, setWalletChecked] = useState(false)\n const { storageWalletConnected, setStorageWalletConnected, resetLocalStorage } = useStoredData()\n const { openSnackPack } = useSnackPack()\n\n const currentStepRef = useRef(state.staking.currentStep)\n currentStepRef.current = state.staking.currentStep\n const stateWalletRef = useRef(state.wallet)\n stateWalletRef.current = state.wallet\n\n const { trackEvent } = useMatomo()\n\n /***********************************/\n /* Helpers */\n /***********************************/\n /**\n * Bounded dispatches\n */\n const boundedDispatchWalletInfo = dispatchWalletInfo(dispatch)\n const boundedDispatchWalletConnectionError = dispatchWalletConnectionError(dispatch)\n const boundedDispatchStakingStatesReset = dispatchStakingStatesReset(dispatch)\n\n /**\n *\n * To connect with wallet provider through `WalletWidgetWizard` element.\n *\n * @param {SupportedWallet} wallet\n * @param {()=>Promise} connectWalletCallback From individual wallet hook (ex: `useMetaMask`)\n *\n */\n const connectWallet = useCallback(\n async (wallet: SupportedWalletShape, connectWalletCallback: () => Promise) => {\n setConnectingWallet(wallet as SupportedWallet)\n setWalletWidgetStateChangeType(\"toConnecting\")\n\n try {\n // Fetching and updating wallet data/states take place inside of the callback.\n await connectWalletCallback()\n\n setWalletWidgetStateChangeType(\"toConnected\")\n setStorageWalletConnected(wallet.name as WalletType)\n dispatch({ type: \"SET_MODAL_OPEN\", payload: { field: GlobalState.MODAL_OPEN, value: false } })\n\n // Matomo\n trackEvent({ category: \"wallet\", action: \"connected\", name: `${currentStepRef.current}-${wallet.name}` })\n } catch (e: any) {\n handleError(e)\n }\n },\n []\n )\n\n /**\n *\n * To fetch and update wallet data and states.\n *\n * @param {() => Promise} fetchWalletCallback From individual wallet hook (ex: `useMetaMask`)\n *\n */\n const fetchWallet: FetchWallet = useCallback(async (fetchWalletCallback) => {\n try {\n // Fetching wallet data takes place inside of the callback.\n const walletInfo = await fetchWalletCallback()\n\n setProvider(walletInfo.web3Provider)\n boundedDispatchWalletInfo(walletInfo)\n setWalletWidgetState(WalletWidgetState.CONNECTED)\n } catch (e: any) {\n handleError(e)\n }\n }, [])\n\n /**\n *\n * Resets the app state in localstorage\n *\n */\n const resetStoredDataAndReload = useCallback((removeWallet: boolean = false) => {\n resetLocalStorage(removeWallet)\n\n setTimeout(() => {\n window.location.reload()\n }, 1)\n }, [])\n\n /**\n *\n * Actions to handle global states at each step\n * when resetting the app's current step.\n *\n */\n const handleStepReset = useCallback(async (fetchWalletCallback?: FetchWalletCallback) => {\n const handleFetchWallet = async () => {\n if (!fetchWalletCallback) {\n return\n }\n\n await fetchWallet(fetchWalletCallback)\n }\n\n setWalletChecked(false)\n\n switch (currentStepRef.current) {\n case StakingStep.StakeAmount:\n await handleFetchWallet()\n boundedDispatchStakingStatesReset()\n\n setWalletChecked(true)\n break\n case StakingStep.Review:\n case StakingStep.Sign:\n await handleFetchWallet()\n boundedDispatchStakingStatesReset()\n setStep(currentStepRef.current, \"prev\", {\n targetPrevStep: StakingStep.StakeAmount\n })\n\n setWalletChecked(true)\n break\n case StakingStep.Broadcasting:\n case StakingStep.Done:\n resetStoredDataAndReload()\n break\n }\n }, [])\n\n /**\n *\n * Error states\n *\n */\n const handleError = useCallback((e: WalletError) => {\n boundedDispatchWalletConnectionError(e)\n setWalletWidgetStateChangeType(\"toConnectError\")\n setStorageWalletConnected(undefined)\n }, [])\n\n /**\n *\n * On chain changed (per EIP-1193)\n *\n */\n const handleChainChanged = useCallback(() => {\n resetStoredDataAndReload()\n }, [])\n\n /**\n *\n * On account changed (per EIP-1193)\n *\n */\n const handleAccountsChanged: HandleAccountsChanged = useCallback(\n async (accounts, fetchWalletCallback, walletType) => {\n // Ignore unconnected accounts change event\n if (walletType !== stateWalletRef.current.connectedWallet?.name) return\n\n // Disconnected\n if (accounts.length === 0) {\n handleDisconnect()\n\n // Matomo\n trackEvent({\n category: \"wallet\",\n action: \"disconnected\",\n name: `${currentStepRef.current}-${stateWalletRef.current.connectedWallet?.name}`\n })\n return\n }\n\n // Active account changed\n if (stateWalletRef.current.address !== accounts[0]) {\n await handleStepReset(fetchWalletCallback)\n }\n },\n []\n )\n\n /**\n *\n * On disconnects (per EIP-1193)\n *\n */\n const handleDisconnect = useCallback(() => {\n boundedDispatchWalletInfo()\n\n resetStoredDataAndReload(true)\n }, [])\n\n /**\n *\n * On provider change (per EIP-1193)\n *\n */\n const handleProviderChange = useCallback((previousWalletProvider: WalletType | undefined) => {\n const providerChanged =\n previousWalletProvider !== undefined &&\n stateWalletRef.current.connectedWallet?.name !== undefined &&\n previousWalletProvider !== stateWalletRef.current.connectedWallet.name\n\n if (!providerChanged) {\n return\n }\n\n handleStepReset()\n }, [])\n\n /**\n *\n * Connect wallets\n *\n */\n const handleConnectWallet = useCallback(async (wallet: SupportedWallet) => {\n switch (wallet.name) {\n case \"MetaMask\":\n connectWallet(MetaMask, connectMetaMaskCallback)\n break\n case \"WalletConnect\":\n connectWallet(WalletConnect, connectWalletConnectCallback)\n break\n default:\n // do nothing\n }\n }, [])\n\n /**\n * Updates wallet balance every block.\n *\n * IMPORTANT! DO NOT WRAP IN `useCallback`!\n * If wrapped in useCallback it will not be executed until wallet address doesn't change.\n * It needs to be executed on every new block.\n */\n const handleUpdateBalance = async () => {\n if (state.wallet.address === undefined) {\n return\n }\n try {\n // TODO: handle error here\n if (!provider) throw new Error(\"\")\n const balance = await provider.getBalance(state.wallet.address)\n\n dispatch({\n type: \"SET_BALANCE\",\n payload: {\n field: WalletState.BALANCE,\n value: Number(ethers.utils.formatEther(balance))\n }\n })\n } catch (e) {\n // do nothing\n }\n }\n\n /**\n * Triggered on every new block (every 10-20s).\n *\n * It doesn't make sense to wrap it into `useCallback` because it will never use the memoized callback.\n * It is always called with a unique block number\n *\n * @param blockNumber\n */\n const handleBlock = (blockNumber: number) => {\n handleUpdateBalance()\n }\n\n /***********************************/\n /* Activating hooks */\n /***********************************/\n const { connectWalletCallback: connectMetaMaskCallback } = useMetaMask({\n connectWallet,\n fetchWallet,\n handleChainChanged,\n handleAccountsChanged,\n handleDisconnect\n })\n\n const { connectWalletCallback: connectWalletConnectCallback } = useWalletConnect({\n connectWallet,\n fetchWallet,\n handleChainChanged,\n handleAccountsChanged,\n handleDisconnect\n })\n\n /***********************************/\n /* Events */\n /***********************************/\n /**\n *\n * Handle provider change\n *\n */\n const previousWalletProvider = usePrevious(state.wallet.connectedWallet?.name)\n useEffect(() => {\n handleProviderChange(previousWalletProvider)\n }, [state.wallet.connectedWallet?.name])\n\n /**\n *\n * Handle wallet checked state\n *\n */\n useEffect(() => {\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n if (!storageWalletConnected || state.wallet.connectedWallet || state.wallet.errorOnWalletConnection) {\n setWalletChecked(true)\n }\n }, [state.wallet.connectedWallet, state.wallet.errorOnWalletConnection])\n\n /**\n *\n * Check and update snackbar on wallet connected state.\n *\n */\n useEffect(() => {\n const walletUnconnected = walletChecked && !storageWalletConnected && !state.wallet.connectedWallet\n\n if (walletUnconnected) {\n openSnackPack({\n ...snackPackProps.walletUnconnected,\n children: formatMessage({ id: \"BEFORE_STAKING_PLEASE_CONNECT_YOUR_WALLET\" })\n })\n }\n\n if (!walletUnconnected && state.wallet?.network) {\n const walletHasEnoughBalance = state.wallet.balance && state.wallet.balance > MINIMUM_STAKING_VALUE\n const isMainnetNetwork = state.wallet.network.chainId === 1\n\n if (walletHasEnoughBalance ?? isMainnetNetwork) {\n return\n }\n\n openSnackPack({\n ...snackPackProps.insufficientFund,\n children: STAKE_INPUT_ERROR_MESSAGES.overWalletBalance\n })\n }\n }, [walletChecked])\n\n /**\n *\n * Block events\n *\n */\n useEffect(() => {\n if (provider) {\n provider.on(\"block\", handleBlock)\n\n return () => {\n provider.off(\"block\", handleBlock)\n }\n }\n }, [provider, state.wallet.address])\n\n return {\n walletChecked,\n connectWallet: handleConnectWallet\n }\n}\n","import { WalletError } from \"../types/web3\"\nimport { Dispatch } from \"../types/context\"\nimport { GlobalState } from \"../types/global\"\nimport { StakingState } from \"../types/staking\"\nimport { snackPackProps } from \"../types/snackbar\"\nimport { WalletState, WalletStates } from \"../types/wallet\"\nimport { getErrorMessage } from \"../consts/errors\"\nimport { INIT_STATES } from \"./reducer\"\n\nexport const dispatchWalletInfo = (dispatch: Dispatch) => (wallet?: WalletStates) => {\n if (wallet === undefined) {\n dispatch({\n type: \"SET_WALLET_CONNECTED_INFO\",\n payload: {\n field: null,\n value: null\n },\n payloads: INIT_STATES.wallet\n } as any)\n return\n }\n\n // TODO: remove the `any` once SetWalletConnectedInfo interface is refactored [mateusz]\n dispatch({\n type: \"SET_WALLET_CONNECTED_INFO\",\n payload: {\n field: null,\n value: null\n },\n payloads: wallet\n } as any)\n}\n\nexport const dispatchWalletConnectionError = (dispatch: Dispatch) => (e?: WalletError) => {\n const errorMessage = e ? getErrorMessage(e) : undefined\n dispatch({\n type: \"SET_ERROR_ON_WALLET_CONNECTION\",\n payload: {\n field: WalletState.ERROR_ON_WALLET_CONNECTION,\n value: errorMessage\n }\n })\n dispatch({\n type: \"SET_SNACKBAR_PACK\",\n payload: {\n field: GlobalState.SNACKBAR_PACK,\n value: errorMessage\n ? {\n ...snackPackProps.ethError,\n children: errorMessage\n }\n : undefined\n }\n })\n}\n\nexport const dispatchStakingStatesReset = (dispatch: Dispatch) => () => {\n dispatch({\n type: \"SET_STAKE_AMOUNT\",\n payload: {\n field: StakingState.STAKE_AMOUNT,\n value: INIT_STATES.staking.stakeAmount\n }\n })\n dispatch({\n type: \"SET_EXIT_DATE\",\n payload: {\n field: StakingState.EXIT_DATE,\n value: INIT_STATES.staking.exitDate\n }\n })\n dispatch({\n type: \"SET_AGREEMENTS_SIGNATURE\",\n payload: {\n field: StakingState.AGREEMENTS_SIGNATURE,\n value: INIT_STATES.staking.agreementsSignature\n }\n })\n dispatch({\n type: \"SET_GAS_COST\",\n payload: {\n field: StakingState.GAS_COST,\n value: INIT_STATES.staking.gasCost\n }\n })\n dispatch({\n type: \"SET_VALIDATORS_AMOUNT\",\n payload: {\n field: StakingState.VALIDATORS_AMOUNT,\n value: INIT_STATES.staking.validatorsAmount\n }\n })\n}\n","import { useEffect, useState } from \"react\"\nimport { ethers } from \"ethers\"\nimport { SUPPORTED_WALLETS } from \"../../consts/wallet\"\nimport initializeWallet from \"../../services/wallet\"\nimport { SupportedWallet } from \"../../types/wallet\"\nimport { useStoredData } from \"../useStoredData\"\nimport { HandleAccountsChanged, FetchWallet } from \"./types\"\n\n/**\n * Types\n */\ninterface Props {\n fetchWallet: FetchWallet\n connectWallet: (wallet: SupportedWallet, callback: () => Promise) => Promise\n handleChainChanged: () => void\n handleAccountsChanged: HandleAccountsChanged\n handleDisconnect: () => void\n}\n\nexport const useMetaMask = ({\n fetchWallet,\n handleChainChanged,\n handleAccountsChanged: accountsChangedHandler\n}: Props) => {\n /**\n * States\n */\n const { storageWalletConnected } = useStoredData()\n const [connected, setConnected] = useState(false)\n\n const extensionInstalled = window.ethereum !== undefined\n\n const { MetaMask } = SUPPORTED_WALLETS\n const inLocalStorage = storageWalletConnected === MetaMask.name\n\n /**\n * Callbacks\n */\n const connectWalletCallback = async () => {\n const [web3Provider, error] = await MetaMask.connector()\n if (error) throw error\n\n await (web3Provider as ethers.providers.Web3Provider).send(\"eth_requestAccounts\", [])\n\n await web3Provider.send(\"wallet_switchEthereumChain\", [\n {\n chainId: \"0x1\" // Mainnet network\n }\n ])\n\n await fetchWallet(fetchWalletCallback)\n }\n\n const fetchWalletCallback = async () => {\n const [web3Provider, error] = await MetaMask.connector()\n if (error) throw error\n\n const Wallet = initializeWallet(web3Provider)\n\n const address = await Wallet.retrieveAddress()\n const wallet = await Wallet.retrieveWallet(address)\n\n setConnected(true)\n\n return {\n connectedWallet: MetaMask,\n web3Provider,\n ...wallet\n }\n }\n\n const handleAccountsChanged = async (accounts: string[]) => {\n await accountsChangedHandler(accounts, fetchWalletCallback, MetaMask.name)\n }\n\n /**\n * Main\n */\n useEffect(() => {\n if (extensionInstalled) {\n window.ethereum.on(\"chainChanged\", handleChainChanged)\n window.ethereum.on(\"accountsChanged\", handleAccountsChanged)\n }\n\n return () => {\n if (extensionInstalled) {\n window.ethereum.removeListener(\"accountsChanged\", handleChainChanged)\n window.ethereum.removeListener(\"chainChanged\", handleAccountsChanged)\n }\n }\n }, [])\n\n /**\n * Unfortunately, The MetaMask extenstion doesn't support disconnection.\n * I investigated how 1inch does it, and they simply clear state, and localstorage.\n * MetaMask remains connected but 1inch app doesn't initialize it on start.\n * I reflected their implementation here.\n */\n useEffect(() => {\n if (!connected && inLocalStorage) {\n fetchWallet(fetchWalletCallback)\n }\n }, [connected, inLocalStorage])\n\n /**\n * Return\n */\n return {\n connectWalletCallback,\n fetchWalletCallback\n }\n}\n","import { useCallback, useEffect, useState } from \"react\"\nimport { ethers } from \"ethers\"\nimport { isNil } from \"lodash\"\n\nimport { SUPPORTED_WALLETS } from \"../../consts/wallet\"\nimport initializeWallet from \"../../services/wallet\"\nimport { SupportedWallet } from \"../../types/wallet\"\nimport { StorageKey } from \"../../types/localStorage\"\nimport { useStoredData } from \"../useStoredData\"\nimport { HandleAccountsChanged, FetchWallet } from \"./types\"\n\n/**\n * Types\n */\ninterface Props {\n fetchWallet: FetchWallet\n connectWallet: (wallet: SupportedWallet, callback: () => Promise) => Promise\n handleChainChanged: () => void\n handleAccountsChanged: HandleAccountsChanged\n handleDisconnect: () => void\n}\n\n/**\n * Hooks\n */\nexport const useWalletConnect = ({\n connectWallet,\n fetchWallet,\n handleChainChanged,\n handleAccountsChanged,\n handleDisconnect\n}: Props) => {\n /**\n * States\n */\n const { storageWalletConnected, resetLocalStorage } = useStoredData()\n const [connected, setConnected] = useState(false)\n\n const { WalletConnect } = SUPPORTED_WALLETS\n\n const hasConnectedWallet = storageWalletConnected !== undefined\n const isWalletConnectPreferred = storageWalletConnected === WalletConnect.name\n // QUICK FIX: WalletConnect gets disconnected since localstorage is rewritten into the state.\n // We need up-to-date version of data from Localstorage here.\n const hasWalletConnectObject = !isNil(window.localStorage.getItem(StorageKey.WALLET_CONNECT))\n\n const web3Modal = WalletConnect.connector()\n\n /**\n * Callbacks\n */\n const connectWalletCallback = async () => {\n await fetchWallet(fetchWalletCallback)\n }\n\n const fetchWalletCallback = async () => {\n try {\n const rawProvider = await web3Modal.connectTo(\"walletconnect\")\n // DO NOT SYNC the rawProvider with connectedProvider - it will make API fail!\n rawProvider.pollingInterval = 23000\n\n initListeners(rawProvider)\n\n const connectedProvider = new ethers.providers.Web3Provider(rawProvider, \"any\")\n // DO NOT SYNC the connectedProvider with rawProvider - it will make API fail!\n connectedProvider.pollingInterval = 5000\n\n setConnected(true)\n\n const Wallet = initializeWallet(connectedProvider)\n\n const address = await Wallet.retrieveAddress()\n const wallet = await Wallet.retrieveWallet(address)\n\n return {\n connectedWallet: WalletConnect,\n web3Provider: connectedProvider,\n ...wallet\n }\n } catch (e) {\n await disconnect()\n resetLocalStorage(true)\n throw e\n }\n }\n\n /**\n * Helpers\n */\n const initListeners = useCallback((rawProvider: ethers.providers.JsonRpcProvider) => {\n if (!rawProvider.on) {\n return\n }\n\n rawProvider.on(\"accountsChanged\", () => handleAccountsChanged)\n\n rawProvider.on(\"chainChanged\", handleChainChanged)\n\n rawProvider.on(\"network\", (_newNetwork, oldNetwork) => {\n if (!oldNetwork) return\n window.location.reload()\n })\n\n rawProvider.on(\"disconnect\", () => {\n disconnect()\n })\n }, [])\n\n const disconnect = useCallback(async () => {\n web3Modal.clearCachedProvider()\n setConnected(false)\n\n handleDisconnect()\n }, [web3Modal, connected])\n\n /**\n * Lifecycle\n */\n\n /**\n * Disconnects WalletConnect if localstorage tampered\n */\n useEffect(() => {\n if (hasConnectedWallet && isWalletConnectPreferred && !hasWalletConnectObject) {\n disconnect()\n }\n }, [hasConnectedWallet, isWalletConnectPreferred, hasWalletConnectObject])\n\n /**\n * Connects WalletConnect only if it is a prefered wallet\n */\n useEffect(() => {\n if (!connected && isWalletConnectPreferred && hasWalletConnectObject) {\n connectWallet(WalletConnect, connectWalletCallback)\n }\n }, [connected, isWalletConnectPreferred, hasWalletConnectObject])\n\n /**\n * Return\n */\n return {\n connectWalletCallback,\n fetchWalletCallback\n }\n}\n","/**\n * Converts eth to gwei\n *\n * @param eth {ether}\n */\nexport const ethToGwei = (eth: number) => {\n return eth * 10 ** 9\n}\n","import axiosOriginal from \"axios\"\n\nexport const axios = axiosOriginal.create()\n","import { API_URL } from \"../consts/api\"\nimport { MINIMUM_STAKING_VALUE } from \"../consts/staking\"\nimport { DepositPlan, StakingStates } from \"../types/staking\"\nimport { ethToGwei } from \"../utils/ethToGwei\"\nimport { axios } from \"../utils/http\"\n\nexport interface RequestDepositPlanResponse {\n plan: DepositPlan[]\n}\n\nexport const requestDepositPlan = async (\n depositAmount: StakingStates[\"stakeAmount\"] = MINIMUM_STAKING_VALUE,\n promisedExitDate: StakingStates[\"exitDate\"],\n takeLimit: number = 3\n) => {\n const url = `${API_URL}/v1/sov/request-deposit-plan`\n\n const body = {\n depositAmount: `${ethToGwei(depositAmount)}`,\n promisedExitDate,\n takeLimit\n }\n return await axios.post(url, body).then(({ data }) => data.plan)\n}\n","import axios from \"axios\"\nimport { API_URL } from \"../consts/api\"\n\nexport interface SignedAgreementPayload {\n address: string\n agreement: string\n signature: string\n}\n\nexport interface SignedAgreementResponse {\n signedAt: Date\n}\n\nexport const storeSignedAgreement = async ({ address, agreement, signature }: SignedAgreementPayload) => {\n const url = `${API_URL}/v1/agreement/sign`\n const body = {\n agreement,\n address,\n signature\n }\n\n try {\n const { signedAt } = await axios.post(url, body).then(({ data }) => data)\n\n return signedAt\n } catch (e) {\n throw new Error(\"storeAgreementsError\")\n }\n}\n","import { useCallback, useContext, useRef, useEffect, useState, useMemo } from \"react\"\nimport { AppContext, DefaultContext } from \"../context\"\nimport { GlobalState } from \"../types/global\"\nimport { snackPackProps } from \"../types/snackbar\"\nimport { StakingState, StakingStep, BroadcastState } from \"../types/staking\"\nimport { EN_AGREEMENTS } from \"../consts/staking\"\nimport { getErrorMessage } from \"../consts/errors\"\nimport { requestDepositPlan } from \"../data/requestDepositPlan\"\nimport { storeSignedAgreement } from \"../data/storeSignedAgreement\"\nimport { useSnackPack } from \"./useSnackPack\"\nimport { useWalletService } from \"./useWalletService\"\nimport { StepDirection, SetStepPayloads, SetStep } from \"./useStep\"\nimport { useEmailAccount } from \"./useEmailAccount\"\nimport { useMatomo } from \"./useMatomo\"\n\nexport interface UseStepWizardProps {\n prevStep: StakingStep\n setStep: SetStep\n}\n\nexport const useStepWizard = (props: UseStepWizardProps) => {\n const { state, dispatch } = useContext(AppContext as DefaultContext)\n const { prevStep, setStep } = props\n const isFirstLoad = useRef(true)\n const [broadcastedTx, setBroadcastedTx] = useState(null)\n const [Wallet, getWalletService] = useWalletService()\n const { openSnackPack, hideSnackPack } = useSnackPack()\n const { scheduleReminder, cancelReminder } = useEmailAccount()\n\n const stakingStateRef = useRef(state.staking)\n stakingStateRef.current = state.staking\n const walletStateRef = useRef(state.wallet)\n walletStateRef.current = state.wallet\n\n // Matomo\n const { trackEvent } = useMatomo()\n\n const getAndSetWalletService = useCallback(() => {\n const WalletService = Wallet ?? getWalletService()\n if (!WalletService) throw new Error(\"walletService\")\n\n return WalletService\n }, [])\n\n const dispatchBroadcastError = useCallback((error: any) => {\n dispatch({ type: \"SET_MODAL_OPEN\", payload: { field: GlobalState.MODAL_OPEN, value: false } })\n\n if (stakingStateRef.current.currentStep === StakingStep.Sign) {\n throw error\n }\n\n if (stakingStateRef.current.currentStep === StakingStep.Broadcasting) {\n dispatch({\n type: \"SET_TX_BROADCAST_RESULT\",\n payload: {\n field: StakingState.TX_BROADCAST_RESULT,\n value: {\n errorMsg: getErrorMessage(error)\n }\n }\n })\n dispatch({\n type: \"SET_TX_BROADCAST_STATE\",\n payload: {\n field: StakingState.TX_BROADCAST_STATE,\n value: BroadcastState.Negative\n }\n })\n\n setStep(stakingStateRef.current.currentStep, \"next\", { targetNextStep: StakingStep.Done })\n }\n }, [])\n\n const beforeChangeActions = useMemo(\n () => ({\n [StakingStep.StakeAmount]: async () => {\n /**\n * [UI state] Loading state on\n */\n dispatch({\n type: \"SET_LOADING_COMPONENT\",\n payload: {\n field: GlobalState.LOADING_COMPONENT,\n value: {\n ...state.global.loadingComponent,\n mainSection: true\n }\n }\n })\n\n /**\n * Main actions\n */\n const { stakeAmount, exitDate } = stakingStateRef.current\n const contracts = await requestDepositPlan(stakeAmount, exitDate)\n\n dispatch({\n type: \"SET_CONTRACTS\",\n payload: { field: StakingState.CONTRACTS, value: contracts }\n })\n\n /**\n * [UI state] Loading state off\n */\n dispatch({\n type: \"SET_LOADING_COMPONENT\",\n payload: {\n field: GlobalState.LOADING_COMPONENT,\n value: {\n ...state.global.loadingComponent,\n mainSection: false\n }\n }\n })\n\n scheduleReminder()\n },\n [StakingStep.Review]: async () => {\n /***********************************/\n /* 1. Open modal */\n /***********************************/\n dispatch({ type: \"SET_MODAL_ID\", payload: { field: GlobalState.MODAL_ID, value: \"walletInFocusView\" } })\n dispatch({ type: \"SET_MODAL_OPEN\", payload: { field: GlobalState.MODAL_OPEN, value: true } })\n\n /***********************************/\n /* 2. Reset values */\n /***********************************/\n dispatch({\n type: \"SET_GAS_COST\",\n payload: {\n field: StakingState.GAS_COST,\n value: undefined\n }\n })\n dispatch({\n type: \"SET_AGREEMENTS_SIGNATURE\",\n payload: { field: StakingState.AGREEMENTS_SIGNATURE, value: undefined }\n })\n\n /***********************************/\n /* 3-1. Get and set values */\n /***********************************/\n try {\n const WalletService = getAndSetWalletService()\n\n const address = walletStateRef.current.address as string\n const gasCost = await WalletService.estimateGasCost(\n stakingStateRef.current.contracts,\n stakingStateRef.current.stakeAmount\n )\n dispatch({\n type: \"SET_GAS_COST\",\n payload: {\n field: StakingState.GAS_COST,\n value: gasCost\n }\n })\n\n const agreementText = EN_AGREEMENTS.join(\" \")\n const signedPayload = await WalletService.signAgreement(address, agreementText)\n await storeSignedAgreement(signedPayload)\n dispatch({\n type: \"SET_AGREEMENTS_SIGNATURE\",\n payload: { field: StakingState.AGREEMENTS_SIGNATURE, value: signedPayload.signature }\n })\n\n scheduleReminder()\n } catch (e) {\n /***********************************/\n /* 3-2. Close modal on error state */\n /***********************************/\n dispatch({ type: \"SET_MODAL_OPEN\", payload: { field: GlobalState.MODAL_OPEN, value: false } })\n throw e as Error\n }\n\n /***********************************/\n /* 4. Close modal */\n /***********************************/\n dispatch({ type: \"SET_MODAL_OPEN\", payload: { field: GlobalState.MODAL_OPEN, value: false } })\n },\n [StakingStep.Sign]: async () => {\n dispatch({ type: \"SET_MODAL_ID\", payload: { field: GlobalState.MODAL_ID, value: \"walletInFocusView\" } })\n dispatch({ type: \"SET_MODAL_OPEN\", payload: { field: GlobalState.MODAL_OPEN, value: true } })\n\n try {\n const WalletService = getAndSetWalletService()\n\n const tx = await WalletService.broadcastAndGetTx(\n stakingStateRef.current.contracts,\n stakingStateRef.current.stakeAmount\n )\n setBroadcastedTx(tx)\n } catch (e) {\n dispatchBroadcastError(e)\n }\n\n dispatch({ type: \"SET_MODAL_OPEN\", payload: { field: GlobalState.MODAL_OPEN, value: false } })\n scheduleReminder()\n },\n [StakingStep.Broadcasting]: () => null,\n [StakingStep.Done]: () => null\n }),\n [Wallet]\n )\n\n const afterChangeActions = useMemo(\n () => ({\n [StakingStep.StakeAmount]: () => null,\n [StakingStep.Review]: () => null,\n [StakingStep.Sign]: () => null,\n [StakingStep.Broadcasting]: async () => {\n // Matomo\n trackEvent({ category: \"transaction\", action: \"broadcastStarted\" })\n\n try {\n const WalletService = getAndSetWalletService()\n\n const receipt = await WalletService.getBroadcastReceipt(broadcastedTx)\n if (!receipt) {\n dispatchBroadcastError(\"broadcastGeneralFailure\")\n return\n }\n\n dispatch({\n type: \"SET_GAS_COST\",\n payload: {\n field: StakingState.GAS_COST,\n value: receipt.gasCost\n }\n })\n dispatch({\n type: \"SET_TX_BROADCAST_RESULT\",\n payload: {\n field: StakingState.TX_BROADCAST_RESULT,\n value: {\n eth1Id: receipt.txHash,\n eth1TxUrl: `https://etherscan.io/tx/${receipt.txHash}`\n }\n }\n })\n\n dispatch({\n type: \"SET_TX_BROADCAST_STATE\",\n payload: {\n field: StakingState.TX_BROADCAST_STATE,\n value: BroadcastState.Positive\n }\n })\n setStep(StakingStep.Broadcasting, \"next\")\n\n // Matomo\n trackEvent({ category: \"transaction\", action: \"broadcastEnded\" })\n trackEvent({ category: \"transaction\", action: \"broadcastSuccess\" })\n } catch (e) {\n dispatchBroadcastError(e)\n\n // Matomo\n trackEvent({ category: \"transaction\", action: \"broadcastEnded\" })\n trackEvent({ category: \"transaction\", action: \"broadcastFailure\" })\n }\n },\n [StakingStep.Done]: async () => {\n try {\n await cancelReminder()\n } catch (e) {\n // do nothing\n }\n }\n }),\n [broadcastedTx]\n )\n\n const onNavigateStepClick = useCallback(\n async (direction: StepDirection, payloads?: SetStepPayloads) => {\n if (direction === \"prev\") {\n /**\n *\n * Previous step actions\n *\n */\n const currentStep = stakingStateRef.current.currentStep\n\n // Cancels email reminder if user returns to the first step\n if (currentStep === StakingStep.Review) {\n cancelReminder()\n }\n\n setStep(currentStep, direction, payloads)\n } else {\n /**\n *\n * Next step action\n *\n */\n try {\n await beforeChangeActions[stakingStateRef.current.currentStep]()\n setStep(stakingStateRef.current.currentStep, direction, payloads)\n } catch (e: any) {\n openSnackPack({\n ...snackPackProps.generalError,\n children: getErrorMessage(e)\n })\n }\n }\n\n hideSnackPack()\n window.scroll(0, 0)\n },\n [stakingStateRef]\n )\n\n const majorButtonCallbacks = useMemo(\n () => ({\n walletUnconnected: () => {\n dispatch({ type: \"SET_MODAL_ID\", payload: { field: GlobalState.MODAL_ID, value: \"walletWidget\" } })\n dispatch({ type: \"SET_MODAL_OPEN\", payload: { field: GlobalState.MODAL_OPEN, value: true } })\n\n // Matomo\n trackEvent({ category: \"wallet\", action: \"clickConnect\" })\n },\n firstStep: async () => {\n await onNavigateStepClick(\"next\")\n\n // Matomo\n trackEvent({ category: \"stepStakeAmount\", action: \"clickNextStep\" })\n },\n reviewStep: async () => {\n await onNavigateStepClick(\"next\")\n\n // Matomo\n trackEvent({ category: \"stepReview\", action: \"clickReviewAndSign\" })\n },\n signStep: async () => {\n await onNavigateStepClick(\"next\")\n\n // Matomo\n trackEvent({ category: \"stepSign\", action: \"clickSignAndBroadcast\" })\n },\n txPendingStep: () => null,\n txPositiveStep: () => null,\n txNegativeStep: async () => {\n // set BroadcastState back to pending before step change\n dispatch({\n type: \"SET_TX_BROADCAST_STATE\",\n payload: {\n field: StakingState.TX_BROADCAST_STATE,\n value: BroadcastState.Pending\n }\n })\n await onNavigateStepClick(\"prev\", { targetPrevStep: StakingStep.Sign })\n }\n }),\n [onNavigateStepClick]\n )\n\n const subButtonCallbacks = useMemo(\n () => ({\n walletUnconnected: () => null,\n firstStep: async () => {\n await onNavigateStepClick(\"prev\")\n\n // Matomo\n trackEvent({ category: \"stepStakeAmount\", action: \"clickPreviousStep\" })\n },\n reviewStep: async () => {\n await onNavigateStepClick(\"prev\")\n\n // Matomo\n trackEvent({ category: \"stepReview\", action: \"clickPreviousStep\" })\n },\n signStep: async () => {\n await onNavigateStepClick(\"prev\")\n\n // Matomo\n trackEvent({ category: \"stepSign\", action: \"clickPreviousStep\" })\n },\n txPendingStep: () => null,\n txPositiveStep: () => null,\n txNegativeStep: () => null\n }),\n [onNavigateStepClick]\n )\n\n /**\n *\n * [On step change]\n * Handle actions after change.\n *\n */\n useEffect(() => {\n if (!isFirstLoad.current) {\n // prev step actions\n if (prevStep > state.staking.currentStep) return\n\n // next step actions\n const handleAfterChange = async () => {\n await afterChangeActions[state.staking.currentStep]()\n }\n handleAfterChange()\n }\n\n isFirstLoad.current = false\n }, [state.staking.currentStep])\n\n return {\n majorButtonCallbacks,\n subButtonCallbacks\n }\n}\n","import { useContext, useRef, useMemo } from \"react\"\nimport { isNil } from \"lodash\"\nimport { ethers } from \"ethers\"\nimport { AppContext, DefaultContext } from \"../context\"\nimport initializeWallet from \"../services/wallet\"\n\nexport const useWalletService = () => {\n const { provider } = useContext(AppContext as DefaultContext)\n const providerRef = useRef(provider)\n providerRef.current = provider\n\n const getWalletService = () => {\n if (isNil(providerRef.current)) {\n return null\n }\n\n return initializeWallet(providerRef.current as ethers.providers.Web3Provider)\n }\n\n const walletService = useMemo(getWalletService, [providerRef.current])\n\n return [walletService, getWalletService] as const\n}\n","/**\n * Truncates wallet address after {n} chars\n *\n * @param address\n * @param truncateAfter - default 6.\n * @returns string\n */\nexport const getTruncatedAddress = (address: string, truncateAfter: number = 6) =>\n `0x${address.replace(\"0x\", \"\").substring(0, truncateAfter)}...${address.substring(address.length - truncateAfter)}`\n","import { Helmet } from \"react-helmet\"\nimport { META_DATA } from \"../consts/stakefish\"\n\nexport interface SeoProps {\n name?: string\n title?: string\n description?: string\n keywords?: string\n}\n\nexport const HTML = () => {\n return (\n \n {/* Matomo */}\n \n \n )\n}\n\nexport const SEO = (props: SeoProps) => {\n const name = props.name ?? META_DATA.name\n const title = props.title ?? META_DATA.title\n const description = props.description ?? META_DATA.description\n const keywords = props.keywords ?? META_DATA.keywords\n const suffixedTitle = `${title} | ${name}`\n\n return (\n \n )\n}\n","import React from \"react\"\nimport MuiBox from \"@mui/material/Box\"\nimport { styled } from \"@mui/material/styles\"\nimport { useIntl } from \"react-intl\"\nimport Typography from \"@stakefish/ui/components/Typography\"\nimport SocialIcon from \"@stakefish/ui/components/SocialIcon\"\nimport {\n SOCIAL_LINKS,\n LINK_PRIVACY_POLICY,\n LINK_TERMS_OF_SERVICE,\n LINK_CONTACT,\n LINK_DASHBOARD\n} from \"../consts/stakefish\"\n\nconst SocialIconsBox = styled(\"ul\")(({ theme }) => ({\n listStyle: \"none\",\n margin: theme.spacing(0, 0, 2.5),\n padding: 0,\n display: \"flex\",\n justifyContent: \"center\",\n flexWrap: \"wrap\",\n gap: theme.spacing(1.5),\n direction: \"ltr\",\n\n \"& li\": {\n textAlign: \"center\",\n margin: theme.spacing(0.5, 0)\n },\n [theme.breakpoints.down(\"sm\")]: {\n gap: theme.spacing(1)\n }\n}))\n\nconst LegalBox = styled(MuiBox)(({ theme }) => ({\n marginBottom: theme.spacing(1),\n \"& a, & *\": {\n color: theme.palette.gray[500]\n },\n \"& a\": {\n background: \"none\",\n fontWeight: \"inherit\"\n },\n \"& span\": {\n padding: theme.spacing(0, 1)\n }\n}))\n\nconst Copyright = styled(MuiBox)(({ theme }) => ({\n color: theme.palette.gray[500]\n}))\n\nconst FooterBox = styled(\"footer\")(({ theme }) => ({\n margin: \"0 auto\",\n textAlign: \"center\",\n padding: theme.spacing(11.3, 3),\n letterSpacing: \"normal\",\n\n [theme.breakpoints.down(\"sm\")]: {\n margin: \"0 auto\",\n padding: theme.spacing(7, 3),\n\n \".MuiTypography-root\": {\n fontSize: \"12px !important\",\n lineHeight: \"normal !important\"\n }\n }\n}))\n\nconst Footer = () => {\n const intl = useIntl()\n\n const renderers = {\n url: (...chunks: string[]) => (\n \n {chunks}\n \n )\n }\n\n const [copyright, privacyPolicy, termsOfService, ifYouHaveAnyQuestions, dashboard] = [\n intl.formatMessage({ id: \"COPYRIGHT_STAKE_FISH\" }),\n intl.formatMessage({ id: \"PRIVACY_POLICY\" }),\n intl.formatMessage({ id: \"TERMS_OF_SERVICE\" }),\n intl.formatMessage({ id: \"IF_YOU_HAVE_ANY_QUESTIONS_CONTACT_US\" }, { url: renderers.url }),\n intl.formatMessage({ id: \"DASHBOARD\" })\n ]\n\n return (\n \n \n {SOCIAL_LINKS.map((item, index) => (\n
  • 2 ? index + 2 : index}>\n \n
  • \n ))}\n
    \n \n {ifYouHaveAnyQuestions}\n \n \n \n \n {privacyPolicy}\n \n ·\n \n {termsOfService}\n \n ·\n \n {dashboard}\n \n \n \n \n \n {copyright}\n \n \n
    \n )\n}\n\nexport default Footer\n","import { useState, useContext, useEffect, useCallback, useMemo } from \"react\"\nimport { useTheme } from \"@mui/material/styles\"\nimport useMediaQuery from \"@mui/material/useMediaQuery\"\nimport Icon from \"@stakefish/ui/components/Icon\"\nimport Snackbar from \"@stakefish/ui/components/Snackbar\"\nimport { AppContext, DefaultContext } from \"../context\"\nimport { GlobalStates } from \"../types/global\"\nimport { usePrevious } from \"../hooks/usePrevious\"\nimport { useMatomo } from \"../hooks/useMatomo\"\n\ninterface DefiniteSnackPack extends Exclude {\n key: number\n}\n\nconst SnackbarPack: React.FC = () => {\n const { state } = useContext(AppContext as DefaultContext)\n const theme = useTheme()\n const isMobile = useMediaQuery(theme.breakpoints.down(\"md\"))\n const [snackPack, setSnackPack] = useState([])\n const prevSnackPack = usePrevious(state.global.snackbarPack)\n const [open, setOpen] = useState(false)\n const [messageInfo, setMessageInfo] = useState(undefined)\n const { trackEvent } = useMatomo()\n\n /***********/\n /* Helpers */\n /***********/\n const handleClose = useCallback(\n (event, reason) => {\n if (reason === \"clickaway\") return\n\n if (messageInfo?.onClose) messageInfo?.onClose(event, reason)\n setOpen(false)\n },\n [messageInfo]\n )\n const handleExited = useCallback(() => {\n setMessageInfo(undefined)\n }, [setMessageInfo])\n\n /***********/\n /* Updates */\n /***********/\n /**\n *\n * Update local snackPack array according to global change.\n *\n */\n useEffect(() => {\n if (prevSnackPack?.type !== state.global.snackbarPack?.type) {\n setSnackPack((prev) => [\n ...prev,\n { ...state.global.snackbarPack, key: new Date().getTime() } as DefiniteSnackPack\n ])\n }\n }, [state.global.snackbarPack])\n\n /**\n *\n * Close Snackbar if global bar pack is from valid to undefined.\n *\n */\n useEffect(() => {\n if (!state.global.snackbarPack) {\n setSnackPack([])\n setOpen(false)\n }\n }, [state.global.snackbarPack])\n\n /**\n *\n * Update Snackbar content according to local state changes.\n *\n */\n useEffect(() => {\n if (snackPack.length && !messageInfo) {\n // Set a new snack when we don't have an active one\n setMessageInfo({ ...snackPack[0] })\n setSnackPack((prev) => prev.slice(1))\n setOpen(true)\n\n // Matomo\n trackEvent({\n category: \"snackbar\",\n action: \"shown\",\n name: `${state.staking.currentStep}-${snackPack[0].type}`\n })\n } else if (snackPack.length && messageInfo && open) {\n // Close an active snack when a new one is added\n setOpen(false)\n\n // Matomo\n trackEvent({\n category: \"snackbar\",\n action: \"hidden\",\n name: `${state.staking.currentStep}`\n })\n }\n }, [snackPack, messageInfo, open])\n\n /***********/\n /* Main */\n /***********/\n const { key, alertProps, ...props } = useMemo(() => {\n if (messageInfo) return messageInfo\n\n return {\n key: undefined,\n alertProps: undefined\n }\n }, [messageInfo])\n\n return (\n ,\n sx: { alignItems: \"center\" },\n ...alertProps\n }}\n {...props}\n open={open}\n onClose={handleClose}\n TransitionProps={{ onExited: handleExited }}\n data-test-id=\"snackbar\"\n >\n {messageInfo?.children}\n \n )\n}\n\nexport default SnackbarPack\n","import React from \"react\"\nimport { styled } from \"@mui/material/styles\"\nimport MuiBox from \"@mui/material/Box\"\n\nconst LogoRoot = styled(MuiBox)(({ theme }) => ({\n width: theme.spacing(9),\n minWidth: theme.spacing(9),\n overflow: \"hidden\",\n transition: \"width 0.4s ease\",\n display: \"block\",\n\n \"& svg\": {\n width: theme.spacing(25),\n\n \"& .fish_circle\": {\n transition: \"all 0.2s ease\",\n transformOrigin: \"34px center\"\n },\n\n \"& .fish_tail\": {\n transition: \"all 0.2s ease\",\n transformOrigin: \"20px center\"\n }\n },\n\n [theme.breakpoints.down(\"sm\")]: {\n width: theme.spacing(5),\n minWidth: theme.spacing(5),\n\n \"& svg\": {\n width: theme.spacing(14),\n height: \"auto\"\n }\n }\n}))\n\nconst Logo = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default Logo\n","import React from \"react\"\nimport { useIntl } from \"react-intl\"\nimport Skeleton from \"react-loading-skeleton\"\n\nimport { styled, useTheme } from \"@mui/material/styles\"\nimport useMediaQuery from \"@mui/material/useMediaQuery\"\nimport MuiBox from \"@mui/material/Box\"\nimport Typography from \"@stakefish/ui/components/Typography\"\nimport WalletCapsule, { WalletCapsuleProps } from \"@stakefish/ui/components/WalletCapsule\"\n\nimport { WalletStates } from \"../types/wallet\"\nimport { isSupportedNetwork } from \"../utils/web3\"\nimport { SUPPORTED_NETWORK_MAP } from \"../consts/wallet\"\nimport Logo from \"./Logo\"\n\nexport interface HeaderProps {\n loading?: boolean\n walletCapsuleProps: Omit\n}\n\nconst HeaderBox = styled(\"header\")(({ theme }) => ({\n margin: \"0 auto\",\n padding: theme.spacing(2.2, 3),\n backgroundColor: theme.palette.gray[100],\n\n [theme.breakpoints.down(\"sm\")]: {\n padding: \"11px 20px\",\n backgroundColor: theme.palette.gray.white\n }\n}))\n\nconst networkRenderer = (network: WalletStates[\"network\"]) => {\n if (!network?.name) return undefined\n\n if (!isSupportedNetwork(network.name)) {\n const chunks = network.name.split(\"\")\n chunks[0] = chunks[0].toUpperCase()\n return chunks.join(\"\")\n }\n\n return SUPPORTED_NETWORK_MAP[network.name]\n}\n\nconst Header: React.FC = ({ loading, walletCapsuleProps }) => {\n const intl = useIntl()\n const theme = useTheme()\n const isMobile = useMediaQuery(theme.breakpoints.down(\"md\"))\n\n return (\n \n \n \n \n {!isMobile && {intl.formatMessage({ id: \"ETHEREUM_STAKING\" })}}\n \n {/* TODO: add language dropdown (low priority) */}\n \n {loading && }\n {!loading && }\n \n \n \n )\n}\n\nexport default Header\n","import React, { useMemo } from \"react\"\nimport { useIntl } from \"react-intl\"\n\nimport { styled } from \"@mui/material/styles\"\nimport MuiStep from \"@mui/material/Step\"\nimport MuiBox from \"@mui/material/Box\"\nimport SfStepper from \"@stakefish/ui/components/Stepper\"\nimport StepLabel from \"@stakefish/ui/components/StepLabel\"\nimport StepLabelText from \"@stakefish/ui/components/StepLabelText\"\nimport { StakingSteps, BroadcastState, StakingStates, StakingState, StakingStep } from \"../types/staking\"\n\nexport interface StepperProps {\n steps: StakingSteps\n [StakingState.CURRENT_STEP]: StakingStates[\"currentStep\"]\n [StakingState.STAKE_AMOUNT]: StakingStates[\"stakeAmount\"]\n [StakingState.TX_BROADCAST_STATE]: StakingStates[\"txBroadcastState\"]\n}\n\nconst EthAmountLabel = ({ amount }: { amount: number }) => (\n \n \n {amount} ETH\n \n \n)\n\nconst Wrapper = styled(MuiBox)(({ theme }) => ({\n \"& .MuiStepper-root\": {\n padding: 0\n },\n\n [theme.breakpoints.down(\"md\")]: {\n width: \"calc(100% + 40px)\",\n overflow: \"auto\",\n paddingBottom: theme.spacing(2),\n margin: \"0 -20px\",\n whiteSpace: \"nowrap\"\n }\n}))\n\nconst Stepper: React.FC = ({ steps, currentStep, stakeAmount, txBroadcastState }) => {\n const intl = useIntl()\n\n return (\n \n \n {steps.map((label, index) => {\n const isLastStepInDone = useMemo(() => currentStep === steps.length && index === steps.length, [currentStep])\n const isErrorStep = useMemo(\n () => isLastStepInDone && txBroadcastState === BroadcastState.Negative,\n [isLastStepInDone, txBroadcastState]\n )\n\n return (\n \n \n \n {intl.formatMessage({ id: \"STEP\" }, { step: index + 1 })}\n \n {label}\n {/*\n * stake amount at first step\n */}\n {currentStep > 1 && index === 0 && stakeAmount && }\n {/*\n * stake result at last step\n */}\n {isLastStepInDone && (\n \n {txBroadcastState === BroadcastState.Negative ? \"Error\" : \"Success\"}\n \n )}\n \n \n )\n })}\n \n \n )\n}\n\nexport default Stepper\n","import React from \"react\"\nimport { useIntl } from \"react-intl\"\n\nimport { styled, useTheme } from \"@mui/material/styles\"\nimport MuiBox from \"@mui/material/Box\"\nimport useMediaQuery from \"@mui/material/useMediaQuery\"\nimport Typography from \"@stakefish/ui/components/Typography\"\nimport SfLinearProgress from \"@stakefish/ui/components/LinearProgress\"\nimport { StakingSteps, StakingStates, StakingState, StakingStep } from \"../types/staking\"\n\nexport interface ProgressProps {\n steps: StakingSteps\n [StakingState.CURRENT_STEP]: StakingStates[\"currentStep\"]\n [StakingState.STAKE_AMOUNT]: StakingStates[\"stakeAmount\"]\n [StakingState.TX_BROADCAST_STATE]: StakingStates[\"txBroadcastState\"]\n}\n\nconst Wrapper = styled(MuiBox)(({ theme }) => ({}))\n\nconst Stepper: React.FC = ({ steps, currentStep }) => {\n const intl = useIntl()\n const theme = useTheme()\n const isMobile = useMediaQuery(theme.breakpoints.down(\"md\"))\n\n return (\n \n \n \n {intl.formatMessage({ id: \"ETHEREUM_STAKING_SHORT\" })}\n \n \n {currentStep === StakingStep.Done ? steps.length : currentStep}/{steps.length}\n \n \n\n \n \n \n \n )\n}\n\nexport default Stepper\n","import React from \"react\"\nimport { styled, useTheme } from \"@mui/material/styles\"\nimport MuiBox from \"@mui/material/Box\"\nimport useMediaQuery from \"@mui/material/useMediaQuery\"\n\nimport GridItem from \"@stakefish/ui/components/GridItem\"\nimport GridContainer from \"@stakefish/ui/components/GridContainer\"\nimport Modal, { ModalProps } from \"@stakefish/ui/components/Modal\"\n\nimport { SEO } from \"../core/MetaTags\"\nimport { ModalType, ModalsList } from \"../types/modal\"\nimport Footer from \"./Footer\"\nimport SnackbarPack from \"./SnackbarPack\"\nimport Header, { HeaderProps } from \"./Header\"\nimport Stepper, { StepperProps } from \"./Stepper\"\nimport Progress from \"./Progress\"\n\nexport interface LayoutProps {\n loading?: boolean\n stepperProps: StepperProps\n modal: {\n open: ModalProps[\"open\"]\n activeId: ModalType\n list: ModalsList\n }\n headerProps: HeaderProps\n}\n\nconst GridContainerBox = styled(GridContainer)({\n marginTop: 0\n})\n\nconst MainBox = styled(MuiBox)({\n display: \"flex\",\n flexDirection: \"column\",\n minHeight: \"100vh\"\n})\n\n// TODO: remove thsi styles after ui kit release with Container updates\nconst ContainerBox = styled(MuiBox)(({ theme }) => ({\n maxWidth: 1220,\n margin: \"0 auto\",\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3),\n boxSizing: \"content-box\",\n\n [theme.breakpoints.down(\"sm\")]: {\n paddingLeft: \"20px\",\n paddingRight: \"20px\"\n }\n}))\n\nconst Layout: React.FC = ({ loading, stepperProps, modal, headerProps, children }) => {\n const theme = useTheme()\n const isMobile = useMediaQuery(theme.breakpoints.down(\"md\"))\n\n return (\n <>\n \n \n \n
    \n
    \n \n \n \n \n {isMobile ? : }\n \n \n {children}\n \n \n \n \n
    \n \n