{"version":3,"file":"static/js/435.c608a5e3.chunk.js","mappings":"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","sources":["features/web3/utils/connectMetamask/index.js","features/web3/utils/personalSign/index.js","features/metamask/constants/metamask-extension-urls.js","features/metamask/components/install-metamask/styles.js","features/metamask/components/install-metamask/index.js","features/auth/components/connect-with-metamask/index.js","common/constants/regex.js","features/user/schema/index.js","features/web3/utils/isMetaMaskInstalled/index.js","../node_modules/@mui/system/esm/Box/Box.js","features/auth/components/login/schema.js","features/auth/components/login/styles.js","features/auth/components/login/index.js","pages/login/index.js"],"sourcesContent":["export default async function connectMetamask () {\n try {\n await window.ethereum.enable();\n const accounts = await window.ethereum.request({\n method: 'eth_requestAccounts',\n });\n return { publicAddress: accounts[0] };\n } catch (err) {\n let errorMessage;\n if (err.code === 4001) {\n errorMessage = 'user.error.reject.metamask';\n } else {\n errorMessage = err;\n }\n return { errorMessage };\n }\n}","export default async function personalSign (data) {\n let errorMessage = '';\n const signature = await window.ethereum\n .request({method: 'personal_sign', params: [data.message, data.publicAddress]})\n .catch(err => {\n if (err.code === 4001) {\n errorMessage = 'user.error.reject.metamask.sign';\n } else {\n errorMessage = err;\n }\n });\n return {signature, errorMessage};\n}","const Urls = {\n CHROME: 'https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn',\n FIREFOX: 'https://addons.mozilla.org/en-US/firefox/addon/ether-metamask/',\n EDGE_CHROMIUM: 'https://microsoftedge.microsoft.com/addons/detail/metamask/ejbalbakoplchlghecdalmeeeajnimhm?hl=en-US',\n OPERA: 'https://addons.opera.com/en-gb/extensions/details/metamask-10/',\n};\nexport default Urls;","const styles = {\n root: {\n textAlign:'center',\n },\n link: {\n fontWeight: 'bold',\n margin: '0 5px',\n },\n};\nexport default styles;","import React from 'react';\nimport $t from 'translation';\nimport {Link} from '@mui/material';\nimport {detect} from 'detect-browser';\nimport Typography from '@mui/material/Typography';\nimport Urls from 'features/metamask/constants/metamask-extension-urls';\nimport Grid from '@mui/material/Unstable_Grid2';\nimport styles from './styles';\n\nconst InstallMetamask = () => {\n const browser = detect();\n let url = '';\n switch (browser?.name) {\n case 'chrome':\n url = Urls.CHROME;\n break;\n\n case 'firefox':\n url = Urls.FIREFOX;\n break;\n\n case 'edge-chromium':\n url = Urls.EDGE_CHROMIUM;\n break;\n\n case 'opera':\n url = Urls.OPERA;\n break;\n\n default:\n break;\n }\n\n return (\n \n {url ? (\n \n {$t('auth.form.install.plugin')}\n \n {$t('auth.form.metamask.plugin')}\n \n {$t('auth.form.install.plugin.description')}\n \n ) : (\n {$t('auth.form.plugin.not.supported')}\n )\n }\n \n );\n};\n\nexport default InstallMetamask;","import React, {useEffect, useImperativeHandle, useState} from 'react';\nimport LoadingButton from '@mui/lab/LoadingButton';\nimport userApi from 'api/auth';\nimport isMetaMaskInstalled from 'features/web3/utils/isMetaMaskInstalled';\nimport connectWallet from 'features/web3/utils/connectMetamask';\nimport personalSign from 'features/web3/utils/personalSign';\nimport $t from 'translation';\nimport {useCurrentUserContext} from 'features/user/contexts/user-provider';\nimport {useNavigate} from 'react-router-dom';\nimport {FormHelperText} from '@mui/material';\nimport PropTypes from 'prop-types';\nimport InstallMetamask from 'features/metamask/components/install-metamask';\n\nconst ConnectMetamask = React.forwardRef((props, ref) => {\n const {buttonText, messageSignature, handleAction, showErrorMessage, onClick = null} = props;\n const navigate = useNavigate();\n const {login} = useCurrentUserContext();\n const hasMetamaskExtension = isMetaMaskInstalled();\n const [state, setState] = useState({\n loadingMetamask: false,\n showErrorMessage,\n errorMessage: '',\n });\n\n useEffect(() => {\n setState({\n ...state,\n showErrorMessage: props.showErrorMessage,\n });\n }, [props]);\n\n useImperativeHandle(ref, () => ({\n handleClick: handleClick,\n }));\n\n const connectWithMetamask = async (nonce, publicAddress, data) => {\n const message = `Ethelo ${messageSignature},${Date.now()},${nonce}`;\n const {signature, errorMessage} = await personalSign({message, publicAddress});\n if (signature) {\n const user = {\n ...data,\n terms: true,\n public_address: publicAddress,\n message,\n signature,\n };\n userApi[handleAction]({user})\n .then(() => {\n login();\n navigate('/', {replace: true});\n })\n .catch(error => {\n setState({\n ...state,\n loadingMetamask: false,\n errorMessage: error,\n });\n });\n } else {\n setState({\n ...state,\n errorMessage,\n loadingMetamask: false,\n });\n }\n };\n\n const handleClick = async data => {\n setState({\n ...state,\n errorMessage: '',\n loadingMetamask: true,\n showErrorMessage: true,\n });\n const {publicAddress, errorMessage} = await connectWallet();\n if (publicAddress) {\n userApi.nonce({user: {public_address: publicAddress}})\n .then(response => {\n connectWithMetamask(response.nonce, publicAddress, data);\n })\n .catch(error => {\n setState({\n ...state,\n loadingMetamask: false,\n errorMessage: error,\n });\n });\n } else {\n setState({\n ...state,\n loadingMetamask: false,\n errorMessage,\n });\n }\n };\n\n if (hasMetamaskExtension) {\n return (\n <>\n onClick ? onClick() : handleClick()}\n >\n {buttonText}\n \n {state.showErrorMessage && (\n \n {$t(state.errorMessage)}\n \n )}\n \n );\n } else {\n return ;\n }\n\n});\nConnectMetamask.propTypes = {\n buttonText: PropTypes.string.isRequired,\n messageSignature: PropTypes.string.isRequired,\n handleAction: PropTypes.string.isRequired,\n showErrorMessage: PropTypes.bool.isRequired,\n onClick: PropTypes.func,\n};\n\nexport default ConnectMetamask;","const Regex = {\n EMAIL: /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\n PASSWORD_REQUIREMENTS: /^(?=.*[0-9])(?=.*[!@#$%^&*])[a-zA-Z0-9!@#$%^&*]/,\n};\n\nexport default Regex;\n","import * as yup from 'yup';\nimport Regex from 'common/constants/regex';\n\n\nconst userSchemaObject = {\n name: yup\n .string()\n .required('common.form.error.required')\n .min(3, 'user.error.name.min')\n .max(30, 'user.error.name.max'),\n \n password: yup\n .string()\n .required('common.form.error.required')\n .min(6, 'user.error.password.min'),\n \n \n password_confirmation: yup.string()\n .oneOf([yup.ref('password'), null], 'user.password.confirm.error'),\n \n email: yup\n .string()\n .matches(Regex.EMAIL,\n ({ originalValue, value }) => {\n if (!!originalValue === false) {\n return 'common.form.error.required';\n } else if (!Regex.EMAIL.test(value)) {\n return 'user.error.email.invalid';\n }\n },\n ),\n};\n\nexport default function getUserValidationSchema (arrayOfKeys) {\n const keys = arrayOfKeys.length === 0 ? Object.keys(userSchemaObject) : arrayOfKeys;\n \n const shape = keys.reduce((output, currentKey) => {\n output[currentKey] = userSchemaObject[currentKey];\n return output;\n }, {});\n \n return yup.object().shape(shape);\n}\n","export default function isMetaMaskInstalled () {\n const { ethereum } = window;\n return Boolean(ethereum && ethereum.isMetaMask);\n}","import PropTypes from 'prop-types';\nimport createBox from '../createBox';\nconst Box = createBox();\nprocess.env.NODE_ENV !== \"production\" ? Box.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Box;","import getUserValidationSchema from 'features/user/schema';\n\nexport default getUserValidationSchema(['email', 'password']);\n","const styles ={\n marginBottom: {\n marginBottom: '15px',\n },\n};\nexport default styles;","import React, {useEffect, useState} from 'react';\nimport {Controller, useForm} from 'react-hook-form';\nimport {Box} from '@mui/system';\nimport Typography from '@mui/material/Typography';\nimport $t from 'translation';\nimport {Link, useNavigate} from 'react-router-dom';\nimport Grid from '@mui/material/Unstable_Grid2';\nimport TextField from '@mui/material/TextField';\nimport Checkbox from '@mui/material/Checkbox';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport LoadingButton from '@mui/lab/LoadingButton';\nimport userApi from 'api/auth';\nimport {Button, FormControl, FormHelperText} from '@mui/material';\nimport MetamaskLogin from 'features/auth/components/connect-with-metamask';\nimport {useCurrentUserContext} from 'features/user/contexts/user-provider';\nimport {yupResolver} from '@hookform/resolvers/yup';\nimport schema from './schema';\nimport isMetaMaskInstalled from 'features/web3/utils/isMetaMaskInstalled';\nimport styles from './styles';\n\nconst LoginForm = () => {\n const navigate = useNavigate();\n const {login, loginGuest} = useCurrentUserContext();\n const hasMetamaskExtension = isMetaMaskInstalled();\n\n const {register, handleSubmit, control, formState: {errors = {}}} = useForm({\n resolver: yupResolver(schema),\n });\n\n const [state, setState] = useState({\n loading: false,\n showLoginForm: false,\n errorMessage: '',\n });\n\n useEffect(() => {\n if (!hasMetamaskExtension) {\n setState({\n ...state,\n showLoginForm: true,\n });\n }\n }, []);\n\n const showLoginForm = () => {\n setState({\n ...state,\n showLoginForm: true,\n });\n };\n\n const submit = async data => {\n setState({\n ...state,\n loading: true,\n });\n\n userApi.login({user: data})\n .then(() => {\n login();\n navigate('/', {replace: true});\n })\n .catch(errorMessage => {\n setState({\n ...state,\n errorMessage,\n loading: false,\n showLoginForm: true,\n });\n });\n };\n\n const loginAsGuest = () => {\n loginGuest();\n navigate('/', { replace: true });\n };\n\n return (\n \n \n {$t('auth.login')}\n \n
\n \n {$t('auth.not.registered')}\n {' '}\n \n \n {$t('auth.register')}\n \n \n
\n \n \n \n \n\n {!state.showLoginForm && (\n \n \n {$t('auth.form.login')}\n \n \n )}\n\n \n \n {$t('auth.login.guest')}\n \n \n \n {state.showLoginForm && (\n
\n \n \n \n \n \n \n\n \n \n \n \n\n \n (\n \n )}\n />\n }\n label={$t('auth.form.remember')}\n />\n \n\n \n \n \n {$t('auth.forgot.password')}\n \n \n \n\n \n {$t(state.errorMessage)}\n \n\n \n \n {$t('auth.form.login')}\n \n \n \n \n
\n )}\n
\n );\n};\n\nexport default LoginForm;","import React from 'react';\nimport LoginForm from 'features/auth/components/login';\n\nconst LoginPage = () => {\n return(\n \n );\n};\n\nexport default LoginPage;\n"],"names":["connectMetamask","window","ethereum","enable","request","method","accounts","publicAddress","errorMessage","code","personalSign","data","params","message","catch","err","signature","CHROME","FIREFOX","EDGE_CHROMIUM","OPERA","root","textAlign","link","fontWeight","margin","browser","detect","url","name","Urls","sx","styles","Typography","variant","$t","Link","href","target","ConnectMetamask","React","props","ref","buttonText","messageSignature","handleAction","showErrorMessage","onClick","navigate","useNavigate","login","useCurrentUserContext","hasMetamaskExtension","isMetaMaskInstalled","useState","loadingMetamask","state","setState","useEffect","useImperativeHandle","handleClick","connectWithMetamask","nonce","Date","now","user","terms","public_address","userApi","then","replace","error","connectWallet","response","LoadingButton","loading","loadingPosition","startIcon","color","FormHelperText","className","EMAIL","PASSWORD_REQUIREMENTS","userSchemaObject","yup","required","min","max","password","password_confirmation","oneOf","email","matches","Regex","originalValue","value","getUserValidationSchema","arrayOfKeys","shape","length","Object","keys","reduce","output","currentKey","Boolean","isMetaMask","createBox","marginBottom","loginGuest","useForm","resolver","yupResolver","schema","register","handleSubmit","control","formState","errors","showLoginForm","submit","gutterBottom","style","to","container","spacing","item","xs","Button","onSubmit","noValidate","FormControl","TextField","size","InputProps","helperText","field","placeholder","type","FormControlLabel","defaultValue","render","Checkbox","checked","label"],"sourceRoot":""}