From 22be921b6e454cfbf1e77c2fad05099c3027daf8 Mon Sep 17 00:00:00 2001 From: Juraj Piar Date: Sun, 1 Nov 2020 15:31:02 +0000 Subject: [PATCH 01/11] feat: adds action items to navbar --- src/components/organisms/Header/Header.tsx | 10 +-- .../organisms/Header/HeaderDesktop.tsx | 68 +++++++++++++++---- .../organisms/Header/HeaderMobile.tsx | 62 +++++++++++------ .../organisms/Header/HeaderProps.ts | 13 +++- .../organisms/Header/HeaderTongue.tsx | 4 +- 5 files changed, 113 insertions(+), 44 deletions(-) diff --git a/src/components/organisms/Header/Header.tsx b/src/components/organisms/Header/Header.tsx index ab790f38..6b04d25a 100644 --- a/src/components/organisms/Header/Header.tsx +++ b/src/components/organisms/Header/Header.tsx @@ -4,15 +4,15 @@ import { HeaderProps } from './HeaderProps' import HeaderDesktop from './HeaderDesktop' import HeaderMobile from './HeaderMobile' -const Header: FC = ({ hreflogo, items, login }) => ( - +const Header: FC = (props) => ( + <> - + - + - + ) export default Header diff --git a/src/components/organisms/Header/HeaderDesktop.tsx b/src/components/organisms/Header/HeaderDesktop.tsx index 9c6bd927..cc62f67c 100644 --- a/src/components/organisms/Header/HeaderDesktop.tsx +++ b/src/components/organisms/Header/HeaderDesktop.tsx @@ -1,11 +1,13 @@ import React, { FC } from 'react' -import { AppBar, Toolbar } from '@material-ui/core' +import { + AppBar, Grid, ListItemIcon, Toolbar, +} from '@material-ui/core' import { makeStyles, Theme } from '@material-ui/core/styles' import { NavLink } from 'react-router-dom' import Typography from '@material-ui/core/Typography' +import { ActionHeaderItemProps, HeaderProps, NavItemProps } from './HeaderProps' import { LogoNavbar } from '../../atoms' import { colors, fonts, globalConstants } from '../../../theme' -import { HeaderProps, HeaderItemProps } from './HeaderProps' import { removeEmptySpaces } from '../../../utils' const useStyles = makeStyles((theme: Theme) => ({ @@ -43,20 +45,33 @@ const useStyles = makeStyles((theme: Theme) => ({ }, })) -const HeaderDesktop: FC = ({ hreflogo, items, login }) => { +const HeaderDesktop: FC = ({ + hreflogo, itemsStart, itemsEnd, login, +}) => { const classes = useStyles() const Login = login return ( - - - -
- { - !!items.length - && items.map((navItem: HeaderItemProps) => ( + + + + + + + {/*
*/} + + { + !!itemsStart.length + && itemsStart.map((navItem: NavItemProps) => ( = ({ hreflogo, items, login }) => { )) } -
-
- -
+
+ + { + !!itemsEnd?.length + && itemsEnd.map(({ icon, onClick }: ActionHeaderItemProps) => ( + + {icon} + + )) + } + + {/*
*/} + + {/*
*/} + + {/*
*/} +
+
) diff --git a/src/components/organisms/Header/HeaderMobile.tsx b/src/components/organisms/Header/HeaderMobile.tsx index 7215ba8e..a233fe1b 100644 --- a/src/components/organisms/Header/HeaderMobile.tsx +++ b/src/components/organisms/Header/HeaderMobile.tsx @@ -4,15 +4,15 @@ import { Divider, Drawer, Toolbar, IconButton, List, ListItem, - ListItemText, ListItemIcon, + ListItemText, ListItemIcon, Grid, } from '@material-ui/core' import { NavLink } from 'react-router-dom' import MenuIcon from '@material-ui/icons/Menu' import ChevronLeftIcon from '@material-ui/icons/ChevronLeft' import { Theme, createStyles, makeStyles } from '@material-ui/core/styles' +import { ActionHeaderItemProps, HeaderProps, NavItemProps } from './HeaderProps' import { colors, globalConstants } from '../../../theme' import { LogoNavbar } from '../../atoms' -import { HeaderProps, HeaderItemProps } from './HeaderProps' import { removeEmptySpaces } from '../../../utils' const drawerWidth = 240 @@ -66,12 +66,12 @@ const useStyles = makeStyles((theme: Theme) => createStyles({ }, })) -const HeaderMobile: FC = ({ hreflogo, items, login }) => { +const HeaderMobile: FC = ({ + hreflogo, itemsStart, itemsEnd, login: Login, +}) => { const classes = useStyles() const [open, setOpen] = useState(false) - const Login = login - const toggleDrawer = (isOpen: boolean) => ( event: React.KeyboardEvent | React.MouseEvent, ): void => { @@ -98,21 +98,43 @@ const HeaderMobile: FC = ({ hreflogo, items, login }) => { > {!open && ( - - + + + + + + + + + + + - - - - - -
+ { + !!itemsEnd?.length + && itemsEnd.map(({ icon, onClick }: ActionHeaderItemProps) => ( + + {icon} + + )) + } + + + {/*
*/} -
- + {/*
*/} + + )}
@@ -133,8 +155,8 @@ const HeaderMobile: FC = ({ hreflogo, items, login }) => { { - !!items.length - && items.map((headerItem: HeaderItemProps) => ( + !!itemsStart.length + && itemsStart.map((headerItem: NavItemProps) => ( , 'onClick'> diff --git a/src/components/organisms/Header/HeaderTongue.tsx b/src/components/organisms/Header/HeaderTongue.tsx index dd31f669..858324e7 100644 --- a/src/components/organisms/Header/HeaderTongue.tsx +++ b/src/components/organisms/Header/HeaderTongue.tsx @@ -49,7 +49,7 @@ const HeaderTongue: FC = ( const classes = useStyles() return ( - + <>
= ( src={headerTongueImg} alt="headerTongueImg" /> - + ) } From 3ad6d00717458f3f3b1983ea3e576af8f5ed25b3 Mon Sep 17 00:00:00 2001 From: Juraj Piar Date: Sun, 1 Nov 2020 15:31:02 +0000 Subject: [PATCH 02/11] feat: adds action items to navbar --- src/components/organisms/Header/HeaderDesktop.tsx | 11 ----------- src/components/organisms/Header/HeaderMobile.tsx | 6 ------ 2 files changed, 17 deletions(-) diff --git a/src/components/organisms/Header/HeaderDesktop.tsx b/src/components/organisms/Header/HeaderDesktop.tsx index cc62f67c..54b3a300 100644 --- a/src/components/organisms/Header/HeaderDesktop.tsx +++ b/src/components/organisms/Header/HeaderDesktop.tsx @@ -15,13 +15,6 @@ const useStyles = makeStyles((theme: Theme) => ({ color: `${colors.white} !important`, fontWeight: fonts.weight.medium, }, - itemsContainer: { - display: 'flex', - }, - loginContainer: { - display: 'flex', - marginLeft: 'auto', - }, navLink: { alignItems: 'center', color: colors.white, @@ -62,7 +55,6 @@ const HeaderDesktop: FC = ({ - {/*
*/} = ({ )) } - {/*
*/} - {/*
*/} - {/*
*/}
diff --git a/src/components/organisms/Header/HeaderMobile.tsx b/src/components/organisms/Header/HeaderMobile.tsx index a233fe1b..dec61b3a 100644 --- a/src/components/organisms/Header/HeaderMobile.tsx +++ b/src/components/organisms/Header/HeaderMobile.tsx @@ -18,10 +18,6 @@ import { removeEmptySpaces } from '../../../utils' const drawerWidth = 240 const useStyles = makeStyles((theme: Theme) => createStyles({ - loginContainer: { - display: 'flex', - marginLeft: 'auto', - }, drawerHeader: { display: 'flex', alignItems: 'center', @@ -130,9 +126,7 @@ const HeaderMobile: FC = ({ } - {/*
*/} - {/*
*/}
)} From cdd0789c57bbd192f9cce0208fa0a4ef52a77f0c Mon Sep 17 00:00:00 2001 From: Juraj Piar Date: Sun, 1 Nov 2020 15:31:02 +0000 Subject: [PATCH 03/11] feat: adds action items to navbar --- src/components/organisms/Header/Header.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/organisms/Header/Header.tsx b/src/components/organisms/Header/Header.tsx index 6b04d25a..ee0bfba3 100644 --- a/src/components/organisms/Header/Header.tsx +++ b/src/components/organisms/Header/Header.tsx @@ -5,14 +5,14 @@ import HeaderDesktop from './HeaderDesktop' import HeaderMobile from './HeaderMobile' const Header: FC = (props) => ( - <> + - + ) export default Header From 9f419050512b4708b750390201d852099ace5a65 Mon Sep 17 00:00:00 2001 From: Juraj Piar Date: Sun, 1 Nov 2020 15:31:02 +0000 Subject: [PATCH 04/11] feat: adds action items to navbar --- src/components/organisms/Header/HeaderDesktop.tsx | 4 ++-- src/components/organisms/Header/HeaderMobile.tsx | 4 ++-- src/components/organisms/Header/HeaderProps.ts | 4 ++-- src/components/organisms/Header/HeaderTongue.tsx | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/components/organisms/Header/HeaderDesktop.tsx b/src/components/organisms/Header/HeaderDesktop.tsx index 54b3a300..589b4d80 100644 --- a/src/components/organisms/Header/HeaderDesktop.tsx +++ b/src/components/organisms/Header/HeaderDesktop.tsx @@ -88,8 +88,8 @@ const HeaderDesktop: FC = ({ > { !!itemsEnd?.length - && itemsEnd.map(({ icon, onClick }: ActionHeaderItemProps) => ( - + && itemsEnd.map(({ icon, ...rest }: ActionHeaderItemProps) => ( + {icon} )) diff --git a/src/components/organisms/Header/HeaderMobile.tsx b/src/components/organisms/Header/HeaderMobile.tsx index dec61b3a..69b37b2f 100644 --- a/src/components/organisms/Header/HeaderMobile.tsx +++ b/src/components/organisms/Header/HeaderMobile.tsx @@ -118,8 +118,8 @@ const HeaderMobile: FC = ({ > { !!itemsEnd?.length - && itemsEnd.map(({ icon, onClick }: ActionHeaderItemProps) => ( - + && itemsEnd.map(({ icon, ...rest }: ActionHeaderItemProps) => ( + {icon} )) diff --git a/src/components/organisms/Header/HeaderProps.ts b/src/components/organisms/Header/HeaderProps.ts index 64b76c74..68fa67d3 100644 --- a/src/components/organisms/Header/HeaderProps.ts +++ b/src/components/organisms/Header/HeaderProps.ts @@ -1,5 +1,5 @@ import { NavLinkProps } from 'react-router-dom' -import { DOMAttributes, ReactElement } from 'react' +import { HTMLAttributes, ReactElement } from 'react' export interface HeaderProps { hreflogo: string @@ -17,4 +17,4 @@ export type NavHeaderItemProps = { export type ActionHeaderItemProps = { icon: ReactElement - } & Pick, 'onClick'> + } & Partial> diff --git a/src/components/organisms/Header/HeaderTongue.tsx b/src/components/organisms/Header/HeaderTongue.tsx index 858324e7..dd31f669 100644 --- a/src/components/organisms/Header/HeaderTongue.tsx +++ b/src/components/organisms/Header/HeaderTongue.tsx @@ -49,7 +49,7 @@ const HeaderTongue: FC = ( const classes = useStyles() return ( - <> +
= ( src={headerTongueImg} alt="headerTongueImg" /> - + ) } From e10c8da7445d4bfde980d47c5940205bf77cf5dc Mon Sep 17 00:00:00 2001 From: Juraj Piar Date: Fri, 6 Nov 2020 20:33:57 +0000 Subject: [PATCH 05/11] feat: builds new version and caniuse-lite --- dist/assets/images/icons/index.d.ts | 11 + dist/assets/images/index.d.ts | 7 + dist/assets/images/logos/index.d.ts | 5 + dist/components/atoms/Button.d.ts | 9 + dist/components/atoms/Checkbox.d.ts | 5 + dist/components/atoms/LoginOption.d.ts | 13 + dist/components/atoms/Logo.d.ts | 6 + dist/components/atoms/LogoNavbar.d.ts | 8 + dist/components/atoms/NetworkIndicator.d.ts | 16 + dist/components/atoms/StyledNavTab.d.ts | 8 + dist/components/atoms/atoms.test.d.ts | 1 + dist/components/atoms/index.d.ts | 9 + dist/components/atoms/modal/Modal.d.ts | 5 + dist/components/atoms/modal/ModalBody.d.ts | 6 + dist/components/atoms/modal/ModalFooter.d.ts | 6 + dist/components/atoms/modal/ModalHeader.d.ts | 6 + dist/components/atoms/modal/ModalTitle.d.ts | 6 + dist/components/atoms/modal/index.d.ts | 6 + dist/components/atoms/modal/modal.test.d.ts | 1 + dist/components/hoc/WithSpinner.d.ts | 6 + dist/components/hoc/index.d.ts | 2 + dist/components/index.d.ts | 5 + dist/components/molecules/Accordion.d.ts | 8 + dist/components/molecules/AccountModal.d.ts | 15 + .../components/molecules/CopyTextTooltip.d.ts | 7 + dist/components/molecules/FAQSection.d.ts | 9 + .../molecules/FilterCheckboxCard.d.ts | 9 + dist/components/molecules/FooterColumn.d.ts | 13 + .../components/molecules/LabeledCheckbox.d.ts | 8 + dist/components/molecules/ModalDialogue.d.ts | 8 + .../molecules/RangeSliderWithInputs.d.ts | 16 + .../molecules/ShortenTextTooltip.d.ts | 8 + dist/components/molecules/StyledTabs.d.ts | 8 + dist/components/molecules/SwitchTabs.d.ts | 9 + .../molecules/TooltipIconButton.d.ts | 9 + dist/components/molecules/UnitsInput.d.ts | 12 + .../molecules/WrongNetworkModal.d.ts | 9 + dist/components/molecules/index.d.ts | 16 + dist/components/molecules/molecules.test.d.ts | 1 + dist/components/organisms/Account.d.ts | 19 + dist/components/organisms/Footer.d.ts | 9 + dist/components/organisms/Header/Header.d.ts | 4 + .../organisms/Header/HeaderDesktop.d.ts | 4 + .../organisms/Header/HeaderMobile.d.ts | 4 + .../organisms/Header/HeaderProps.d.ts | 16 + .../organisms/Header/HeaderTongue.d.ts | 8 + .../organisms/Header/header.test.d.ts | 1 + dist/components/organisms/Header/index.d.ts | 3 + dist/components/organisms/index.d.ts | 4 + dist/components/organisms/organisms.test.d.ts | 1 + .../components/templates/FAQPageTemplate.d.ts | 9 + dist/components/templates/PageTemplate.d.ts | 4 + dist/components/templates/index.d.ts | 3 + dist/components/templates/templates.test.d.ts | 1 + dist/doneThumbsUp~bbkTwQsx.svg | 19 + dist/footerTongue~bbJNSCWG.svg | 9 + dist/headerTongue~VLlRBGMc.svg | 16 + dist/index.css | 320 ++ dist/index.d.ts | 7 + dist/index.js | 3397 +++++++++++++++++ dist/index.js.map | 1 + dist/index.modern.js | 3331 ++++++++++++++++ dist/index.modern.js.map | 1 + dist/logoBlackAndBlue~bjZFbjOq.svg | 76 + dist/logoBlueIcon~qRLrrgXR.svg | 66 + dist/logoFullWhite~lLumzPXG.svg | 46 + dist/metaMask~bnTqJLxK.svg | 3 + dist/models/Enums.d.ts | 7 + dist/models/NetworkInfo.d.ts | 16 + dist/models/ProviderInfo.d.ts | 22 + dist/nameService~UWbtQqmT.svg | 1 + dist/nifty~RMIWdZeg.png | Bin 0 -> 5009 bytes dist/providers/Web3Provider.d.ts | 45 + dist/providers/index.d.ts | 2 + dist/rifCom~udwpaCym.png | Bin 0 -> 1642 bytes dist/rifDir~bottaDNJ.png | Bin 0 -> 3074 bytes dist/rifGat~balFpEzC.png | Bin 0 -> 1687 bytes dist/rifMar~IDqKMWpK.png | Bin 0 -> 1940 bytes dist/rifPay~bdtOAceT.png | Bin 0 -> 2457 bytes dist/rifSto~fMRetflo.png | Bin 0 -> 1321 bytes dist/rskLogo~bdMEZSPk.svg | 58 + dist/services/Web3Service.d.ts | 15 + dist/services/index.d.ts | 5 + dist/storage~fCGkZtHN.svg | 1 + dist/theme/index.d.ts | 2 + dist/theme/theme.d.ts | 36 + dist/tickWide~bmvsBAER.svg | 3 + dist/utils.d.ts | 6 + package-lock.json | 12 +- package.json | 7 +- 90 files changed, 7923 insertions(+), 9 deletions(-) create mode 100644 dist/assets/images/icons/index.d.ts create mode 100644 dist/assets/images/index.d.ts create mode 100644 dist/assets/images/logos/index.d.ts create mode 100644 dist/components/atoms/Button.d.ts create mode 100644 dist/components/atoms/Checkbox.d.ts create mode 100644 dist/components/atoms/LoginOption.d.ts create mode 100644 dist/components/atoms/Logo.d.ts create mode 100644 dist/components/atoms/LogoNavbar.d.ts create mode 100644 dist/components/atoms/NetworkIndicator.d.ts create mode 100644 dist/components/atoms/StyledNavTab.d.ts create mode 100644 dist/components/atoms/atoms.test.d.ts create mode 100644 dist/components/atoms/index.d.ts create mode 100644 dist/components/atoms/modal/Modal.d.ts create mode 100644 dist/components/atoms/modal/ModalBody.d.ts create mode 100644 dist/components/atoms/modal/ModalFooter.d.ts create mode 100644 dist/components/atoms/modal/ModalHeader.d.ts create mode 100644 dist/components/atoms/modal/ModalTitle.d.ts create mode 100644 dist/components/atoms/modal/index.d.ts create mode 100644 dist/components/atoms/modal/modal.test.d.ts create mode 100644 dist/components/hoc/WithSpinner.d.ts create mode 100644 dist/components/hoc/index.d.ts create mode 100644 dist/components/index.d.ts create mode 100644 dist/components/molecules/Accordion.d.ts create mode 100644 dist/components/molecules/AccountModal.d.ts create mode 100644 dist/components/molecules/CopyTextTooltip.d.ts create mode 100644 dist/components/molecules/FAQSection.d.ts create mode 100644 dist/components/molecules/FilterCheckboxCard.d.ts create mode 100644 dist/components/molecules/FooterColumn.d.ts create mode 100644 dist/components/molecules/LabeledCheckbox.d.ts create mode 100644 dist/components/molecules/ModalDialogue.d.ts create mode 100644 dist/components/molecules/RangeSliderWithInputs.d.ts create mode 100644 dist/components/molecules/ShortenTextTooltip.d.ts create mode 100644 dist/components/molecules/StyledTabs.d.ts create mode 100644 dist/components/molecules/SwitchTabs.d.ts create mode 100644 dist/components/molecules/TooltipIconButton.d.ts create mode 100644 dist/components/molecules/UnitsInput.d.ts create mode 100644 dist/components/molecules/WrongNetworkModal.d.ts create mode 100644 dist/components/molecules/index.d.ts create mode 100644 dist/components/molecules/molecules.test.d.ts create mode 100644 dist/components/organisms/Account.d.ts create mode 100644 dist/components/organisms/Footer.d.ts create mode 100644 dist/components/organisms/Header/Header.d.ts create mode 100644 dist/components/organisms/Header/HeaderDesktop.d.ts create mode 100644 dist/components/organisms/Header/HeaderMobile.d.ts create mode 100644 dist/components/organisms/Header/HeaderProps.d.ts create mode 100644 dist/components/organisms/Header/HeaderTongue.d.ts create mode 100644 dist/components/organisms/Header/header.test.d.ts create mode 100644 dist/components/organisms/Header/index.d.ts create mode 100644 dist/components/organisms/index.d.ts create mode 100644 dist/components/organisms/organisms.test.d.ts create mode 100644 dist/components/templates/FAQPageTemplate.d.ts create mode 100644 dist/components/templates/PageTemplate.d.ts create mode 100644 dist/components/templates/index.d.ts create mode 100644 dist/components/templates/templates.test.d.ts create mode 100644 dist/doneThumbsUp~bbkTwQsx.svg create mode 100644 dist/footerTongue~bbJNSCWG.svg create mode 100644 dist/headerTongue~VLlRBGMc.svg create mode 100644 dist/index.css create mode 100644 dist/index.d.ts create mode 100644 dist/index.js create mode 100644 dist/index.js.map create mode 100644 dist/index.modern.js create mode 100644 dist/index.modern.js.map create mode 100644 dist/logoBlackAndBlue~bjZFbjOq.svg create mode 100644 dist/logoBlueIcon~qRLrrgXR.svg create mode 100644 dist/logoFullWhite~lLumzPXG.svg create mode 100644 dist/metaMask~bnTqJLxK.svg create mode 100644 dist/models/Enums.d.ts create mode 100644 dist/models/NetworkInfo.d.ts create mode 100644 dist/models/ProviderInfo.d.ts create mode 100644 dist/nameService~UWbtQqmT.svg create mode 100644 dist/nifty~RMIWdZeg.png create mode 100644 dist/providers/Web3Provider.d.ts create mode 100644 dist/providers/index.d.ts create mode 100644 dist/rifCom~udwpaCym.png create mode 100644 dist/rifDir~bottaDNJ.png create mode 100644 dist/rifGat~balFpEzC.png create mode 100644 dist/rifMar~IDqKMWpK.png create mode 100644 dist/rifPay~bdtOAceT.png create mode 100644 dist/rifSto~fMRetflo.png create mode 100644 dist/rskLogo~bdMEZSPk.svg create mode 100644 dist/services/Web3Service.d.ts create mode 100644 dist/services/index.d.ts create mode 100644 dist/storage~fCGkZtHN.svg create mode 100644 dist/theme/index.d.ts create mode 100644 dist/theme/theme.d.ts create mode 100644 dist/tickWide~bmvsBAER.svg create mode 100644 dist/utils.d.ts diff --git a/dist/assets/images/icons/index.d.ts b/dist/assets/images/icons/index.d.ts new file mode 100644 index 00000000..abc38a8e --- /dev/null +++ b/dist/assets/images/icons/index.d.ts @@ -0,0 +1,11 @@ +import metaMaskIconImg from './metaMask.svg'; +import nameServiceImg from './nameService.svg'; +import niftyIconImg from './nifty.png'; +import rifComImg from './rifCom.png'; +import rifDirImg from './rifDir.png'; +import rifGatImg from './rifGat.png'; +import rifMarImg from './rifMar.png'; +import rifPayImg from './rifPay.png'; +import rifStoImg from './rifSto.png'; +import storageImg from './storage.svg'; +export { metaMaskIconImg, nameServiceImg, niftyIconImg, rifComImg, rifDirImg, rifGatImg, rifMarImg, rifPayImg, rifStoImg, storageImg, }; diff --git a/dist/assets/images/index.d.ts b/dist/assets/images/index.d.ts new file mode 100644 index 00000000..5fb09dd8 --- /dev/null +++ b/dist/assets/images/index.d.ts @@ -0,0 +1,7 @@ +import doneThumbsUpImg from './doneThumbsUp.svg'; +import footerTongueImg from './footerTongue.svg'; +import headerTongueImg from './headerTongue.svg'; +import tickWideImg from './tickWide.svg'; +export { doneThumbsUpImg, footerTongueImg, headerTongueImg, tickWideImg, }; +export * from './icons'; +export * from './logos'; diff --git a/dist/assets/images/logos/index.d.ts b/dist/assets/images/logos/index.d.ts new file mode 100644 index 00000000..8bea483b --- /dev/null +++ b/dist/assets/images/logos/index.d.ts @@ -0,0 +1,5 @@ +import logoBlackAndBlue from './logoBlackAndBlue.svg'; +import logoBlueIcon from './logoBlueIcon.svg'; +import logoFullWhite from './logoFullWhite.svg'; +import rskLogo from './rskLogo.svg'; +export { logoBlackAndBlue, logoBlueIcon, logoFullWhite, rskLogo, }; diff --git a/dist/components/atoms/Button.d.ts b/dist/components/atoms/Button.d.ts new file mode 100644 index 00000000..a040d3b1 --- /dev/null +++ b/dist/components/atoms/Button.d.ts @@ -0,0 +1,9 @@ +import { FC } from 'react'; +import { ButtonProps as MUIButtonProps } from '@material-ui/core'; +export interface ButtonProps extends MUIButtonProps { + block?: boolean; + shadow?: boolean; + rounded?: boolean; +} +declare const Button: FC; +export default Button; diff --git a/dist/components/atoms/Checkbox.d.ts b/dist/components/atoms/Checkbox.d.ts new file mode 100644 index 00000000..9899a0d4 --- /dev/null +++ b/dist/components/atoms/Checkbox.d.ts @@ -0,0 +1,5 @@ +import { FC } from 'react'; +import { CheckboxProps as MUICheckboxProps } from '@material-ui/core'; +export declare type CheckboxProps = MUICheckboxProps; +declare const Checkbox: FC; +export default Checkbox; diff --git a/dist/components/atoms/LoginOption.d.ts b/dist/components/atoms/LoginOption.d.ts new file mode 100644 index 00000000..00753458 --- /dev/null +++ b/dist/components/atoms/LoginOption.d.ts @@ -0,0 +1,13 @@ +import { FC } from 'react'; +import ProviderInfo from '../../models/ProviderInfo'; +export interface LoginOptionProps { + className?: string; + onClick?: () => void; + providerInfo?: ProviderInfo; +} +/** + * If not providerInfo is received, we assume there's no provider available and so suggest to install Nifty wallet + * Same happens when no onClick is provided. We open the Nifty page on a new tab + */ +declare const LoginOption: FC; +export default LoginOption; diff --git a/dist/components/atoms/Logo.d.ts b/dist/components/atoms/Logo.d.ts new file mode 100644 index 00000000..a994f1f6 --- /dev/null +++ b/dist/components/atoms/Logo.d.ts @@ -0,0 +1,6 @@ +import React, { FC } from 'react'; +interface LogoProps extends React.Props { + alt?: string; +} +declare const Logo: FC; +export default Logo; diff --git a/dist/components/atoms/LogoNavbar.d.ts b/dist/components/atoms/LogoNavbar.d.ts new file mode 100644 index 00000000..ffa56da3 --- /dev/null +++ b/dist/components/atoms/LogoNavbar.d.ts @@ -0,0 +1,8 @@ +import React, { FC } from 'react'; +interface LogoProps extends React.Props { + alt?: string; + height?: string | number; + style?: React.CSSProperties; +} +declare const LogoNavbar: FC; +export default LogoNavbar; diff --git a/dist/components/atoms/NetworkIndicator.d.ts b/dist/components/atoms/NetworkIndicator.d.ts new file mode 100644 index 00000000..ae0f7876 --- /dev/null +++ b/dist/components/atoms/NetworkIndicator.d.ts @@ -0,0 +1,16 @@ +import { FC } from 'react'; +export interface NetworkIndicatorProps { + iconClassName?: string; + currentNetworkId?: number; + requiredNetworkId?: number; + onCorrectNetworkMessage?: string; + onNetworkMismatchMessage?: string; + noNetworkMessage?: string; +} +export declare enum NetworkStatus { + NO_NETWORK = 1, + NETWORK_MISSMATCH = 2, + CORRECT_NETWORK = 3 +} +declare const NetworkIndicator: FC; +export default NetworkIndicator; diff --git a/dist/components/atoms/StyledNavTab.d.ts b/dist/components/atoms/StyledNavTab.d.ts new file mode 100644 index 00000000..944ced4e --- /dev/null +++ b/dist/components/atoms/StyledNavTab.d.ts @@ -0,0 +1,8 @@ +import { FC } from 'react'; +export interface StyledNavTabProps { + label: string; + to: string; + value: string; +} +declare const StyledNavTab: FC; +export default StyledNavTab; diff --git a/dist/components/atoms/atoms.test.d.ts b/dist/components/atoms/atoms.test.d.ts new file mode 100644 index 00000000..509db186 --- /dev/null +++ b/dist/components/atoms/atoms.test.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/dist/components/atoms/index.d.ts b/dist/components/atoms/index.d.ts new file mode 100644 index 00000000..7097584e --- /dev/null +++ b/dist/components/atoms/index.d.ts @@ -0,0 +1,9 @@ +import Button from './Button'; +import Checkbox from './Checkbox'; +import LoginOption from './LoginOption'; +import Logo from './Logo'; +import LogoNavbar from './LogoNavbar'; +import StyledNavTab from './StyledNavTab'; +import NetworkIndicator from './NetworkIndicator'; +export * from './modal'; +export { Button, Checkbox, LoginOption, Logo, LogoNavbar, StyledNavTab, NetworkIndicator, }; diff --git a/dist/components/atoms/modal/Modal.d.ts b/dist/components/atoms/modal/Modal.d.ts new file mode 100644 index 00000000..ae393ee0 --- /dev/null +++ b/dist/components/atoms/modal/Modal.d.ts @@ -0,0 +1,5 @@ +import { FC } from 'react'; +import { ModalProps as MUIModalProps } from '@material-ui/core'; +export declare type ModalProps = MUIModalProps; +declare const Modal: FC; +export default Modal; diff --git a/dist/components/atoms/modal/ModalBody.d.ts b/dist/components/atoms/modal/ModalBody.d.ts new file mode 100644 index 00000000..10c17e18 --- /dev/null +++ b/dist/components/atoms/modal/ModalBody.d.ts @@ -0,0 +1,6 @@ +import { FC } from 'react'; +export interface ModalBodyProps { + className?: string; +} +declare const ModalBody: FC; +export default ModalBody; diff --git a/dist/components/atoms/modal/ModalFooter.d.ts b/dist/components/atoms/modal/ModalFooter.d.ts new file mode 100644 index 00000000..2be73b49 --- /dev/null +++ b/dist/components/atoms/modal/ModalFooter.d.ts @@ -0,0 +1,6 @@ +import { FC } from 'react'; +export interface ModalFooterProps { + className?: string; +} +declare const ModalFooter: FC; +export default ModalFooter; diff --git a/dist/components/atoms/modal/ModalHeader.d.ts b/dist/components/atoms/modal/ModalHeader.d.ts new file mode 100644 index 00000000..fd144bd1 --- /dev/null +++ b/dist/components/atoms/modal/ModalHeader.d.ts @@ -0,0 +1,6 @@ +import { FC } from 'react'; +export interface ModalHeaderProps { + className?: string; +} +declare const ModalHeader: FC; +export default ModalHeader; diff --git a/dist/components/atoms/modal/ModalTitle.d.ts b/dist/components/atoms/modal/ModalTitle.d.ts new file mode 100644 index 00000000..f48fa1c5 --- /dev/null +++ b/dist/components/atoms/modal/ModalTitle.d.ts @@ -0,0 +1,6 @@ +import { FC } from 'react'; +export interface ModalTitleProps { + className?: string; +} +declare const ModalTitle: FC; +export default ModalTitle; diff --git a/dist/components/atoms/modal/index.d.ts b/dist/components/atoms/modal/index.d.ts new file mode 100644 index 00000000..51b85f9a --- /dev/null +++ b/dist/components/atoms/modal/index.d.ts @@ -0,0 +1,6 @@ +import Modal from './Modal'; +import ModalHeader from './ModalHeader'; +import ModalTitle from './ModalTitle'; +import ModalFooter from './ModalFooter'; +import ModalBody from './ModalBody'; +export { Modal, ModalHeader, ModalTitle, ModalFooter, ModalBody, }; diff --git a/dist/components/atoms/modal/modal.test.d.ts b/dist/components/atoms/modal/modal.test.d.ts new file mode 100644 index 00000000..509db186 --- /dev/null +++ b/dist/components/atoms/modal/modal.test.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/dist/components/hoc/WithSpinner.d.ts b/dist/components/hoc/WithSpinner.d.ts new file mode 100644 index 00000000..e2567e8e --- /dev/null +++ b/dist/components/hoc/WithSpinner.d.ts @@ -0,0 +1,6 @@ +import React from 'react'; +declare const WithSpinner: (WrappedComponent: React.ElementType) => ({ isLoading, ...props }: { + [x: string]: any; + isLoading: any; +}) => JSX.Element; +export default WithSpinner; diff --git a/dist/components/hoc/index.d.ts b/dist/components/hoc/index.d.ts new file mode 100644 index 00000000..f5959194 --- /dev/null +++ b/dist/components/hoc/index.d.ts @@ -0,0 +1,2 @@ +import WithSpinner from './WithSpinner'; +export { WithSpinner }; diff --git a/dist/components/index.d.ts b/dist/components/index.d.ts new file mode 100644 index 00000000..d361299b --- /dev/null +++ b/dist/components/index.d.ts @@ -0,0 +1,5 @@ +export * from './atoms/index'; +export * from './hoc/index'; +export * from './molecules/index'; +export * from './organisms/index'; +export * from './templates/index'; diff --git a/dist/components/molecules/Accordion.d.ts b/dist/components/molecules/Accordion.d.ts new file mode 100644 index 00000000..675f38de --- /dev/null +++ b/dist/components/molecules/Accordion.d.ts @@ -0,0 +1,8 @@ +import { FC } from 'react'; +import { AccordionProps as MUIAccordionProps } from '@material-ui/core'; +interface AccordionProps extends MUIAccordionProps { + id: string; + title?: string; +} +declare const Accordion: FC; +export default Accordion; diff --git a/dist/components/molecules/AccountModal.d.ts b/dist/components/molecules/AccountModal.d.ts new file mode 100644 index 00000000..a1d2e950 --- /dev/null +++ b/dist/components/molecules/AccountModal.d.ts @@ -0,0 +1,15 @@ +import { FC } from 'react'; +import Web3 from 'web3'; +import ProviderInfo, { EProvider } from '../../models/ProviderInfo'; +import NetworkInfo from '../../models/NetworkInfo'; +export interface AccountModalProps { + web3?: Web3; + networkInfo?: NetworkInfo; + setProvider?: (provider: EProvider, onProviderSet?: (account?: string) => void) => Promise; + availableProviders?: ProviderInfo[]; + onClose?: () => void; + onProviderSet?: (account: any) => void; + open: boolean; +} +declare const AccountModal: FC; +export default AccountModal; diff --git a/dist/components/molecules/CopyTextTooltip.d.ts b/dist/components/molecules/CopyTextTooltip.d.ts new file mode 100644 index 00000000..35bf7aa0 --- /dev/null +++ b/dist/components/molecules/CopyTextTooltip.d.ts @@ -0,0 +1,7 @@ +import React, { FC } from 'react'; +export interface CopyTextTooltipProps { + displayElement: React.ReactElement; + fullText: string; +} +declare const CopyTextTooltip: FC; +export default CopyTextTooltip; diff --git a/dist/components/molecules/FAQSection.d.ts b/dist/components/molecules/FAQSection.d.ts new file mode 100644 index 00000000..6975e2c2 --- /dev/null +++ b/dist/components/molecules/FAQSection.d.ts @@ -0,0 +1,9 @@ +import { FC } from 'react'; +export interface FAQSectionProps { + answer: string; + initiallyExpanded?: boolean; + question: string; + className?: string; +} +declare const FAQSection: FC; +export default FAQSection; diff --git a/dist/components/molecules/FilterCheckboxCard.d.ts b/dist/components/molecules/FilterCheckboxCard.d.ts new file mode 100644 index 00000000..7087f201 --- /dev/null +++ b/dist/components/molecules/FilterCheckboxCard.d.ts @@ -0,0 +1,9 @@ +import React, { FC } from 'react'; +import { LabeledCheckboxProps } from './LabeledCheckbox'; +export interface FilterCheckboxCardProps { + className?: string; + items: LabeledCheckboxProps[]; + onClick?: (event: React.MouseEvent) => void; +} +declare const FilterCheckboxCard: FC; +export default FilterCheckboxCard; diff --git a/dist/components/molecules/FooterColumn.d.ts b/dist/components/molecules/FooterColumn.d.ts new file mode 100644 index 00000000..20e39295 --- /dev/null +++ b/dist/components/molecules/FooterColumn.d.ts @@ -0,0 +1,13 @@ +import { FC } from 'react'; +import { NavLinkProps } from 'react-router-dom'; +export interface FooterColumnProps { + className?: string; + links: FooterLinkProps[]; + title: string; +} +export interface FooterLinkProps extends NavLinkProps { + isExternal?: boolean; + title: string; +} +declare const FooterColumn: FC; +export default FooterColumn; diff --git a/dist/components/molecules/LabeledCheckbox.d.ts b/dist/components/molecules/LabeledCheckbox.d.ts new file mode 100644 index 00000000..cb5b7bd3 --- /dev/null +++ b/dist/components/molecules/LabeledCheckbox.d.ts @@ -0,0 +1,8 @@ +import { FC } from 'react'; +import { CheckboxProps } from '../atoms/Checkbox'; +export interface LabeledCheckboxProps extends CheckboxProps { + labelText: string; + labelClassName?: string; +} +declare const LabeledCheckbox: FC; +export default LabeledCheckbox; diff --git a/dist/components/molecules/ModalDialogue.d.ts b/dist/components/molecules/ModalDialogue.d.ts new file mode 100644 index 00000000..bc5d771c --- /dev/null +++ b/dist/components/molecules/ModalDialogue.d.ts @@ -0,0 +1,8 @@ +import React, { FC } from 'react'; +import { ModalProps } from '../atoms/modal/Modal'; +export interface ModalDialogueProps extends ModalProps { + title: string; + footer?: React.ReactElement; +} +declare const ModalDialogue: FC; +export default ModalDialogue; diff --git a/dist/components/molecules/RangeSliderWithInputs.d.ts b/dist/components/molecules/RangeSliderWithInputs.d.ts new file mode 100644 index 00000000..bdbf253e --- /dev/null +++ b/dist/components/molecules/RangeSliderWithInputs.d.ts @@ -0,0 +1,16 @@ +import { SliderProps } from '@material-ui/core/Slider'; +import { FC } from 'react'; +export interface RangeSliderWithInputsProps extends SliderProps { + values: { + start: number; + end: number; + }; + unit?: string; + handleChange: ({ min, max }: { + min: any; + max: any; + }) => void; + className?: string; +} +declare const RangeSliderWithInputs: FC; +export default RangeSliderWithInputs; diff --git a/dist/components/molecules/ShortenTextTooltip.d.ts b/dist/components/molecules/ShortenTextTooltip.d.ts new file mode 100644 index 00000000..b1e88374 --- /dev/null +++ b/dist/components/molecules/ShortenTextTooltip.d.ts @@ -0,0 +1,8 @@ +import { FC } from 'react'; +export interface ShortenTextTooltipProps { + value: string; + maxLength?: number; + charsShownCount?: number; +} +declare const ShortenTextTooltip: FC; +export default ShortenTextTooltip; diff --git a/dist/components/molecules/StyledTabs.d.ts b/dist/components/molecules/StyledTabs.d.ts new file mode 100644 index 00000000..877954a2 --- /dev/null +++ b/dist/components/molecules/StyledTabs.d.ts @@ -0,0 +1,8 @@ +import React, { FC } from 'react'; +import { TabsProps } from '@material-ui/core/Tabs'; +export interface StyledTabsProps { + value: string; + onChange: (event: React.ChangeEvent<{}>, newValue: string) => void; +} +declare const StyledTabs: FC; +export default StyledTabs; diff --git a/dist/components/molecules/SwitchTabs.d.ts b/dist/components/molecules/SwitchTabs.d.ts new file mode 100644 index 00000000..6fe6c49c --- /dev/null +++ b/dist/components/molecules/SwitchTabs.d.ts @@ -0,0 +1,9 @@ +import React, { FC } from 'react'; +export interface SwitchTabsProps { + label1: string; + label2: string; + value?: 0 | 1; + onChange: (event: React.ChangeEvent<{}>, value: number) => void; +} +declare const SwitchTabs: FC; +export default SwitchTabs; diff --git a/dist/components/molecules/TooltipIconButton.d.ts b/dist/components/molecules/TooltipIconButton.d.ts new file mode 100644 index 00000000..377db3d2 --- /dev/null +++ b/dist/components/molecules/TooltipIconButton.d.ts @@ -0,0 +1,9 @@ +import React, { FC } from 'react'; +import { IconButtonProps } from '@material-ui/core/IconButton'; +export interface TooltipIconButtonProps { + tooltipTitle: string; + iconButtonProps: IconButtonProps; + icon: React.ReactNode; +} +declare const TooltipIconButton: FC; +export default TooltipIconButton; diff --git a/dist/components/molecules/UnitsInput.d.ts b/dist/components/molecules/UnitsInput.d.ts new file mode 100644 index 00000000..a307fee4 --- /dev/null +++ b/dist/components/molecules/UnitsInput.d.ts @@ -0,0 +1,12 @@ +import React, { FC } from 'react'; +import { InputProps } from '@material-ui/core/Input'; +export interface UnitsInputProps extends InputProps { + handleOnChange: (event: React.ChangeEvent) => void; + handleOnBlur?: () => void; + maxValue?: number; + minValue?: number; + step?: number; + units?: string; +} +declare const UnitsInput: FC; +export default UnitsInput; diff --git a/dist/components/molecules/WrongNetworkModal.d.ts b/dist/components/molecules/WrongNetworkModal.d.ts new file mode 100644 index 00000000..2343b11a --- /dev/null +++ b/dist/components/molecules/WrongNetworkModal.d.ts @@ -0,0 +1,9 @@ +import { FC } from 'react'; +export interface WrongNetworkModalProps { + open: boolean; + currentNetworkName?: string; + requiredNetworkName: string; + onClose: () => void; +} +declare const WrongNetworkModal: FC; +export default WrongNetworkModal; diff --git a/dist/components/molecules/index.d.ts b/dist/components/molecules/index.d.ts new file mode 100644 index 00000000..11ec64de --- /dev/null +++ b/dist/components/molecules/index.d.ts @@ -0,0 +1,16 @@ +import Accordion from './Accordion'; +import AccountModal from './AccountModal'; +import CopyTextTooltip from './CopyTextTooltip'; +import FAQSection from './FAQSection'; +import FilterCheckboxCard from './FilterCheckboxCard'; +import FooterColumn from './FooterColumn'; +import LabeledCheckbox from './LabeledCheckbox'; +import ModalDialogue from './ModalDialogue'; +import RangeSliderWithInputs from './RangeSliderWithInputs'; +import ShortenTextTooltip from './ShortenTextTooltip'; +import StyledTabs from './StyledTabs'; +import SwitchTabs from './SwitchTabs'; +import TooltipIconButton from './TooltipIconButton'; +import UnitsInput from './UnitsInput'; +import WrongNetworkModal from './WrongNetworkModal'; +export { Accordion, AccountModal, CopyTextTooltip, FAQSection, FilterCheckboxCard, FooterColumn, LabeledCheckbox, ModalDialogue, RangeSliderWithInputs, ShortenTextTooltip, StyledTabs, SwitchTabs, TooltipIconButton, UnitsInput, WrongNetworkModal, }; diff --git a/dist/components/molecules/molecules.test.d.ts b/dist/components/molecules/molecules.test.d.ts new file mode 100644 index 00000000..509db186 --- /dev/null +++ b/dist/components/molecules/molecules.test.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/dist/components/organisms/Account.d.ts b/dist/components/organisms/Account.d.ts new file mode 100644 index 00000000..cffc025c --- /dev/null +++ b/dist/components/organisms/Account.d.ts @@ -0,0 +1,19 @@ +import { FC } from 'react'; +import Web3 from 'web3'; +import ProviderInfo, { EProvider } from '../../models/ProviderInfo'; +import NetworkInfo from '../../models/NetworkInfo'; +export interface AccountProps { + requiredNetworkName: string; + setProvider?: (provider: EProvider) => Promise; + web3?: Web3; + networkInfo?: NetworkInfo; + account?: string; + availableProviders?: ProviderInfo[]; + requiredNetworkId?: number; + onCorrectNetworkMessage?: string; + onNetworkMismatchMessage?: string; + noNetworkMessage?: string; + modalInitiallyOpened?: boolean; +} +declare const Account: FC; +export default Account; diff --git a/dist/components/organisms/Footer.d.ts b/dist/components/organisms/Footer.d.ts new file mode 100644 index 00000000..c0f459fc --- /dev/null +++ b/dist/components/organisms/Footer.d.ts @@ -0,0 +1,9 @@ +import { FC, HTMLAttributes } from 'react'; +import { FooterColumnProps } from '../molecules/FooterColumn'; +export interface FooterProps extends HTMLAttributes { + className?: string; + copyrightText: string; + linksColumns: FooterColumnProps[]; +} +declare const Footer: FC; +export default Footer; diff --git a/dist/components/organisms/Header/Header.d.ts b/dist/components/organisms/Header/Header.d.ts new file mode 100644 index 00000000..58f14e8f --- /dev/null +++ b/dist/components/organisms/Header/Header.d.ts @@ -0,0 +1,4 @@ +import { FC } from 'react'; +import { HeaderProps } from './HeaderProps'; +declare const Header: FC; +export default Header; diff --git a/dist/components/organisms/Header/HeaderDesktop.d.ts b/dist/components/organisms/Header/HeaderDesktop.d.ts new file mode 100644 index 00000000..64a12f43 --- /dev/null +++ b/dist/components/organisms/Header/HeaderDesktop.d.ts @@ -0,0 +1,4 @@ +import { FC } from 'react'; +import { HeaderProps } from './HeaderProps'; +declare const HeaderDesktop: FC; +export default HeaderDesktop; diff --git a/dist/components/organisms/Header/HeaderMobile.d.ts b/dist/components/organisms/Header/HeaderMobile.d.ts new file mode 100644 index 00000000..54b0f726 --- /dev/null +++ b/dist/components/organisms/Header/HeaderMobile.d.ts @@ -0,0 +1,4 @@ +import { FC } from 'react'; +import { HeaderProps } from './HeaderProps'; +declare const HeaderMobile: FC; +export default HeaderMobile; diff --git a/dist/components/organisms/Header/HeaderProps.d.ts b/dist/components/organisms/Header/HeaderProps.d.ts new file mode 100644 index 00000000..8fc74f51 --- /dev/null +++ b/dist/components/organisms/Header/HeaderProps.d.ts @@ -0,0 +1,16 @@ +import { NavLinkProps } from 'react-router-dom'; +import { HTMLAttributes, ReactElement } from 'react'; +export interface HeaderProps { + hreflogo: string; + itemsStart: NavItemProps[]; + itemsEnd?: ActionHeaderItemProps[]; + login: React.ElementType; +} +export declare type NavItemProps = NavLinkProps & NavHeaderItemProps; +export declare type NavHeaderItemProps = { + icon?: ReactElement; + title: string; +}; +export declare type ActionHeaderItemProps = { + icon: ReactElement; +} & Partial>; diff --git a/dist/components/organisms/Header/HeaderTongue.d.ts b/dist/components/organisms/Header/HeaderTongue.d.ts new file mode 100644 index 00000000..ce4dd1c5 --- /dev/null +++ b/dist/components/organisms/Header/HeaderTongue.d.ts @@ -0,0 +1,8 @@ +import { FC } from 'react'; +export interface HeaderTongueProps { + description: string; + titleLine1: string; + titleLine2: string; +} +declare const HeaderTongue: FC; +export default HeaderTongue; diff --git a/dist/components/organisms/Header/header.test.d.ts b/dist/components/organisms/Header/header.test.d.ts new file mode 100644 index 00000000..509db186 --- /dev/null +++ b/dist/components/organisms/Header/header.test.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/dist/components/organisms/Header/index.d.ts b/dist/components/organisms/Header/index.d.ts new file mode 100644 index 00000000..40fa7051 --- /dev/null +++ b/dist/components/organisms/Header/index.d.ts @@ -0,0 +1,3 @@ +import Header from './Header'; +import HeaderTongue from './HeaderTongue'; +export { Header, HeaderTongue }; diff --git a/dist/components/organisms/index.d.ts b/dist/components/organisms/index.d.ts new file mode 100644 index 00000000..8131e548 --- /dev/null +++ b/dist/components/organisms/index.d.ts @@ -0,0 +1,4 @@ +import Footer from './Footer'; +import Account from './Account'; +export * from './Header/index'; +export { Account, Footer }; diff --git a/dist/components/organisms/organisms.test.d.ts b/dist/components/organisms/organisms.test.d.ts new file mode 100644 index 00000000..509db186 --- /dev/null +++ b/dist/components/organisms/organisms.test.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/dist/components/templates/FAQPageTemplate.d.ts b/dist/components/templates/FAQPageTemplate.d.ts new file mode 100644 index 00000000..fd5ebf3a --- /dev/null +++ b/dist/components/templates/FAQPageTemplate.d.ts @@ -0,0 +1,9 @@ +import { FC } from 'react'; +import { FAQSectionProps } from '../molecules/FAQSection'; +export interface FAQPageTemplateProps { + className?: string; + mainTitle: string; + questionsAndAnswers: FAQSectionProps[]; +} +declare const FAQPageTemplate: FC; +export default FAQPageTemplate; diff --git a/dist/components/templates/PageTemplate.d.ts b/dist/components/templates/PageTemplate.d.ts new file mode 100644 index 00000000..705e0639 --- /dev/null +++ b/dist/components/templates/PageTemplate.d.ts @@ -0,0 +1,4 @@ +import { FC, HTMLAttributes } from 'react'; +export declare type PageTemplateProps = HTMLAttributes; +declare const PageTemplate: FC; +export default PageTemplate; diff --git a/dist/components/templates/index.d.ts b/dist/components/templates/index.d.ts new file mode 100644 index 00000000..4b6ed98c --- /dev/null +++ b/dist/components/templates/index.d.ts @@ -0,0 +1,3 @@ +import FAQPageTemplate from './FAQPageTemplate'; +import PageTemplate from './PageTemplate'; +export { FAQPageTemplate, PageTemplate }; diff --git a/dist/components/templates/templates.test.d.ts b/dist/components/templates/templates.test.d.ts new file mode 100644 index 00000000..509db186 --- /dev/null +++ b/dist/components/templates/templates.test.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/dist/doneThumbsUp~bbkTwQsx.svg b/dist/doneThumbsUp~bbkTwQsx.svg new file mode 100644 index 00000000..cb14991d --- /dev/null +++ b/dist/doneThumbsUp~bbkTwQsx.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/dist/footerTongue~bbJNSCWG.svg b/dist/footerTongue~bbJNSCWG.svg new file mode 100644 index 00000000..acc3fcdb --- /dev/null +++ b/dist/footerTongue~bbJNSCWG.svg @@ -0,0 +1,9 @@ + + + + + + diff --git a/dist/headerTongue~VLlRBGMc.svg b/dist/headerTongue~VLlRBGMc.svg new file mode 100644 index 00000000..8f76810c --- /dev/null +++ b/dist/headerTongue~VLlRBGMc.svg @@ -0,0 +1,16 @@ + + + + + + + + + + diff --git a/dist/index.css b/dist/index.css new file mode 100644 index 00000000..294876af --- /dev/null +++ b/dist/index.css @@ -0,0 +1,320 @@ +/* cyrillic */ +@font-face { + font-family: 'Rubik'; + font-style: italic; + font-weight: 300; + src: local('Rubik Light Italic'), local('Rubik-LightItalic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nEldWYwWb-6aJ8x8utUQ.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* hebrew */ +@font-face { + font-family: 'Rubik'; + font-style: italic; + font-weight: 300; + src: local('Rubik Light Italic'), local('Rubik-LightItalic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nEldWYwWD-6aJ8x8utUQ.woff2) format('woff2'); + unicode-range: U+0590-05FF, U+20AA, U+25CC, U+FB1D-FB4F; +} +/* latin-ext */ +@font-face { + font-family: 'Rubik'; + font-style: italic; + font-weight: 300; + src: local('Rubik Light Italic'), local('Rubik-LightItalic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nEldWYwWz-6aJ8x8utUQ.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Rubik'; + font-style: italic; + font-weight: 300; + src: local('Rubik Light Italic'), local('Rubik-LightItalic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nEldWYwWL-6aJ8x8s.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic */ +@font-face { + font-family: 'Rubik'; + font-style: italic; + font-weight: 400; + src: local('Rubik Italic'), local('Rubik-Italic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWEBXyIfDnIV7nEnXq61E_c5IhGzg.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* hebrew */ +@font-face { + font-family: 'Rubik'; + font-style: italic; + font-weight: 400; + src: local('Rubik Italic'), local('Rubik-Italic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWEBXyIfDnIV7nEnXy61E_c5IhGzg.woff2) format('woff2'); + unicode-range: U+0590-05FF, U+20AA, U+25CC, U+FB1D-FB4F; +} +/* latin-ext */ +@font-face { + font-family: 'Rubik'; + font-style: italic; + font-weight: 400; + src: local('Rubik Italic'), local('Rubik-Italic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWEBXyIfDnIV7nEnXC61E_c5IhGzg.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Rubik'; + font-style: italic; + font-weight: 400; + src: local('Rubik Italic'), local('Rubik-Italic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWEBXyIfDnIV7nEnX661E_c5Ig.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic */ +@font-face { + font-family: 'Rubik'; + font-style: italic; + font-weight: 500; + src: local('Rubik Medium Italic'), local('Rubik-MediumItalic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nElY2ZwWb-6aJ8x8utUQ.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* hebrew */ +@font-face { + font-family: 'Rubik'; + font-style: italic; + font-weight: 500; + src: local('Rubik Medium Italic'), local('Rubik-MediumItalic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nElY2ZwWD-6aJ8x8utUQ.woff2) format('woff2'); + unicode-range: U+0590-05FF, U+20AA, U+25CC, U+FB1D-FB4F; +} +/* latin-ext */ +@font-face { + font-family: 'Rubik'; + font-style: italic; + font-weight: 500; + src: local('Rubik Medium Italic'), local('Rubik-MediumItalic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nElY2ZwWz-6aJ8x8utUQ.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Rubik'; + font-style: italic; + font-weight: 500; + src: local('Rubik Medium Italic'), local('Rubik-MediumItalic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nElY2ZwWL-6aJ8x8s.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic */ +@font-face { + font-family: 'Rubik'; + font-style: italic; + font-weight: 700; + src: local('Rubik Bold Italic'), local('Rubik-BoldItalic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nElcWfwWb-6aJ8x8utUQ.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* hebrew */ +@font-face { + font-family: 'Rubik'; + font-style: italic; + font-weight: 700; + src: local('Rubik Bold Italic'), local('Rubik-BoldItalic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nElcWfwWD-6aJ8x8utUQ.woff2) format('woff2'); + unicode-range: U+0590-05FF, U+20AA, U+25CC, U+FB1D-FB4F; +} +/* latin-ext */ +@font-face { + font-family: 'Rubik'; + font-style: italic; + font-weight: 700; + src: local('Rubik Bold Italic'), local('Rubik-BoldItalic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nElcWfwWz-6aJ8x8utUQ.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Rubik'; + font-style: italic; + font-weight: 700; + src: local('Rubik Bold Italic'), local('Rubik-BoldItalic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nElcWfwWL-6aJ8x8s.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic */ +@font-face { + font-family: 'Rubik'; + font-style: italic; + font-weight: 900; + src: local('Rubik Black Italic'), local('Rubik-BlackItalic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nElf2dwWb-6aJ8x8utUQ.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* hebrew */ +@font-face { + font-family: 'Rubik'; + font-style: italic; + font-weight: 900; + src: local('Rubik Black Italic'), local('Rubik-BlackItalic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nElf2dwWD-6aJ8x8utUQ.woff2) format('woff2'); + unicode-range: U+0590-05FF, U+20AA, U+25CC, U+FB1D-FB4F; +} +/* latin-ext */ +@font-face { + font-family: 'Rubik'; + font-style: italic; + font-weight: 900; + src: local('Rubik Black Italic'), local('Rubik-BlackItalic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nElf2dwWz-6aJ8x8utUQ.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Rubik'; + font-style: italic; + font-weight: 900; + src: local('Rubik Black Italic'), local('Rubik-BlackItalic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nElf2dwWL-6aJ8x8s.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic */ +@font-face { + font-family: 'Rubik'; + font-style: normal; + font-weight: 300; + src: local('Rubik Light'), local('Rubik-Light'), url(https://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7Fqj2mZ8WD07oB-98o.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* hebrew */ +@font-face { + font-family: 'Rubik'; + font-style: normal; + font-weight: 300; + src: local('Rubik Light'), local('Rubik-Light'), url(https://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7Fqj2mf8WD07oB-98o.woff2) format('woff2'); + unicode-range: U+0590-05FF, U+20AA, U+25CC, U+FB1D-FB4F; +} +/* latin-ext */ +@font-face { + font-family: 'Rubik'; + font-style: normal; + font-weight: 300; + src: local('Rubik Light'), local('Rubik-Light'), url(https://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7Fqj2mT8WD07oB-98o.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Rubik'; + font-style: normal; + font-weight: 300; + src: local('Rubik Light'), local('Rubik-Light'), url(https://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7Fqj2md8WD07oB-.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic */ +@font-face { + font-family: 'Rubik'; + font-style: normal; + font-weight: 400; + src: local('Rubik'), local('Rubik-Regular'), url(https://fonts.gstatic.com/s/rubik/v9/iJWKBXyIfDnIV7nFrXyw023e1Ik.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* hebrew */ +@font-face { + font-family: 'Rubik'; + font-style: normal; + font-weight: 400; + src: local('Rubik'), local('Rubik-Regular'), url(https://fonts.gstatic.com/s/rubik/v9/iJWKBXyIfDnIV7nDrXyw023e1Ik.woff2) format('woff2'); + unicode-range: U+0590-05FF, U+20AA, U+25CC, U+FB1D-FB4F; +} +/* latin-ext */ +@font-face { + font-family: 'Rubik'; + font-style: normal; + font-weight: 400; + src: local('Rubik'), local('Rubik-Regular'), url(https://fonts.gstatic.com/s/rubik/v9/iJWKBXyIfDnIV7nPrXyw023e1Ik.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Rubik'; + font-style: normal; + font-weight: 400; + src: local('Rubik'), local('Rubik-Regular'), url(https://fonts.gstatic.com/s/rubik/v9/iJWKBXyIfDnIV7nBrXyw023e.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic */ +@font-face { + font-family: 'Rubik'; + font-style: normal; + font-weight: 500; + src: local('Rubik Medium'), local('Rubik-Medium'), url(https://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7EyjmmZ8WD07oB-98o.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* hebrew */ +@font-face { + font-family: 'Rubik'; + font-style: normal; + font-weight: 500; + src: local('Rubik Medium'), local('Rubik-Medium'), url(https://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7Eyjmmf8WD07oB-98o.woff2) format('woff2'); + unicode-range: U+0590-05FF, U+20AA, U+25CC, U+FB1D-FB4F; +} +/* latin-ext */ +@font-face { + font-family: 'Rubik'; + font-style: normal; + font-weight: 500; + src: local('Rubik Medium'), local('Rubik-Medium'), url(https://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7EyjmmT8WD07oB-98o.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Rubik'; + font-style: normal; + font-weight: 500; + src: local('Rubik Medium'), local('Rubik-Medium'), url(https://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7Eyjmmd8WD07oB-.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic */ +@font-face { + font-family: 'Rubik'; + font-style: normal; + font-weight: 700; + src: local('Rubik Bold'), local('Rubik-Bold'), url(https://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7F6iGmZ8WD07oB-98o.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* hebrew */ +@font-face { + font-family: 'Rubik'; + font-style: normal; + font-weight: 700; + src: local('Rubik Bold'), local('Rubik-Bold'), url(https://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7F6iGmf8WD07oB-98o.woff2) format('woff2'); + unicode-range: U+0590-05FF, U+20AA, U+25CC, U+FB1D-FB4F; +} +/* latin-ext */ +@font-face { + font-family: 'Rubik'; + font-style: normal; + font-weight: 700; + src: local('Rubik Bold'), local('Rubik-Bold'), url(https://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7F6iGmT8WD07oB-98o.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Rubik'; + font-style: normal; + font-weight: 700; + src: local('Rubik Bold'), local('Rubik-Bold'), url(https://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7F6iGmd8WD07oB-.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic */ +@font-face { + font-family: 'Rubik'; + font-style: normal; + font-weight: 900; + src: local('Rubik Black'), local('Rubik-Black'), url(https://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7FCimmZ8WD07oB-98o.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* hebrew */ +@font-face { + font-family: 'Rubik'; + font-style: normal; + font-weight: 900; + src: local('Rubik Black'), local('Rubik-Black'), url(https://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7FCimmf8WD07oB-98o.woff2) format('woff2'); + unicode-range: U+0590-05FF, U+20AA, U+25CC, U+FB1D-FB4F; +} +/* latin-ext */ +@font-face { + font-family: 'Rubik'; + font-style: normal; + font-weight: 900; + src: local('Rubik Black'), local('Rubik-Black'), url(https://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7FCimmT8WD07oB-98o.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Rubik'; + font-style: normal; + font-weight: 900; + src: local('Rubik Black'), local('Rubik-Black'), url(https://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7FCimmd8WD07oB-.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts new file mode 100644 index 00000000..024b1004 --- /dev/null +++ b/dist/index.d.ts @@ -0,0 +1,7 @@ +import './assets/css/fonts/rubik.css'; +export * from './components/index'; +export * from './assets/images'; +export * from './providers/index'; +export * from './services/index'; +export * from './theme/index'; +export * from './utils'; diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 00000000..1b70811d --- /dev/null +++ b/dist/index.js @@ -0,0 +1,3397 @@ +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var React = require('react'); +var React__default = _interopDefault(React); +var core = require('@material-ui/core'); +var styles = require('@material-ui/core/styles'); +var icons = require('@material-ui/icons'); +var Tab = _interopDefault(require('@material-ui/core/Tab')); +var reactRouterDom = require('react-router-dom'); +var Tooltip = _interopDefault(require('@material-ui/core/Tooltip')); +var CheckCircleOutlineOutlinedIcon = _interopDefault(require('@material-ui/icons/CheckCircleOutlineOutlined')); +var ErrorIcon = _interopDefault(require('@material-ui/icons/Error')); +var WarningIcon = _interopDefault(require('@material-ui/icons/Warning')); +var colors$1 = require('@material-ui/core/colors'); +var Typography = _interopDefault(require('@material-ui/core/Typography')); +var AccordionDetails = _interopDefault(require('@material-ui/core/AccordionDetails')); +var AccordionSummary = _interopDefault(require('@material-ui/core/AccordionSummary')); +var ExpandMoreIcon = _interopDefault(require('@material-ui/icons/ExpandMore')); +var FileCopyIcon = _interopDefault(require('@material-ui/icons/FileCopy')); +var Accordion$1 = _interopDefault(require('@material-ui/core/Accordion')); +var AddIcon = _interopDefault(require('@material-ui/icons/Add')); +var RemoveIcon = _interopDefault(require('@material-ui/icons/Remove')); +var Slider = _interopDefault(require('@material-ui/core/Slider')); +var Input = _interopDefault(require('@material-ui/core/Input')); +var Grid = _interopDefault(require('@material-ui/core/Grid')); +var Tabs = _interopDefault(require('@material-ui/core/Tabs')); +var IconButton = _interopDefault(require('@material-ui/core/IconButton')); +var Box = _interopDefault(require('@material-ui/core/Box')); +var CircularProgress = _interopDefault(require('@material-ui/core/CircularProgress')); +var Popover = _interopDefault(require('@material-ui/core/Popover')); +var Web3 = _interopDefault(require('web3')); +var Hidden = _interopDefault(require('@material-ui/core/Hidden')); +var MenuIcon = _interopDefault(require('@material-ui/icons/Menu')); +var ChevronLeftIcon = _interopDefault(require('@material-ui/icons/ChevronLeft')); + +const useStyles = styles.makeStyles(() => ({ + block: { + width: '100%' + }, + noShadow: { + boxShadow: 'none' + }, + rounded: { + borderRadius: 50 + } +})); + +const Button = ({ + className = '', + block, + shadow, + rounded, + children, + ...rest +}) => { + const classes = useStyles(); + return React__default.createElement(core.Button, Object.assign({ + className: `${rounded ? classes.rounded : ''} + ${shadow ? '' : classes.noShadow} + ${block ? classes.block : ''} ${className}`.trim() + }, rest), children); +}; + +const colors = { + black: '#000000', + primary: '#008FF7', + darkBlue: '#197DC6', + gray1: '#F8F7F7', + gray2: '#E5E5E5', + gray3: '#C4C4C4', + gray4: '#919191', + gray5: '#4D4C4C', + gray6: '#15171B', + transparent: '#FFFFFF00', + white: '#FFFFFF' +}; +const fonts = { + family: 'Rubik', + size: { + tiny: 10, + small: 12, + normal: 14, + medium: 16, + subtitleSmall: 18, + subtitleBig: 22 + }, + weight: { + light: 300, + regular: 400, + medium: 500, + bold: 700 + } +}; +const globalConstants = { + headerHeight: 8 +}; +const theme = styles.createMuiTheme({ + palette: { + primary: { + main: colors.primary + }, + secondary: { + main: colors.gray4 + } + }, + typography: { + fontFamily: fonts.family, + button: { + textTransform: 'none' + }, + fontWeightLight: fonts.weight.light, + fontWeightRegular: fonts.weight.regular, + fontWeightMedium: fonts.weight.medium, + fontWeightBold: fonts.weight.bold, + body1: { + fontWeight: fonts.weight.light + } + }, + props: {}, + overrides: { + MuiButton: { + root: { + fontWeight: fonts.weight.light + } + }, + MuiFormControlLabel: { + root: { + color: colors.gray3 + } + }, + MuiSlider: { + rail: { + color: colors.gray3, + height: 4, + opacity: 1 + }, + root: { + width: '100%', + color: colors.primary, + height: 4 + }, + track: { + height: 4 + }, + thumb: { + marginLeft: -4, + height: 14, + width: 14 + } + }, + MuiTextField: { + root: { + color: colors.gray3, + '&:hover': { + color: colors.gray2 + } + } + } + } +}); + +const useStyles$1 = core.makeStyles(() => core.createStyles({ + unCheckedIcon: { + color: colors.gray4 + }, + checkedIcon: { + color: colors.primary + } +})); + +const Checkbox = props => { + const classes = useStyles$1(); + const { + checked + } = props; + const [isChecked, setIsChecked] = React.useState(!!checked); + + const handleChange = (event, newChecked) => { + setIsChecked(newChecked); + const { + onChange + } = props; + if (onChange) onChange(event, newChecked); + }; + + return React__default.createElement(core.Checkbox, Object.assign({ + checkedIcon: React__default.createElement(icons.CheckBoxSharp, { + className: classes.checkedIcon + }), + icon: React__default.createElement(icons.CheckBoxOutlineBlankSharp, { + className: classes.unCheckedIcon + }) + }, props, { + checked: isChecked, + onChange: handleChange + })); +}; + +var doneThumbsUp = require("./doneThumbsUp~bbkTwQsx.svg"); + +var footerTongue = require("./footerTongue~bbJNSCWG.svg"); + +var headerTongueImg = require("./headerTongue~VLlRBGMc.svg"); + +var tickWide = require("./tickWide~bmvsBAER.svg"); + +var metaMaskIconImg = require("./metaMask~bnTqJLxK.svg"); + +var nameService = require("./nameService~UWbtQqmT.svg"); + +var niftyIconImg = require("./nifty~RMIWdZeg.png"); + +var rifCom = require("./rifCom~udwpaCym.png"); + +var rifDir = require("./rifDir~bottaDNJ.png"); + +var rifGat = require("./rifGat~balFpEzC.png"); + +var rifMar = require("./rifMar~IDqKMWpK.png"); + +var rifPay = require("./rifPay~bdtOAceT.png"); + +var rifSto = require("./rifSto~fMRetflo.png"); + +var storage = require("./storage~fCGkZtHN.svg"); + +var logoBlackAndBlue = require("./logoBlackAndBlue~bjZFbjOq.svg"); + +var logoBlueIcon = require("./logoBlueIcon~qRLrrgXR.svg"); + +var logoFullWhite = require("./logoFullWhite~lLumzPXG.svg"); + +var rskLogo = require("./rskLogo~bdMEZSPk.svg"); + +var EProvider; + +(function (EProvider) { + EProvider["METAMASK"] = "Metamask"; + EProvider["NIFTY"] = "Nifty"; + EProvider["LEDGER"] = "Ledger"; + EProvider["TREZOR"] = "Trezor"; + EProvider["TRUST"] = "Trust"; + EProvider["LOCAL"] = "Localhost"; + EProvider["GO_WALLET"] = "GoWallet"; + EProvider["ALPHA_WALLET"] = "AlphaWallet"; + EProvider["STATUS"] = "status"; + EProvider["CIPHER"] = "cipher"; + EProvider["COINBASE"] = "coinbase"; + EProvider["MIST"] = "mist"; + EProvider["PARITY"] = "parity"; + EProvider["INFURA"] = "infura"; +})(EProvider || (EProvider = {})); + +const getProviderInfo = eProvider => { + switch (eProvider) { + case EProvider.METAMASK: + return { + name: 'MetaMask', + eProvider, + iconImg: metaMaskIconImg + }; + + case EProvider.NIFTY: + return { + name: 'Nifty', + eProvider, + iconImg: niftyIconImg + }; + + case EProvider.LEDGER: + return { + name: 'Ledger', + eProvider + }; + + case EProvider.TREZOR: + return { + name: 'Trezor', + eProvider + }; + + case EProvider.TRUST: + return { + name: 'Trust', + eProvider + }; + + case EProvider.GO_WALLET: + return { + name: 'Go Wallet', + eProvider + }; + + case EProvider.ALPHA_WALLET: + return { + name: 'Alpha Wallet', + eProvider + }; + + case EProvider.STATUS: + return { + name: 'Status', + eProvider + }; + + case EProvider.COINBASE: + return { + name: 'Coinbase', + eProvider + }; + + case EProvider.MIST: + return { + name: 'Mist', + eProvider + }; + + case EProvider.PARITY: + return { + name: 'Parity', + eProvider + }; + + case EProvider.INFURA: + return { + name: 'Infura', + eProvider + }; + + case EProvider.LOCAL: + return { + name: 'Localhost', + eProvider + }; + + default: + { + throw new Error(`EProvider not implemented or unknown. Chosen provider ${eProvider}`); + } + } +}; + +const useStyles$2 = core.makeStyles(theme => ({ + root: { + padding: 5, + margin: 5, + width: '100%' + }, + content: { + display: 'flex', + alignItems: 'center', + width: '100%', + maxHeight: theme.spacing(5), + justifyContent: 'center' + }, + imageWrapper: { + maxHeight: theme.spacing(4), + marginRight: theme.spacing(2) + } +})); + +const LoginOption = ({ + className = '', + onClick, + providerInfo, + ...rest +}) => { + const classes = useStyles$2(); + const providerContent = React__default.createElement("div", { + className: classes.content + }, (providerInfo === null || providerInfo === void 0 ? void 0 : providerInfo.iconImg) && React__default.createElement("img", { + className: classes.imageWrapper, + src: providerInfo === null || providerInfo === void 0 ? void 0 : providerInfo.iconImg, + alt: `${providerInfo === null || providerInfo === void 0 ? void 0 : providerInfo.name} icon` + }), providerInfo === null || providerInfo === void 0 ? void 0 : providerInfo.name); + + const handleOnClick = () => { + if (onClick) { + return onClick(); + } + + return window.open('https://www.poa.network/for-users/nifty-wallet/getting-started', '_blank'); + }; + + return React__default.createElement(Button, Object.assign({ + className: `${classes.root} ${className}`, + block: true, + rounded: true, + variant: "outlined", + color: "primary", + onClick: handleOnClick + }, rest), !!providerInfo && providerInfo.eProvider === EProvider.NIFTY && React__default.createElement(core.Tooltip, { + arrow: true, + title: "Please, make sure you only have one browser wallet enabled." + }, providerContent), !!providerInfo && providerInfo.eProvider !== EProvider.NIFTY && providerContent, !providerInfo && React__default.createElement("div", { + className: classes.content + }, React__default.createElement("img", { + className: classes.imageWrapper, + src: niftyIconImg, + alt: "Nifty wallet icon" + }), "Install Nifty wallet")); +}; + +const Logo = ({ + alt = 'RIF OS logo', + ...rest +}) => React__default.createElement("img", Object.assign({ + src: logoFullWhite, + alt: alt +}, rest)); + +const LogoNavbar = ({ + alt = 'navbar logo', + height = '44px', + ...rest +}) => React__default.createElement("img", Object.assign({ + src: logoFullWhite, + alt: alt, + height: height +}, rest)); + +const useStyles$3 = styles.makeStyles(theme => ({ + root: { + textTransform: 'none', + color: colors.gray5, + fontWeight: theme.typography.fontWeightRegular, + fontSize: theme.typography.pxToRem(15), + marginRight: theme.spacing(1), + '&:focus': { + opacity: 1 + } + }, + selected: { + fontWeight: theme.typography.fontWeightMedium, + borderBottom: '2px solid #000000' + } +})); + +const StyledNavTab = props => { + const classes = useStyles$3(); + return React__default.createElement(Tab, Object.assign({ + classes: classes, + component: reactRouterDom.NavLink, + disableRipple: true + }, props)); +}; + +const defaultonCorrectNetworkMessage = 'You are on the right network'; +const deaulftonNetworkMismatchMessage = 'You are on the wrong network'; +const defaultNoNetworkMessage = 'You are not connected to any network'; +var NetworkStatus; + +(function (NetworkStatus) { + NetworkStatus[NetworkStatus["NO_NETWORK"] = 1] = "NO_NETWORK"; + NetworkStatus[NetworkStatus["NETWORK_MISSMATCH"] = 2] = "NETWORK_MISSMATCH"; + NetworkStatus[NetworkStatus["CORRECT_NETWORK"] = 3] = "CORRECT_NETWORK"; +})(NetworkStatus || (NetworkStatus = {})); + +const getNetworkStatus = (currentNetworkId, requiredNetworkId) => { + if (!currentNetworkId) return NetworkStatus.NO_NETWORK; + if (currentNetworkId === requiredNetworkId) return NetworkStatus.CORRECT_NETWORK; + return NetworkStatus.NETWORK_MISSMATCH; +}; + +const NetworkIndicator = ({ + iconClassName = '', + currentNetworkId, + requiredNetworkId, + onCorrectNetworkMessage, + onNetworkMismatchMessage, + noNetworkMessage +}) => { + const networkStatus = getNetworkStatus(currentNetworkId, requiredNetworkId); + const iconPerNetworkStatus = new Map(); + iconPerNetworkStatus.set(NetworkStatus.NO_NETWORK, React__default.createElement(Tooltip, { + title: noNetworkMessage || defaultNoNetworkMessage + }, React__default.createElement(WarningIcon, { + className: iconClassName, + style: { + color: colors$1.yellow[800] + } + }))); + iconPerNetworkStatus.set(NetworkStatus.NETWORK_MISSMATCH, React__default.createElement(Tooltip, { + title: onNetworkMismatchMessage || deaulftonNetworkMismatchMessage + }, React__default.createElement(ErrorIcon, { + className: iconClassName, + color: "error" + }))); + iconPerNetworkStatus.set(NetworkStatus.CORRECT_NETWORK, React__default.createElement(Tooltip, { + title: onCorrectNetworkMessage || defaultonCorrectNetworkMessage + }, React__default.createElement(CheckCircleOutlineOutlinedIcon, { + className: iconClassName, + style: { + color: colors$1.green[300] + } + }))); + return iconPerNetworkStatus.get(networkStatus); +}; + +const useStyles$4 = styles.makeStyles(theme => ({ + paper: { + backgroundColor: theme.palette.background.paper, + border: `2px solid ${colors.primary}`, + boxShadow: theme.shadows[5], + left: '50%', + minWidth: 400, + padding: theme.spacing(2, 4, 3), + position: 'absolute', + top: '50%', + transform: 'translate(-50%, -50%)' + } +})); + +const Modal = ({ + children, + ...rest +}) => { + const classes = useStyles$4(); + return React__default.createElement(core.Modal, Object.assign({}, rest), React__default.createElement("div", { + className: classes.paper + }, children)); +}; + +const useStyles$5 = styles.makeStyles(() => ({ + root: { + borderBottom: `1px solid ${colors.gray2}`, + color: colors.primary, + display: 'flex', + justifyContent: 'center', + width: '100%' + } +})); + +const ModalHeader = ({ + children, + className = '' +}) => { + const classes = useStyles$5(); + return React__default.createElement("div", { + className: `${classes.root} ${className}`.trim() + }, children); +}; + +const ModalTitle = ({ + children, + ...rest +}) => React__default.createElement(Typography, Object.assign({ + variant: "h5" +}, rest), children); + +const useStyles$6 = styles.makeStyles(theme => ({ + root: { + borderTop: `1px solid ${colors.gray2}`, + display: 'flex', + justifyContent: 'center', + paddingTop: theme.spacing(1), + width: '100%' + } +})); + +const ModalFooter = ({ + children, + className = '' +}) => { + const classes = useStyles$6(); + return React__default.createElement("div", { + className: `${classes.root} ${className}`.trim() + }, children); +}; + +const useStyles$7 = styles.makeStyles(theme => ({ + root: { + padding: theme.spacing(3, 0), + width: '100%' + } +})); + +const ModalBody = ({ + children, + className = '' +}) => { + const classes = useStyles$7(); + return React__default.createElement("div", { + className: `${classes.root} ${className}`.trim() + }, children); +}; + +const useStyles$8 = styles.makeStyles(() => ({ + '@keyframes spin': { + '0%': { + transform: 'rotate(0deg)' + }, + '100%': { + transform: 'rotate(360deg)' + } + }, + root: { + position: 'relative' + }, + overlay: { + position: 'absolute', + zIndex: 2, + height: '100%', + width: '100%', + display: 'flex', + justifyContent: 'center', + alignItems: 'center', + background: '#FFFFFF55' + }, + spinner: { + display: 'inline-block', + zIndex: 3, + width: '50px', + height: '50px', + border: 'none', + animation: '$spin 2s ease-in-out infinite' + } +})); + +const WithSpinner = WrappedComponent => { + const Spinner = ({ + isLoading, + ...props + }) => { + const classes = useStyles$8(); + return React__default.createElement("div", { + className: classes.root + }, isLoading && React__default.createElement("div", { + className: classes.overlay + }, React__default.createElement("img", { + className: classes.spinner, + src: logoBlueIcon, + alt: "logo" + })), React__default.createElement(WrappedComponent, Object.assign({}, props))); + }; + + return Spinner; +}; + +const useStyles$9 = styles.makeStyles(theme => styles.createStyles({ + root: { + boxShadow: 'none', + color: colors.gray4, + width: '100%' + }, + heading: { + color: colors.gray4, + fontSize: theme.typography.pxToRem(15), + fontWeight: theme.typography.fontWeightRegular, + width: '100%' + }, + accordionSummary: { + borderBottom: `1px solid ${colors.gray2}` + } +})); + +const Accordion = ({ + children, + expanded, + id, + title +}) => { + const classes = useStyles$9(); + const [isExpanded, setIsExpanded] = React.useState(!!expanded); + + const onChange = () => setIsExpanded(!isExpanded); + + return React__default.createElement(core.Accordion, { + className: classes.root, + expanded: isExpanded, + onChange: onChange + }, React__default.createElement(AccordionSummary, { + className: classes.accordionSummary, + expandIcon: React__default.createElement(ExpandMoreIcon, null), + "aria-controls": `panel-${id}-content`, + id: id + }, React__default.createElement(Typography, { + className: classes.heading + }, title)), React__default.createElement(AccordionDetails, null, children)); +}; + +const AccountModal = ({ + setProvider, + availableProviders, + open, + onClose, + onProviderSet +}) => React__default.createElement(Modal, { + open: open, + onClose: onClose, + "aria-labelledby": "account-modal-title", + "aria-describedby": "account-modal-description" +}, React__default.createElement(React__default.Fragment, null, React__default.createElement(ModalHeader, null, React__default.createElement(ModalTitle, null, "Connect a wallet to get started")), React__default.createElement(ModalBody, null, availableProviders && availableProviders.length && availableProviders.map(providerInfo => React__default.createElement(LoginOption, { + providerInfo: providerInfo, + key: providerInfo.eProvider, + onClick: function () { + try { + const _temp = function () { + if (setProvider) return Promise.resolve(setProvider(providerInfo.eProvider, onProviderSet)).then(function () {}); + }(); + + return Promise.resolve(_temp && _temp.then ? _temp.then(function () {}) : void 0); + } catch (e) { + return Promise.reject(e); + } + } +})), !availableProviders && React__default.createElement(LoginOption, null)), React__default.createElement(ModalFooter, null, React__default.createElement(Button, { + variant: "outlined", + color: "secondary", + block: true, + onClick: onClose +}, "Close")))); + +const useStyles$a = styles.makeStyles(() => ({ + tooltipTitle: { + display: 'flex', + alignItems: 'center' + } +})); + +const CopyTextTooltip = ({ + displayElement, + fullText +}) => { + const [isCopied, setIsCopied] = React.useState(false); + const classes = useStyles$a(); + const tooltipContent = React__default.createElement("div", { + className: classes.tooltipTitle + }, React__default.createElement(FileCopyIcon, null), React__default.createElement(Typography, { + variant: "body2" + }, fullText)); + return React__default.createElement(Tooltip, { + interactive: true, + title: isCopied ? React__default.createElement(Typography, { + variant: "body2" + }, "Copied!") : tooltipContent, + onClick: () => { + navigator.clipboard.writeText(fullText).then(() => { + setIsCopied(true); + }); + }, + onClose: () => { + setIsCopied(false); + } + }, displayElement); +}; + +const useStyles$b = styles.makeStyles(theme => ({ + root: { + boxShadow: 'none', + color: colors.gray4, + width: '100%' + }, + heading: { + display: 'flex', + justifyContent: 'center', + color: colors.gray5, + fontSize: fonts.size.subtitleSmall, + width: '100%' + }, + headingExpanded: { + color: colors.primary + }, + headingCollapsed: { + fontWeight: fonts.weight.regular + }, + panelDetails: { + display: 'flex', + justifyContent: 'center' + }, + answerContainer: { + [theme.breakpoints.up('md')]: { + maxWidth: '80%' + } + }, + answerText: { + color: colors.gray5 + } +})); + +const FAQSection = ({ + className = '', + initiallyExpanded, + question, + answer +}) => { + const classes = useStyles$b(); + const [isExpanded, setIsExpanded] = React.useState(!!initiallyExpanded); + + const onChange = () => setIsExpanded(!isExpanded); + + return React__default.createElement(Accordion$1, { + className: `${classes.root} ${className}`.trim(), + expanded: isExpanded, + onChange: onChange + }, React__default.createElement(AccordionSummary, { + expandIcon: isExpanded ? React__default.createElement(RemoveIcon, null) : React__default.createElement(AddIcon, null) + }, React__default.createElement(Typography, { + className: `${classes.heading} ${isExpanded ? classes.headingExpanded : classes.headingCollapsed}`.trim() + }, question)), React__default.createElement(AccordionDetails, { + className: classes.panelDetails + }, React__default.createElement("div", { + className: classes.answerContainer + }, React__default.createElement(Typography, { + className: classes.answerText + }, answer)))); +}; + +const useStyles$c = styles.makeStyles(() => ({ + root: { + color: colors.gray4, + width: '100%' + } +})); + +const LabeledCheckbox = ({ + labelText, + labelClassName = '', + ...rest +}) => { + const classes = useStyles$c(); + return React__default.createElement(core.FormControlLabel, { + className: `${classes.root} ${labelClassName.trim()}`, + label: labelText, + control: React__default.createElement(Checkbox, Object.assign({}, rest)) + }); +}; + +const FilterCheckboxCard = ({ + className = '', + onClick, + items +}) => React__default.createElement("div", { + className: className +}, items.map((item, i) => React__default.createElement(LabeledCheckbox, Object.assign({ + onClick: onClick, + key: `labeledCheckbox-${item.id}` || `labeledCheckbox-${i}-${className}`.trim(), + labelClassName: item.labelClassName +}, item)))); + +var shortenString = function shortenString(str, largerThan, charsShownCount) { + if (largerThan === void 0) { + largerThan = 16; + } + + if (charsShownCount === void 0) { + charsShownCount = 6; + } + + return str.length > largerThan ? str.substr(0, charsShownCount) + "..." + str.substr(str.length - 4) : str; +}; + +var removeEmptySpaces = function removeEmptySpaces(str) { + return str.replace(/\s/g, ''); +}; + +var maxSupportedNumber = 99999999999999; +var minSupportedNumber = 0.000001; + +var validatedNumber = function validatedNumber(num) { + if (num > 0) { + if (num > maxSupportedNumber) return maxSupportedNumber; + if (num < minSupportedNumber) return minSupportedNumber; + } + + if (num < 0) { + if (num < -maxSupportedNumber) return -maxSupportedNumber; + if (num > -minSupportedNumber) return -minSupportedNumber; + } + + return num; +}; + +const useStyles$d = styles.makeStyles(() => ({ + root: { + alignItems: 'center', + display: 'flex', + flexDirection: 'column' + }, + footerLink: { + color: colors.gray4, + fontWeight: fonts.weight.light, + textDecoration: 'none', + '&:hover': { + fontWeight: fonts.weight.regular + } + }, + footerTitle: { + fontSize: fonts.size.subtitleBig, + textAlign: 'center' + } +})); + +const FooterColumn = ({ + title, + links, + className = '' +}) => { + const classes = useStyles$d(); + return React__default.createElement("div", { + className: `${classes.root} ${className}`.trim() + }, React__default.createElement(Typography, { + className: classes.footerTitle, + variant: "subtitle1", + color: "primary" + }, title), links.map(link => { + const key = removeEmptySpaces(link.title); + + if (link.isExternal) { + const href = (link.to || '#').toString(); + return React__default.createElement("a", { + className: classes.footerLink, + target: link.target, + color: "secondary", + key: key, + href: href + }, link.title); + } + + return React__default.createElement(reactRouterDom.NavLink, { + className: classes.footerLink, + target: link.target, + color: "secondary", + key: key, + to: link.to + }, link.title); + })); +}; + +const ModalDialogue = ({ + title, + footer, + children, + ...props +}) => React__default.createElement(Modal, Object.assign({}, props), React__default.createElement(React__default.Fragment, null, React__default.createElement(ModalHeader, null, React__default.createElement(ModalTitle, null, title)), React__default.createElement(ModalBody, null, children), React__default.createElement(ModalFooter, null, footer))); + +const useStyles$e = styles.makeStyles(theme => ({ + root: { + color: colors.gray4, + display: 'flex' + }, + input: { + color: colors.gray4, + paddingLeft: theme.spacing(0.1), + textAlign: 'center', + '&::before': { + borderBottom: `1px solid ${colors.gray4}` + } + }, + inputContainer: { + paddingRight: '0 !important' + }, + units: { + color: colors.gray4, + display: 'flex', + fontSize: fonts.size.tiny + }, + unitsContainer: { + alignSelf: 'center', + color: colors.gray4, + display: 'flex', + fontSize: fonts.size.normal, + paddingLeft: '0 !important' + } +})); + +const UnitsInput = ({ + maxValue, + minValue, + units, + value, + step = 1, + handleOnBlur, + handleOnChange, + ...rest +}) => { + const classes = useStyles$e(); + return React__default.createElement(React__default.Fragment, null, React__default.createElement(Grid, { + className: classes.root, + container: true, + spacing: 1 + }, React__default.createElement(Grid, { + className: classes.inputContainer, + item: true, + xs: 8 + }, React__default.createElement(Input, Object.assign({ + className: classes.input, + classes: { + input: classes.input + }, + value: value, + onChange: handleOnChange, + onBlur: handleOnBlur, + type: "number", + fullWidth: true, + inputProps: { + step, + min: minValue, + max: maxValue, + 'aria-labelledby': 'input-slider' + } + }, rest))), React__default.createElement(Grid, { + item: true, + xs: 4, + className: classes.unitsContainer + }, React__default.createElement(Typography, { + className: classes.units + }, units)))); +}; + +const useStyles$f = styles.makeStyles(() => ({ + root: { + width: '100%' + }, + inputsContainer: { + alignSelf: 'center', + display: 'flex', + justifyContent: 'space-between', + width: '100%' + }, + toContainer: { + alignSelf: 'center', + display: 'flex', + justifyContent: 'center', + width: '100%', + fontWeight: fonts.weight.regular + } +})); + +const RangeSliderWithInputs = ({ + values: { + start: startValue, + end: endValue + }, + unit, + handleChange, + className, + ...rest +}) => { + const classes = useStyles$f(); + const maxValue = rest.max || endValue; + const minValue = rest.min || startValue; + const step = rest.step || 1; + + const handleStartInputChange = event => { + const newStartValue = validatedNumber(Number(event.target.value)) || minValue; + handleChange({ + min: newStartValue, + max: endValue + }); + }; + + const handleEndInputChange = event => { + const newEndValue = validatedNumber(Number(event.target.value)) || endValue; + handleChange({ + min: startValue, + max: newEndValue + }); + }; + + const handleSliderChange = (_, newSliderValue) => { + handleChange({ + min: newSliderValue[0], + max: newSliderValue[1] + }); + }; + + const handleStartValueBlur = () => { + if (startValue < minValue) { + handleChange({ + min: minValue, + max: endValue + }); + } else if (startValue > endValue) { + handleChange({ + min: endValue, + max: endValue + }); + } + }; + + const handleEndValueBlur = () => { + if (endValue < startValue) { + handleChange({ + min: minValue, + max: startValue + }); + } else if (endValue > maxValue) { + handleChange({ + min: minValue, + max: maxValue + }); + } + }; + + const getCommonInputValues = () => ({ + maxValue, + minValue, + step, + units: unit + }); + + return React__default.createElement("div", { + className: `${classes.root} ${className}`.trim() + }, React__default.createElement(Slider, Object.assign({ + value: [startValue, endValue] + }, rest, { + onChange: handleSliderChange + })), React__default.createElement("div", { + className: classes.inputsContainer + }, React__default.createElement(UnitsInput, Object.assign({ + handleOnBlur: handleStartValueBlur, + handleOnChange: handleStartInputChange + }, getCommonInputValues(), { + value: startValue + })), React__default.createElement(Typography, { + className: classes.toContainer + }, "to"), React__default.createElement(UnitsInput, Object.assign({ + handleOnBlur: handleEndValueBlur, + handleOnChange: handleEndInputChange + }, getCommonInputValues(), { + value: endValue + })))); +}; + +const ShortenTextTooltip = ({ + value, + maxLength = 20, + charsShownCount +}) => React__default.createElement(React__default.Fragment, null, value.length > maxLength && React__default.createElement(CopyTextTooltip, { + displayElement: React__default.createElement(Typography, { + variant: "body2" + }, shortenString(value, maxLength, charsShownCount || maxLength - 5)), + fullText: value +}), value.length <= maxLength && value); + +const useStyles$g = styles.makeStyles({ + indicator: { + display: 'flex', + justifyContent: 'center', + backgroundColor: 'transparent' + }, + root: { + borderBottom: `1px solid ${colors.gray3}` + } +}); + +const StyledTabs = props => { + const { + children + } = props; + const classes = useStyles$g(); + return React__default.createElement(Tabs, Object.assign({ + classes: classes + }, props), children); +}; + +const a11yProps = index => ({ + id: `full-width-tab-${index}`, + 'aria-controls': `full-width-tabpanel-${index}` +}); + +const useStyles$h = styles.makeStyles(() => ({ + root: { + backgroundColor: colors.white, + minHeight: 20, + width: '100%', + border: `${colors.primary} solid 1px`, + borderRadius: 50, + overflow: 'hidden' + }, + tabContainer: { + minHeight: 20, + width: '100%' + }, + tab: { + '&:hover': { + color: colors.primary + }, + borderRadius: 50, + color: colors.gray3, + fontWeight: fonts.weight.light, + maxWidth: '50%', + minHeight: '100%', + minWidth: '50%', + outlineStyle: 'none', + padding: 0, + textTransform: 'capitalize', + zIndex: 1, + '&:focus': { + outlineStyle: 'none' + } + }, + tabIndicator: { + backgroundColor: colors.primary, + borderRadius: 50, + height: '100%' + }, + tabSelected: { + backgroundColor: `${colors.primary} !important`, + color: `${colors.white} !important` + } +})); + +const SwitchTabs = ({ + label1, + label2, + value: controlledValue, + onChange +}) => { + const classes = useStyles$h(); + + const handleChange = (event, newValue) => { + onChange(event, newValue); + }; + + return React__default.createElement("div", { + className: classes.root + }, React__default.createElement(core.Tabs, { + "aria-label": "tabs switch", + className: classes.tabContainer, + onChange: handleChange, + TabIndicatorProps: { + className: classes.tabIndicator + }, + value: controlledValue, + variant: "fullWidth" + }, React__default.createElement(core.Tab, Object.assign({}, a11yProps(0), { + classes: { + selected: classes.tabSelected + }, + className: classes.tab, + label: label1 + })), React__default.createElement(core.Tab, Object.assign({}, a11yProps(1), { + classes: { + selected: classes.tabSelected + }, + className: classes.tab, + label: label2 + })))); +}; + +const TooltipIconButton = ({ + tooltipTitle, + iconButtonProps, + icon +}) => React__default.createElement(Tooltip, { + title: tooltipTitle +}, React__default.createElement("span", null, React__default.createElement(IconButton, Object.assign({ + color: "primary" +}, iconButtonProps), icon))); + +const useStyles$i = styles.makeStyles(theme => ({ + boxContainer: { + border: `1px solid ${colors.primary}`, + padding: theme.spacing(5), + marginTop: theme.spacing(3) + }, + loaderContainer: { + display: 'flex', + justifyContent: 'center' + } +})); + +const WrongNetworkModal = ({ + open, + currentNetworkName = 'Private network', + requiredNetworkName, + onClose +}) => { + const classes = useStyles$i(); + return React__default.createElement(ModalDialogue, { + title: `Switch to the ${requiredNetworkName} network`, + open: open, + onClose: onClose + }, React__default.createElement(React__default.Fragment, null, React__default.createElement(Typography, { + gutterBottom: true, + align: "center", + color: "secondary", + component: "div" + }, "This dApp only works on the", ' ', requiredNetworkName, ". You are currently on", ' ', React__default.createElement(Box, { + display: "inline", + fontWeight: "fontWeightMedium" + }, currentNetworkName), "."), React__default.createElement(Grid, { + container: true, + className: classes.boxContainer, + alignItems: "center" + }, React__default.createElement(Grid, { + item: true, + sm: 3, + className: classes.loaderContainer + }, React__default.createElement(CircularProgress, null)), React__default.createElement(Grid, { + item: true, + sm: 9 + }, React__default.createElement(Typography, { + gutterBottom: true, + color: "secondary" + }, "Waiting for the right network..."), React__default.createElement(Typography, { + color: "primary", + component: "div" + }, React__default.createElement(Box, { + fontWeight: "fontWeightMedium" + }, "Switch networks on your wallet")))))); +}; + +const useStyles$j = styles.makeStyles(theme => ({ + copyright: { + display: 'flex', + justifyContent: 'center' + }, + copyrightContent: { + color: colors.gray4, + fontSize: fonts.size.tiny + }, + footerContainer: { + backgroundColor: colors.gray2, + display: 'flex', + justifyContent: 'center', + paddingBottom: theme.spacing(2), + width: '100%' + }, + footerContent: { + marginTop: theme.spacing(2), + maxWidth: '80%', + width: '100%' + }, + linksColumn: { + marginBottom: theme.spacing(1) + }, + logoColumn: { + display: 'flex', + justifyContent: 'center', + padding: theme.spacing(5) + }, + root: { + alignItems: 'center', + display: 'flex', + flexDirection: 'column', + paddingTop: theme.spacing(4), + width: '100%' + }, + tongue: { + backgroundColor: colors.gray2, + borderTopLeftRadius: '50% 80%', + borderTopRightRadius: '50% 80%', + height: theme.spacing(10), + width: '100%' + } +})); + +const Footer = ({ + className = '', + copyrightText, + linksColumns, + ...rest +}) => { + const classes = useStyles$j(); + return React__default.createElement("footer", Object.assign({ + className: `${classes.root} ${className}`.trim() + }, rest), React__default.createElement("div", { + className: classes.tongue + }), React__default.createElement("div", { + className: classes.footerContainer + }, React__default.createElement("div", { + className: classes.footerContent + }, React__default.createElement(core.Grid, { + container: true, + direction: "row" + }, React__default.createElement(core.Grid, { + className: classes.logoColumn, + item: true, + xs: 12, + md: 3, + lg: 3 + }, React__default.createElement("img", { + src: logoBlackAndBlue, + height: "75px", + alt: "logo" + })), linksColumns.map(linkColumn => React__default.createElement(core.Grid, { + key: `fc-${removeEmptySpaces(linkColumn.title)}`, + item: true, + xs: 12, + sm: 12, + md: 2, + lg: 2 + }, React__default.createElement(FooterColumn, Object.assign({ + className: classes.linksColumn + }, linkColumn))))), React__default.createElement("div", { + className: classes.copyright + }, React__default.createElement(Typography, { + className: classes.copyrightContent + }, copyrightText))))); +}; + +var ConnectionStatus; + +(function (ConnectionStatus) { + ConnectionStatus[ConnectionStatus["LoggedIn"] = 0] = "LoggedIn"; + ConnectionStatus[ConnectionStatus["LoggedOut"] = 1] = "LoggedOut"; + ConnectionStatus[ConnectionStatus["WalletLocked"] = 2] = "WalletLocked"; + ConnectionStatus[ConnectionStatus["WrongNetwork"] = 3] = "WrongNetwork"; +})(ConnectionStatus || (ConnectionStatus = {})); + +var ConnectionStatus$1 = ConnectionStatus; + +// A type of promise-like that resolves synchronously and supports only one observer + +const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.iterator || (Symbol.iterator = Symbol("Symbol.iterator"))) : "@@iterator"; + +const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol("Symbol.asyncIterator"))) : "@@asyncIterator"; + +// Asynchronously call a function and send errors to recovery continuation +function _catch(body, recover) { + try { + var result = body(); + } catch(e) { + return recover(e); + } + if (result && result.then) { + return result.then(void 0, recover); + } + return result; +} + +var networksData = [ + { + name: "Ethereum Mainnet", + chainId: 1, + shortName: "eth", + chain: "ETH", + network: "mainnet", + networkId: 1, + nativeCurrency: { + name: "Ether", + symbol: "ETH", + decimals: 18 + }, + rpc: [ + "https://mainnet.infura.io/v3/${INFURA_API_KEY}", + "https://api.mycryptoapi.com/eth" + ], + faucets: [ + ], + infoURL: "https://ethereum.org" + }, + { + name: "xDAI Chain", + chainId: 100, + shortName: "xdai", + chain: "XDAI", + network: "mainnet", + networkId: 100, + nativeCurrency: { + name: "xDAI", + symbol: "xDAI", + decimals: 18 + }, + rpc: [ + "https://dai.poa.network" + ], + faucets: [ + ], + infoURL: "https://forum.poa.network/c/xdai-chain" + }, + { + name: "EtherInc", + chainId: 101, + shortName: "eti", + chain: "ETI", + network: "mainnet", + networkId: 1, + nativeCurrency: { + name: "EtherInc Ether", + symbol: "ETI", + decimals: 18 + }, + rpc: [ + "https://api.einc.io/jsonrpc/mainnet" + ], + faucets: [ + ], + infoURL: "https://einc.io" + }, + { + name: "ThunderCore Mainnet", + chainId: 108, + shortName: "TT", + chain: "TT", + network: "mainnet", + networkId: 108, + nativeCurrency: { + name: "ThunderCore Mainnet Ether", + symbol: "TT", + decimals: 18 + }, + rpc: [ + "https://mainnet-rpc.thundercore.com" + ], + faucets: [ + "https://faucet.thundercore.com" + ], + infoURL: "https://thundercore.com" + }, + { + name: "Metadium Mainnet", + chainId: 11, + shortName: "meta", + chain: "META", + network: "mainnet", + networkId: 11, + nativeCurrency: { + name: "Metadium Mainnet Ether", + symbol: "META", + decimals: 18 + }, + rpc: [ + "https://api.metadium.com/prod" + ], + faucets: [ + ], + infoURL: "https://metadium.com" + }, + { + name: "IPOS Network", + chainId: 1122334455, + shortName: "ipos", + chain: "IPOS", + network: "mainnet", + networkId: 1122334455, + nativeCurrency: { + name: "IPOS Network Ether", + symbol: "IPOS", + decimals: 18 + }, + rpc: [ + "https://rpc.iposlab.com", + "https://rpc2.iposlab.com" + ], + faucets: [ + ], + infoURL: "https://iposlab.com" + }, + { + name: "Metadium Testnet", + chainId: 12, + shortName: "kal", + chain: "META", + network: "testnet", + networkId: 12, + nativeCurrency: { + name: "Metadium Testnet Ether", + symbol: "KAL", + decimals: 18 + }, + rpc: [ + "https://api.metadium.com/dev" + ], + faucets: [ + ], + infoURL: "https://metadium.com" + }, + { + name: "Fuse Mainnet", + chainId: 122, + shortName: "fuse", + chain: "FUSE", + network: "mainnet", + networkId: 122, + nativeCurrency: { + name: "Fuse", + symbol: "FUSE", + decimals: 18 + }, + rpc: [ + "https://rpc.fuse.io" + ], + faucets: [ + ], + infoURL: "https://fuse.io/" + }, + { + name: "Ether-1", + chainId: 1313114, + shortName: "etho", + chain: "ETHO", + network: "mainnet", + networkId: 1313114, + nativeCurrency: { + name: "Ether-1 Ether", + symbol: "ETHO", + decimals: 18 + }, + rpc: [ + "https://rpc.ether1.org" + ], + faucets: [ + ], + infoURL: "https://ether1.org" + }, + { + name: "Xerom", + chainId: 1313500, + shortName: "xero", + chain: "XERO", + network: "mainnet", + networkId: 1313500, + nativeCurrency: { + name: "Xerom Ether", + symbol: "XERO", + decimals: 18 + }, + rpc: [ + "https://rpc.xerom.org" + ], + faucets: [ + ], + infoURL: "https://xerom.org" + }, + { + name: "PepChain Churchill", + chainId: 13371337, + shortName: "tpep", + chain: "PEP", + network: "testnet", + networkId: 13371337, + nativeCurrency: { + name: "PepChain Churchill Ether", + symbol: "TPEP", + decimals: 18 + }, + rpc: [ + "https://churchill-rpc.pepchain.io" + ], + faucets: [ + ], + infoURL: "https://pepchain.io" + }, + { + name: "Lightstreams Testnet", + chainId: 162, + shortName: "tpht", + chain: "PHT", + network: "sirius", + networkId: 162, + nativeCurrency: { + name: "Lightstreams PHT", + symbol: "PHT", + decimals: 18 + }, + rpc: [ + "https://node.sirius.lightstreams.io" + ], + faucets: [ + "https://discuss.lightstreams.network/t/request-test-tokens" + ], + infoURL: "https://explorer.sirius.lightstreams.io" + }, + { + name: "Atheios", + chainId: 1620, + shortName: "ath", + chain: "ATH", + network: "mainnet", + networkId: 11235813, + nativeCurrency: { + name: "Atheios Ether", + symbol: "ATH", + decimals: 18 + }, + rpc: [ + "https://wallet.atheios.com:8797" + ], + faucets: [ + ], + infoURL: "https://atheios.com" + }, + { + name: "Lightstreams Mainnet", + chainId: 163, + shortName: "pht", + chain: "PHT", + network: "mainnet", + networkId: 163, + nativeCurrency: { + name: "Lightstreams PHT", + symbol: "PHT", + decimals: 18 + }, + rpc: [ + "https://node.mainnet.lightstreams.io" + ], + faucets: [ + ], + infoURL: "https://explorer.lightstreams.io" + }, + { + name: "ThunderCore Testnet", + chainId: 18, + shortName: "TST", + chain: "TST", + network: "testnet", + networkId: 18, + nativeCurrency: { + name: "ThunderCore Testnet Ether", + symbol: "TST", + decimals: 18 + }, + rpc: [ + "https://testnet-rpc.thundercore.com" + ], + faucets: [ + "https://faucet-testnet.thundercore.com" + ], + infoURL: "https://thundercore.com" + }, + { + name: "IOLite", + chainId: 18289463, + shortName: "ilt", + chain: "ILT", + network: "mainnet", + networkId: 18289463, + nativeCurrency: { + name: "IOLite Ether", + symbol: "ILT", + decimals: 18 + }, + rpc: [ + "https://net.iolite.io" + ], + faucets: [ + ], + infoURL: "https://iolite.io" + }, + { + name: "Teslafunds", + chainId: 1856, + shortName: "tsf", + chain: "TSF", + network: "mainnet", + networkId: 1, + nativeCurrency: { + name: "Teslafunds Ether", + symbol: "TSF", + decimals: 18 + }, + rpc: [ + "https://tsfapi.europool.me" + ], + faucets: [ + ], + infoURL: "https://teslafunds.io" + }, + { + name: "EtherGem", + chainId: 1987, + shortName: "egem", + chain: "EGEM", + network: "mainnet", + networkId: 1987, + nativeCurrency: { + name: "EtherGem Ether", + symbol: "EGEM", + decimals: 18 + }, + rpc: [ + "https://jsonrpc.egem.io/custom" + ], + faucets: [ + ], + infoURL: "https://egem.io" + }, + { + name: "Expanse Network", + chainId: 2, + shortName: "exp", + chain: "EXP", + network: "mainnet", + networkId: 1, + nativeCurrency: { + name: "Expanse Network Ether", + symbol: "EXP", + decimals: 18 + }, + rpc: [ + "https://node.expanse.tech" + ], + faucets: [ + ], + infoURL: "https://expanse.tech" + }, + { + name: "ELA-ETH-Sidechain Mainnet", + chainId: 20, + shortName: "ELAETHSC", + chain: "ETH", + network: "mainnet", + networkId: 1, + nativeCurrency: { + name: "Ether", + symbol: "ETH", + decimals: 18 + }, + rpc: [ + "https://mainrpc.elaeth.io" + ], + faucets: [ + ], + infoURL: "https://www.elastos.org/" + }, + { + name: "Akaroma", + chainId: 200625, + shortName: "aka", + chain: "AKA", + network: "mainnet", + networkId: 200625, + nativeCurrency: { + name: "Akaroma Ether", + symbol: "AKA", + decimals: 18 + }, + rpc: [ + "https://remote.akroma.io" + ], + faucets: [ + ], + infoURL: "https://akroma.io" + }, + { + name: "ELA-ETH-Sidechain Testnet", + chainId: 21, + shortName: "ELAETHSC", + chain: "ETH", + network: "testnet", + networkId: 2, + nativeCurrency: { + name: "Ether", + symbol: "ETH", + decimals: 18 + }, + rpc: [ + "https://rpc.elaeth.io" + ], + faucets: [ + "https://faucet.elaeth.io/" + ], + infoURL: "https://elaeth.io/" + }, + { + name: "Freight Trust Network", + chainId: 211, + shortName: "EDI", + chain: "EDI", + network: "freight & trade network", + networkId: 0, + nativeCurrency: { + name: "Freight Trust Native", + symbol: "0xF", + decimals: 18 + }, + rpc: [ + "http://13.57.207.168:3435", + "https://app.freighttrust.net/ftn/${API_KEY}" + ], + faucets: [ + "http://faucet.freight.sh" + ], + infoURL: "https://freighttrust.com" + }, + { + name: "Webchain", + chainId: 24484, + shortName: "web", + chain: "WEB", + network: "mainnet", + networkId: 37129, + nativeCurrency: { + name: "Webchain Ether", + symbol: "WEB", + decimals: 18 + }, + rpc: [ + "https://node1.webchain.network" + ], + faucets: [ + ], + infoURL: "https://webchain.network" + }, + { + name: "ARTIS sigma1", + chainId: 246529, + shortName: "ats", + chain: "ARTIS", + network: "sigma1", + networkId: 246529, + nativeCurrency: { + name: "ARTIS sigma1 Ether", + symbol: "ATS", + decimals: 18 + }, + rpc: [ + "https://rpc.sigma1.artis.network" + ], + faucets: [ + ], + infoURL: "https://artis.eco" + }, + { + name: "ARTIS tau1", + chainId: 246785, + shortName: "ats", + chain: "ARTIS", + network: "tau1", + networkId: 246785, + nativeCurrency: { + name: "ARTIS tau1 Ether", + symbol: "ATS", + decimals: 18 + }, + rpc: [ + "https://rpc.tau1.artis.network" + ], + faucets: [ + ], + infoURL: "https://artis.network" + }, + { + name: "Fantom Opera", + chainId: 250, + shortName: "ftm", + chain: "FTM", + network: "mainnet", + networkId: 250, + nativeCurrency: { + name: "Fantom", + symbol: "FTM", + decimals: 18 + }, + rpc: [ + "https://rpc.fantom.network", + "https://fantomscan.io/rpc" + ], + faucets: [ + ], + infoURL: "https://fantom.foundation" + }, + { + name: "High Performance Blockchain", + chainId: 269, + shortName: "hpb", + chain: "HPB", + network: "mainnet", + networkId: 100, + nativeCurrency: { + name: "High Performance Blockchain Ether", + symbol: "HPB", + decimals: 18 + }, + rpc: [ + "https://node.hpb.blue" + ], + faucets: [ + ], + infoURL: "https://hpb.io" + }, + { + name: "Auxilium Network Mainnet", + chainId: 28945486, + shortName: "aux", + chain: "AUX", + network: "mainnet", + networkId: 28945486, + nativeCurrency: { + name: "Auxilium coin", + symbol: "AUX", + decimals: 18 + }, + rpc: [ + "https://rpc.auxilium.global" + ], + faucets: [ + ], + infoURL: "https://auxilium.global" + }, + { + name: "Ethereum Testnet Ropsten", + chainId: 3, + shortName: "rop", + chain: "ETH", + network: "ropsten", + networkId: 3, + nativeCurrency: { + name: "Ropsten Ether", + symbol: "ROP", + decimals: 18 + }, + rpc: [ + "https://ropsten.infura.io/v3/${INFURA_API_KEY}" + ], + faucets: [ + "https://faucet.ropsten.be?${ADDRESS}" + ], + infoURL: "https://github.com/ethereum/ropsten" + }, + { + name: "RSK Mainnet", + chainId: 30, + shortName: "rsk", + chain: "RSK", + network: "mainnet", + networkId: 30, + nativeCurrency: { + name: "RSK Mainnet Ether", + symbol: "RSK", + decimals: 18 + }, + rpc: [ + "https://public-node.rsk.co", + "https://mycrypto.rsk.co" + ], + faucets: [ + ], + infoURL: "https://rsk.co" + }, + { + name: "RSK Testnet", + chainId: 31, + shortName: "trsk", + chain: "RSK", + network: "testnet", + networkId: 31, + nativeCurrency: { + name: "RSK Testnet Ether", + symbol: "TRSK", + decimals: 18 + }, + rpc: [ + "https://public-node.testnet.rsk.co", + "https://mycrypto.testnet.rsk.co" + ], + faucets: [ + "https://faucet.testnet.rsk.co" + ], + infoURL: "https://rsk.co" + }, + { + name: "Ethersocial Network", + chainId: 31102, + shortName: "esn", + chain: "ESN", + network: "mainnet", + networkId: 1, + nativeCurrency: { + name: "Ethersocial Network Ether", + symbol: "ESN", + decimals: 18 + }, + rpc: [ + "https://api.esn.gonspool.com" + ], + faucets: [ + ], + infoURL: "https://ethersocial.org" + }, + { + name: "Pirl", + chainId: 3125659152, + shortName: "pirl", + chain: "PIRL", + network: "mainnet", + networkId: 3125659152, + nativeCurrency: { + name: "Pirl Ether", + symbol: "PIRL", + decimals: 18 + }, + rpc: [ + "https://wallrpc.pirl.io" + ], + faucets: [ + ], + infoURL: "https://pirl.io" + }, + { + name: "Lisinski", + chainId: 385, + shortName: "lisinski", + chain: "CRO", + network: "mainnet", + networkId: 385, + nativeCurrency: { + name: "Lisinski Ether", + symbol: "LISINSKI", + decimals: 18 + }, + rpc: [ + "https://rpc-bitfalls1.lisinski.online" + ], + faucets: [ + "https://pipa.lisinski.online" + ], + infoURL: "https://lisinski.online" + }, + { + name: "Energi Mainnet", + chainId: 39797, + shortName: "nrg", + chain: "NRG", + network: "mainnet", + networkId: 39797, + nativeCurrency: { + name: "Energi", + symbol: "NRG", + decimals: 18 + }, + rpc: [ + "https://nodeapi.gen3.energi.network" + ], + faucets: [ + ], + infoURL: "https://www.energi.world/" + }, + { + name: "Ethereum Testnet Rinkeby", + chainId: 4, + shortName: "rin", + chain: "ETH", + network: "rinkeby", + networkId: 4, + nativeCurrency: { + name: "Rinkeby Ether", + symbol: "RIN", + decimals: 18 + }, + rpc: [ + "https://rinkeby.infura.io/v3/${INFURA_API_KEY}" + ], + faucets: [ + "https://faucet.rinkeby.io" + ], + infoURL: "https://www.rinkeby.io" + }, + { + name: "Ethereum Testnet Kovan", + chainId: 42, + shortName: "kov", + chain: "ETH", + network: "kovan", + networkId: 42, + nativeCurrency: { + name: "Kovan Ether", + symbol: "KOV", + decimals: 18 + }, + rpc: [ + "https://kovan.infura.io/v3/${INFURA_API_KEY}" + ], + faucets: [ + "https://faucet.kovan.network", + "https://gitter.im/kovan-testnet/faucet" + ], + infoURL: "https://kovan-testnet.github.io/website" + }, + { + name: "Athereum", + chainId: 43110, + shortName: "ath", + chain: "ATH", + network: "athereum", + networkId: 43110, + nativeCurrency: { + name: "Athereum Ether", + symbol: "ATH", + decimals: 18 + }, + rpc: [ + "https://ava.network:21015/ext/evm/rpc" + ], + faucets: [ + "http://athfaucet.ava.network//?address=${ADDRESS}" + ], + infoURL: "https://athereum.ava.network" + }, + { + name: "Energi Testnet", + chainId: 49797, + shortName: "tnrg", + chain: "NRG", + network: "testnet", + networkId: 49797, + nativeCurrency: { + name: "Energi", + symbol: "tNRG", + decimals: 18 + }, + rpc: [ + "https://nodeapi.test3.energi.network" + ], + faucets: [ + ], + infoURL: "https://www.energi.world/" + }, + { + name: "Ethereum Testnet Görli", + chainId: 5, + shortName: "gor", + chain: "ETH", + network: "goerli", + networkId: 5, + nativeCurrency: { + name: "Görli Ether", + symbol: "GOR", + decimals: 18 + }, + rpc: [ + "https://rpc.goerli.mudit.blog/", + "https://rpc.slock.it/goerli ", + "https://goerli.prylabs.net/" + ], + faucets: [ + "https://goerli-faucet.slock.it/?address=${ADDRESS}", + "https://faucet.goerli.mudit.blog" + ], + infoURL: "https://goerli.net/#about" + }, + { + name: "Ethereum Classic Testnet Kotti", + chainId: 6, + shortName: "kot", + chain: "ETC", + network: "kotti", + networkId: 6, + nativeCurrency: { + name: "Kotti Ether", + symbol: "KOT", + decimals: 18 + }, + rpc: [ + ], + faucets: [ + ], + infoURL: "https://explorer.jade.builders/?network=kotti" + }, + { + name: "GoChain", + chainId: 60, + shortName: "go", + chain: "GO", + network: "mainnet", + networkId: 60, + nativeCurrency: { + name: "GoChain Ether", + symbol: "GO", + decimals: 18 + }, + rpc: [ + "https://rpc.gochain.io" + ], + faucets: [ + ], + infoURL: "https://gochain.io" + }, + { + name: "Ethereum Classic Mainnet", + chainId: 61, + shortName: "etc", + chain: "ETC", + network: "mainnet", + networkId: 1, + nativeCurrency: { + name: "Ethereum Classic Ether", + symbol: "ETC", + decimals: 18 + }, + rpc: [ + "https://ethereumclassic.network" + ], + faucets: [ + ], + infoURL: "https://ethereumclassic.org" + }, + { + name: "Aquachain", + chainId: 61717561, + shortName: "aqua", + chain: "AQUA", + network: "mainnet", + networkId: 61717561, + nativeCurrency: { + name: "Aquachain Ether", + symbol: "AQUA", + decimals: 18 + }, + rpc: [ + "https://c.onical.org", + "https://tx.aquacha.in/api" + ], + faucets: [ + "https://aquacha.in/faucet" + ], + infoURL: "https://aquachain.github.io" + }, + { + name: "Ethereum Classic Testnet Morden", + chainId: 62, + shortName: "tetc", + chain: "ETC", + network: "testnet", + networkId: 2, + nativeCurrency: { + name: "Ethereum Classic Testnet Ether", + symbol: "TETC", + decimals: 18 + }, + rpc: [ + ], + faucets: [ + ], + infoURL: "https://ethereumclassic.org" + }, + { + name: "Ethereum Classic Testnet Mordor", + chainId: 63, + shortName: "metc", + chain: "ETC", + network: "testnet", + networkId: 7, + nativeCurrency: { + name: "Mordor Classic Testnet Ether", + symbol: "METC", + decimals: 18 + }, + rpc: [ + ], + faucets: [ + ], + infoURL: "https://github.com/eth-classic/mordor/" + }, + { + name: "Ellaism", + chainId: 64, + shortName: "ella", + chain: "ELLA", + network: "mainnet", + networkId: 64, + nativeCurrency: { + name: "Ellaism Ether", + symbol: "ELLA", + decimals: 18 + }, + rpc: [ + "https://jsonrpc.ellaism.org" + ], + faucets: [ + ], + infoURL: "https://ellaism.org" + }, + { + name: "ThaiChain", + chainId: 7, + shortName: "tch", + chain: "TCH", + network: "mainnet", + networkId: 7, + nativeCurrency: { + name: "ThaiChain Ether", + symbol: "TCH", + decimals: 18 + }, + rpc: [ + "https://rpc.dome.cloud" + ], + faucets: [ + ], + infoURL: "https://thaichain.io" + }, + { + name: "Mix", + chainId: 76, + shortName: "mix", + chain: "MIX", + network: "mainnet", + networkId: 76, + nativeCurrency: { + name: "Mix Ether", + symbol: "MIX", + decimals: 18 + }, + rpc: [ + "https://rpc2.mix-blockchain.org:8647" + ], + faucets: [ + ], + infoURL: "https://mix-blockchain.org" + }, + { + name: "POA Network Sokol", + chainId: 77, + shortName: "poa", + chain: "POA", + network: "sokol", + networkId: 77, + nativeCurrency: { + name: "POA Sokol Ether", + symbol: "POA", + decimals: 18 + }, + rpc: [ + "https://sokol.poa.network" + ], + faucets: [ + "https://faucet-sokol.herokuapp.com" + ], + infoURL: "https://poa.network" + }, + { + name: "Musicoin", + chainId: 7762959, + shortName: "music", + chain: "MUSIC", + network: "mainnet", + networkId: 7762959, + nativeCurrency: { + name: "Musicoin", + symbol: "MUSIC", + decimals: 18 + }, + rpc: [ + "https://mewapi.musicoin.tw" + ], + faucets: [ + ], + infoURL: "https://musicoin.tw" + }, + { + name: "Firenze test network", + chainId: 78110, + shortName: "firenze", + chain: "ETH", + network: "testnet", + networkId: 78110, + nativeCurrency: { + name: "Firenze Ether", + symbol: "FIN", + decimals: 18 + }, + rpc: [ + "https://ethnode.primusmoney.com/firenze" + ], + faucets: [ + ], + infoURL: "https://primusmoney.com" + }, + { + name: "Ubiq Network Mainnet", + chainId: 8, + shortName: "ubq", + chain: "UBQ", + network: "mainnet", + networkId: 88, + nativeCurrency: { + name: "Ubiq Ether", + symbol: "UBQ", + decimals: 18 + }, + rpc: [ + "https://rpc.octano.dev", + "https://pyrus2.ubiqscan.io" + ], + faucets: [ + ], + infoURL: "https://ubiqsmart.com" + }, + { + name: "Callisto Mainnet", + chainId: 820, + shortName: "clo", + chain: "CLO", + network: "mainnet", + networkId: 1, + nativeCurrency: { + name: "Callisto Mainnet Ether", + symbol: "CLO", + decimals: 18 + }, + rpc: [ + "https://clo-geth.0xinfra.com" + ], + faucets: [ + ], + infoURL: "https://callisto.network" + }, + { + name: "Callisto Testnet", + chainId: 821, + shortName: "tclo", + chain: "CLO", + network: "testnet", + networkId: 2, + nativeCurrency: { + name: "Callisto Testnet Ether", + symbol: "TCLO", + decimals: 18 + }, + rpc: [ + ], + faucets: [ + ], + infoURL: "https://callisto.network" + }, + { + name: "TomoChain", + chainId: 88, + shortName: "tomo", + chain: "TOMO", + network: "mainnet", + networkId: 88, + nativeCurrency: { + name: "TomoChain Ether", + symbol: "TOMO", + decimals: 18 + }, + rpc: [ + "https://core.tomocoin.io" + ], + faucets: [ + ], + infoURL: "https://tomocoin.io" + }, + { + name: "Ubiq Network Testnet", + chainId: 9, + shortName: "tubq", + chain: "UBQ", + network: "mainnet", + networkId: 2, + nativeCurrency: { + name: "Ubiq Testnet Ether", + symbol: "TUBQ", + decimals: 18 + }, + rpc: [ + ], + faucets: [ + ], + infoURL: "https://ethersocial.org" + }, + { + name: "Nepal Blockchain Network", + chainId: 977, + shortName: "yeti", + chain: "YETI", + network: "mainnet", + networkId: 977, + nativeCurrency: { + name: "Nepal Blockchain Network Ether", + symbol: "YETI", + decimals: 18 + }, + rpc: [ + "https://api.nepalblockchain.dev", + "https://api.nepalblockchain.network" + ], + faucets: [ + "https://faucet.nepalblockchain.network" + ], + infoURL: "https://nepalblockchain.network" + }, + { + name: "POA Network Core", + chainId: 99, + shortName: "skl", + chain: "POA", + network: "core", + networkId: 99, + nativeCurrency: { + name: "POA Network Core Ether", + symbol: "SKL", + decimals: 18 + }, + rpc: [ + "https://core.poa.network" + ], + faucets: [ + ], + infoURL: "https://poa.network" + }, + { + name: "Local Tests", + chainId: 1337, + shortName: "test", + chain: "localtests", + network: "localTests", + networkId: 8545, + nativeCurrency: { + name: "Local Tests Ether", + symbol: "LT", + decimals: 18 + }, + rpc: [ + "http://localhost:8545" + ], + faucets: [ + "http://localhost:8545" + ], + infoURL: "http://localhost:8545" + } +]; + +function getWeb3(provider = EProvider.METAMASK) { + return new Promise((resolve, reject) => { + switch (provider) { + case EProvider.NIFTY: + case EProvider.METAMASK: + { + if (window.ethereum) { + const web3 = new Web3(window.ethereum); + window.ethereum.enable().then(() => resolve(web3)).catch(reject); + } else if (window.web3) { + resolve(new Web3(window.web3.currentProvider)); + } else reject(new Error('No injected web3 found')); + + break; + } + + case EProvider.LOCAL: + { + const localhostProvider = new Web3.providers.HttpProvider("'http://127.0.0.1:4444'"); + resolve(new Web3(localhostProvider)); + break; + } + + default: + { + reject(new Error(`Provider not implemented or unknown. Chosen provider ${provider}`)); + break; + } + } + }); +} +const getNetworkInfo = (networkId, chainId) => networksData.find(n => chainId ? n.networkId === networkId && n.chainId === chainId : n.networkId === networkId); +const getNetworkInfoFromWeb3 = function (web3) { + try { + function _temp3() { + let networkInfo; + + if (networkId) { + try { + networkInfo = getNetworkInfo(networkId, chainId); + } catch (error) {} + } + + return networkInfo; + } + + let networkId; + let chainId; + + const _temp2 = _catch(function () { + return Promise.resolve(web3.eth.net.getId()).then(function (_web3$eth$net$getId) { + networkId = _web3$eth$net$getId; + + const _temp = function () { + if (networkId) { + return Promise.resolve(web3.eth.getChainId()).then(function (_web3$eth$getChainId) { + chainId = _web3$eth$getChainId; + }); + } + }(); + + if (_temp && _temp.then) return _temp.then(function () {}); + }); + }, function () {}); + + return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(_temp3) : _temp3(_temp2)); + } catch (e) { + return Promise.reject(e); + } +}; +const getAvailableProviders = () => { + const result = []; + if (!window.web3) return undefined; + const currentProvider = window.web3.currentProvider; + + if (currentProvider.isMetaMask) { + result.push(currentProvider.isNiftyWallet ? getProviderInfo(EProvider.NIFTY) : getProviderInfo(EProvider.METAMASK)); + } + + if (currentProvider.isTrust) result.push(getProviderInfo(EProvider.TRUST)); + if (currentProvider.isGoWallet) result.push(getProviderInfo(EProvider.GO_WALLET)); + if (currentProvider.isAlphaWallet) result.push(getProviderInfo(EProvider.ALPHA_WALLET)); + if (currentProvider.isStatus) result.push(getProviderInfo(EProvider.STATUS)); + if (currentProvider.isToshi) result.push(getProviderInfo(EProvider.COINBASE)); + if (typeof window.__CIPHER__ !== 'undefined') result.push(getProviderInfo(EProvider.CIPHER)); + if (currentProvider.constructor.name === 'EthereumProvider') result.push(getProviderInfo(EProvider.MIST)); + if (currentProvider.constructor.name === 'Web3FrameProvider') result.push(getProviderInfo(EProvider.PARITY)); + if (currentProvider.host && currentProvider.host.indexOf('infura') !== -1) result.push(getProviderInfo(EProvider.INFURA)); + if (currentProvider.host && currentProvider.host.indexOf('localhost') !== -1) result.push(getProviderInfo(EProvider.LOCAL)); + return result; +}; +const getConnectionStatus = (web3, requiredNetworkId, currentNetworkId, account) => { + if (!web3) return ConnectionStatus$1.LoggedOut; + + if (currentNetworkId !== requiredNetworkId) { + return ConnectionStatus$1.WrongNetwork; + } + + if (account) { + return ConnectionStatus$1.LoggedIn; + } + + return ConnectionStatus$1.WalletLocked; +}; + +const useStyles$k = styles.makeStyles(theme => ({ + accountText: { + fontSize: fonts.size.tiny, + textAlign: 'center' + }, + button: { + border: `1px solid ${colors.white}`, + '&:hover': { + border: `1px solid ${colors.transparent}` + } + }, + networkIndicator: { + marginRight: theme.spacing(1) + }, + rightNetwork: { + padding: theme.spacing(2) + } +})); + +const Account = props => { + const { + web3, + networkInfo, + account, + setProvider, + availableProviders, + requiredNetworkId, + onCorrectNetworkMessage, + onNetworkMismatchMessage, + noNetworkMessage, + requiredNetworkName, + modalInitiallyOpened = false + } = props; + const classes = useStyles$k(); + const [accountModalOpen, setAccountModalOpen] = React.useState(modalInitiallyOpened); + + const handleAccountModalClose = () => setAccountModalOpen(false); + + const handleAccountModalOpen = () => setAccountModalOpen(true); + + const [wrongNetModalOpen, setWrongNetModalOpen] = React.useState(false); + + const openWrongNetModal = () => setWrongNetModalOpen(true); + + const closeWrongNetModal = () => setWrongNetModalOpen(false); + + const connectionStatus = getConnectionStatus(web3, requiredNetworkId, networkInfo === null || networkInfo === void 0 ? void 0 : networkInfo.networkId, account); + const [anchorEl, setAnchorEl] = React__default.useState(null); + const popoverOpen = Boolean(anchorEl); + const id = popoverOpen ? 'right-net-popover' : undefined; + + const handlePopoverClose = () => { + setAnchorEl(null); + }; + + React.useEffect(() => { + if (connectionStatus === ConnectionStatus$1.WrongNetwork) { + openWrongNetModal(); + } else { + closeWrongNetModal(); + handlePopoverClose(); + } + }, [connectionStatus]); + + const accountText = () => { + if (connectionStatus === ConnectionStatus$1.LoggedOut) return 'Connect wallet'; + if (connectionStatus === ConnectionStatus$1.WrongNetwork) return 'Wrong Network'; + + if (account) { + return shortenString(account); + } + + return 'Unlock your wallet'; + }; + + const onAccountClicked = event => { + if (connectionStatus === ConnectionStatus$1.WrongNetwork) return openWrongNetModal(); + if (connectionStatus === ConnectionStatus$1.LoggedOut) return handleAccountModalOpen(); + if (connectionStatus === ConnectionStatus$1.LoggedIn) return setAnchorEl(event.currentTarget); + return null; + }; + + return React__default.createElement(React__default.Fragment, null, React__default.createElement(Button, { + onClick: onAccountClicked, + className: classes.button, + variant: "contained", + color: "primary", + rounded: true + }, !!requiredNetworkId && React__default.createElement(NetworkIndicator, { + iconClassName: classes.networkIndicator, + currentNetworkId: networkInfo === null || networkInfo === void 0 ? void 0 : networkInfo.networkId, + requiredNetworkId: requiredNetworkId, + onCorrectNetworkMessage: onCorrectNetworkMessage, + onNetworkMismatchMessage: onNetworkMismatchMessage, + noNetworkMessage: noNetworkMessage + }), React__default.createElement(Typography, { + className: classes.accountText + }, accountText())), React__default.createElement(Popover, { + id: id, + open: popoverOpen, + anchorEl: anchorEl, + onClose: handlePopoverClose, + anchorOrigin: { + vertical: 'bottom', + horizontal: 'center' + }, + transformOrigin: { + vertical: 'top', + horizontal: 'center' + } + }, React__default.createElement(Typography, { + className: classes.rightNetwork + }, `You are successfully connected to ${networkInfo === null || networkInfo === void 0 ? void 0 : networkInfo.name}.`)), React__default.createElement(AccountModal, { + open: accountModalOpen, + onClose: handleAccountModalClose, + web3: web3, + onProviderSet: handleAccountModalClose, + setProvider: setProvider, + availableProviders: availableProviders + }), React__default.createElement(WrongNetworkModal, { + open: wrongNetModalOpen, + onClose: closeWrongNetModal, + requiredNetworkName: requiredNetworkName, + currentNetworkName: networkInfo === null || networkInfo === void 0 ? void 0 : networkInfo.name + })); +}; + +const useStyles$l = styles.makeStyles(theme => ({ + activeNavlink: { + color: `${colors.white} !important`, + fontWeight: fonts.weight.medium + }, + navLink: { + alignItems: 'center', + color: colors.white, + display: 'flex', + paddingLeft: theme.spacing(5), + paddingRight: theme.spacing(5), + textAlign: 'center', + textDecoration: 'none', + '&:hover': { + color: colors.gray5, + textDecoration: 'none' + } + }, + navLinkContainer: { + display: 'flex' + }, + root: { + boxShadow: 'none', + height: theme.spacing(globalConstants.headerHeight) + } +})); + +const HeaderDesktop = ({ + hreflogo, + itemsStart, + itemsEnd, + login +}) => { + const classes = useStyles$l(); + const Login = login; + return React__default.createElement(core.AppBar, { + position: "fixed", + className: classes.root + }, React__default.createElement(core.Toolbar, null, React__default.createElement(core.Grid, { + container: true + }, React__default.createElement(core.Grid, { + item: true, + xs: 1 + }, React__default.createElement(reactRouterDom.NavLink, { + to: hreflogo + }, React__default.createElement(LogoNavbar, null))), React__default.createElement(core.Grid, { + item: true, + xs: 6, + container: true, + justify: "flex-start" + }, !!itemsStart.length && itemsStart.map(navItem => React__default.createElement(Typography, { + className: classes.navLinkContainer, + key: `hi-${removeEmptySpaces(navItem.title)}` + }, React__default.createElement(reactRouterDom.NavLink, Object.assign({ + className: classes.navLink, + activeClassName: classes.activeNavlink + }, navItem), navItem.title)))), React__default.createElement(core.Grid, { + item: true, + xs: 4, + container: true, + justify: "flex-end", + alignContent: "center" + }, !!(itemsEnd === null || itemsEnd === void 0 ? void 0 : itemsEnd.length) && itemsEnd.map(({ + icon, + ...rest + }) => React__default.createElement(core.ListItemIcon, Object.assign({ + key: icon.key + }, rest), icon))), React__default.createElement(core.Grid, { + item: true, + container: true, + xs: 1, + alignContent: "center" + }, React__default.createElement(Login, null))))); +}; + +const drawerWidth = 240; +const useStyles$m = styles.makeStyles(theme => styles.createStyles({ + drawerHeader: { + display: 'flex', + alignItems: 'center', + padding: theme.spacing(0, 1), + ...theme.mixins.toolbar, + justifyContent: 'flex-end' + }, + drawerPaper: { + width: drawerWidth + }, + mobileAppBar: { + boxShadow: 'none', + height: theme.spacing(globalConstants.headerHeight), + transition: theme.transitions.create(['margin', 'width'], { + easing: theme.transitions.easing.sharp, + duration: theme.transitions.duration.leavingScreen + }) + }, + mobileAppBarShift: { + width: `calc(100% - ${drawerWidth}px)`, + marginLeft: drawerWidth, + transition: theme.transitions.create(['margin', 'width'], { + easing: theme.transitions.easing.easeOut, + duration: theme.transitions.duration.enteringScreen + }) + }, + mobileNavLink: { + alignItems: 'center', + color: colors.gray4, + display: 'flex', + textDecoration: 'none', + width: '100%', + '&:hover': { + color: colors.gray5, + textDecoration: 'none' + } + }, + mobileNavLinkActive: { + color: `${colors.primary} !important` + } +})); + +const HeaderMobile = ({ + hreflogo, + itemsStart, + itemsEnd, + login: Login +}) => { + const classes = useStyles$m(); + const [open, setOpen] = React.useState(false); + + const toggleDrawer = isOpen => event => { + if (event.type === 'keydown' && (event.key === 'Tab' || event.key === 'Shift')) { + return; + } + + setOpen(isOpen); + }; + + return React__default.createElement("div", { + role: "presentation", + onKeyDown: toggleDrawer(false) + }, React__default.createElement(core.AppBar, { + position: "fixed", + className: `${classes.mobileAppBar} ${open ? classes.mobileAppBarShift : ''}`.trim() + }, React__default.createElement(core.Toolbar, null, !open && React__default.createElement(core.Grid, { + container: true + }, React__default.createElement(core.Grid, { + item: true, + xs: 1 + }, React__default.createElement(core.IconButton, { + color: "inherit", + "aria-label": "open drawer", + onClick: toggleDrawer(true) + }, React__default.createElement(MenuIcon, null))), React__default.createElement(core.Grid, { + item: true, + xs: 6 + }, React__default.createElement(reactRouterDom.NavLink, { + to: hreflogo + }, React__default.createElement(LogoNavbar, null))), React__default.createElement(core.Grid, { + item: true, + xs: 4, + container: true, + justify: "flex-end", + alignContent: "center" + }, !!(itemsEnd === null || itemsEnd === void 0 ? void 0 : itemsEnd.length) && itemsEnd.map(({ + icon, + ...rest + }) => React__default.createElement(core.ListItemIcon, Object.assign({ + key: icon.key + }, rest), icon))), React__default.createElement(core.Grid, { + item: true, + xs: 1 + }, React__default.createElement(Login, null))))), React__default.createElement(core.Drawer, { + anchor: "left", + open: open, + onClose: toggleDrawer(false), + classes: { + paper: classes.drawerPaper + }, + onClick: toggleDrawer(false) + }, React__default.createElement("div", { + className: classes.drawerHeader + }, React__default.createElement(core.IconButton, { + onClick: toggleDrawer(false) + }, React__default.createElement(ChevronLeftIcon, null))), React__default.createElement(core.Divider, null), React__default.createElement(core.List, null, !!itemsStart.length && itemsStart.map(headerItem => React__default.createElement(core.ListItem, { + button: true, + key: `him-${removeEmptySpaces(headerItem.title)}` + }, React__default.createElement(reactRouterDom.NavLink, { + to: headerItem.to, + className: classes.mobileNavLink, + activeClassName: classes.mobileNavLinkActive + }, React__default.createElement(core.ListItemIcon, null, headerItem.icon), React__default.createElement(core.ListItemText, { + primary: headerItem.title + }))))))); +}; + +const Header = props => React__default.createElement(React__default.Fragment, null, React__default.createElement(Hidden, { + smDown: true +}, React__default.createElement(HeaderDesktop, Object.assign({}, props))), React__default.createElement(Hidden, { + mdUp: true +}, React__default.createElement(HeaderMobile, Object.assign({}, props)))); + +const useStyles$n = styles.makeStyles(theme => ({ + textContainer: { + alignItems: 'center', + backgroundColor: colors.primary, + display: 'flex', + justifyContent: 'center', + width: '100%' + }, + textContent: { + color: colors.white, + display: 'flex', + flexDirection: 'column', + textAlign: 'center', + [theme.breakpoints.down('sm')]: { + maxWidth: '90%' + }, + [theme.breakpoints.up('md')]: { + maxWidth: '65%' + }, + [theme.breakpoints.up('xl')]: { + maxWidth: '55%' + } + }, + titleContent: { + marginBottom: theme.spacing(1), + fontSize: theme.spacing(5), + fontWeight: fonts.weight.regular + }, + tongueImg: { + width: '100%' + } +})); + +const HeaderTongue = ({ + description, + titleLine1, + titleLine2 +}) => { + const classes = useStyles$n(); + return React__default.createElement(React__default.Fragment, null, React__default.createElement("div", { + className: classes.textContainer + }, React__default.createElement("div", { + className: classes.textContent + }, React__default.createElement(Typography, { + className: classes.titleContent, + variant: "h3" + }, titleLine1, React__default.createElement("br", null), ' ', titleLine2), React__default.createElement(Typography, { + variant: "subtitle1" + }, description))), React__default.createElement("img", { + className: classes.tongueImg, + src: headerTongueImg, + alt: "headerTongueImg" + })); +}; + +const useStyles$o = styles.makeStyles(theme => ({ + root: { + alignItems: 'center', + display: 'flex', + flexDirection: 'column', + marginTop: theme.spacing(3) + }, + container: { + alignItems: 'center', + display: 'flex', + flexDirection: 'column', + [theme.breakpoints.up('md')]: { + maxWidth: '80%' + } + }, + grayBackground: { + backgroundColor: colors.gray1 + }, + mainTitle: { + fontSize: theme.typography.pxToRem(50), + margin: theme.spacing(2, 0) + }, + questionsSection: { + alignItems: 'center', + display: 'flex', + flexDirection: 'column', + marginTop: theme.spacing(2) + } +})); + +const FAQPageTemplate = ({ + className = '', + mainTitle, + questionsAndAnswers +}) => { + const classes = useStyles$o(); + return React__default.createElement("div", { + className: `${classes.root} ${className}`.trim() + }, React__default.createElement("div", { + className: classes.container + }, React__default.createElement(Typography, { + className: classes.mainTitle, + variant: "h1", + color: "primary" + }, mainTitle), React__default.createElement("div", { + className: classes.questionsSection + }, questionsAndAnswers.map((qAndA, i) => React__default.createElement(FAQSection, Object.assign({ + className: `${i % 2 === 0 ? classes.grayBackground : ''}`, + key: `faq-${removeEmptySpaces(qAndA.question)}` + }, qAndA)))))); +}; + +const useStyles$p = styles.makeStyles(theme => ({ + root: { + marginTop: theme.spacing(globalConstants.headerHeight), + width: '100%' + } +})); + +const PageTemplate = ({ + children, + className = '', + ...props +}) => { + const classes = useStyles$p(); + return React__default.createElement("div", Object.assign({ + className: `${classes.root} ${className}`.trim() + }, props), children); +}; + +const defaultWeb3State = { + provider: undefined, + web3: undefined, + account: undefined, + networkInfo: undefined +}; +const Web3Store = React.createContext({ + state: defaultWeb3State, + actions: { + setProvider: () => Promise.resolve(), + onConnectedNetworkChange: () => 0, + onConnectedAccountChange: () => 0 + }, + requiredNetworkId: undefined, + requiredChainId: undefined +}); + +const getAccountFromEthAccounts = accounts => { + let account; + if (Array.isArray(accounts)) [account] = accounts;else account = accounts; + return account; +}; + +const shouldReadAccount = (requiredNetworkId, requiredChainId, networkInfo) => { + if (!requiredNetworkId) return true; + + if (requiredNetworkId === (networkInfo === null || networkInfo === void 0 ? void 0 : networkInfo.networkId)) { + if (requiredChainId) return requiredChainId === (networkInfo === null || networkInfo === void 0 ? void 0 : networkInfo.chainId); + return true; + } + + return false; +}; + +class Web3Provider extends React.Component { + constructor(props) { + super(props); + this.state = defaultWeb3State; + this.requiredNetworkId = props.requiredNetworkId; + this.requiredChainId = props.requiredChainId; + this.onConnectedNetworkChange = props.actions.onConnectedNetworkChange; + this.onConnectedAccountChange = props.actions.onConnectedAccountChange; + this.setProvider = this.setProvider.bind(this); + this.initialize(); + } + + setProvider(provider, onStateChanged) { + try { + const _this = this; + + return Promise.resolve(getWeb3(provider)).then(function (web3) { + return Promise.resolve(web3.eth.getAccounts()).then(function (accounts) { + return Promise.resolve(getNetworkInfoFromWeb3(web3)).then(function (networkInfo) { + const shouldSetAccount = shouldReadAccount(_this.requiredNetworkId, _this.requiredChainId, networkInfo); + const account = shouldSetAccount ? getAccountFromEthAccounts(accounts) : undefined; + + _this.setState({ + web3, + provider, + account, + networkInfo + }, () => onStateChanged && onStateChanged(account)); + }); + }); + }); + } catch (e) { + return Promise.reject(e); + } + } + + initialize() { + const _this2 = this; + + if (!window.ethereum) { + return; + } + + this.availableProviders = getAvailableProviders(); + window.ethereum.autoRefreshOnNetworkChange = false; + window.ethereum.on('networkChanged', function (_netId) { + try { + const { + networkInfo + } = _this2.state; + if (!networkInfo) return Promise.resolve(); + const { + provider + } = _this2.state; + return Promise.resolve(getWeb3(provider)).then(function (web3) { + return Promise.resolve(web3.eth.getAccounts()).then(function (accounts) { + return Promise.resolve(getNetworkInfoFromWeb3(web3)).then(function (newNetworkInfo) { + const shouldSetAccount = shouldReadAccount(_this2.requiredNetworkId, _this2.requiredChainId, newNetworkInfo); + const account = shouldSetAccount ? getAccountFromEthAccounts(accounts) : undefined; + + _this2.setState({ + networkInfo: newNetworkInfo, + account + }, () => _this2.onConnectedNetworkChange && _this2.onConnectedNetworkChange()); + }); + }); + }); + } catch (e) { + return Promise.reject(e); + } + }); + window.ethereum.on('accountsChanged', accounts => { + const { + networkInfo + } = this.state; + if (!networkInfo) return; + const shouldSetAccount = shouldReadAccount(this.requiredNetworkId, this.requiredChainId, networkInfo); + + if (shouldSetAccount) { + const account = getAccountFromEthAccounts(accounts); + + if (account) { + this.setState({ + account + }, () => this.onConnectedAccountChange && this.onConnectedAccountChange()); + } + } + }); + } + + render() { + const { + provider, + web3, + account, + networkInfo + } = this.state; + const { + setProvider, + onConnectedNetworkChange, + onConnectedAccountChange, + availableProviders + } = this; + const { + children + } = this.props; + return React__default.createElement(Web3Store.Provider, { + value: { + actions: { + setProvider, + onConnectedNetworkChange, + onConnectedAccountChange + }, + state: { + provider, + web3, + account, + networkInfo + }, + availableProviders + } + }, children); + } + +} + +var Web3Provider$1 = { + Consumer: Web3Store.Consumer, + Provider: Web3Provider +}; + +exports.Accordion = Accordion; +exports.Account = Account; +exports.AccountModal = AccountModal; +exports.Button = Button; +exports.Checkbox = Checkbox; +exports.CopyTextTooltip = CopyTextTooltip; +exports.FAQPageTemplate = FAQPageTemplate; +exports.FAQSection = FAQSection; +exports.FilterCheckboxCard = FilterCheckboxCard; +exports.Footer = Footer; +exports.FooterColumn = FooterColumn; +exports.Header = Header; +exports.HeaderTongue = HeaderTongue; +exports.LabeledCheckbox = LabeledCheckbox; +exports.LoginOption = LoginOption; +exports.Logo = Logo; +exports.LogoNavbar = LogoNavbar; +exports.Modal = Modal; +exports.ModalBody = ModalBody; +exports.ModalDialogue = ModalDialogue; +exports.ModalFooter = ModalFooter; +exports.ModalHeader = ModalHeader; +exports.ModalTitle = ModalTitle; +exports.NetworkIndicator = NetworkIndicator; +exports.PageTemplate = PageTemplate; +exports.RangeSliderWithInputs = RangeSliderWithInputs; +exports.ShortenTextTooltip = ShortenTextTooltip; +exports.StyledNavTab = StyledNavTab; +exports.StyledTabs = StyledTabs; +exports.SwitchTabs = SwitchTabs; +exports.TooltipIconButton = TooltipIconButton; +exports.UnitsInput = UnitsInput; +exports.Web3Provider = Web3Provider$1; +exports.Web3Store = Web3Store; +exports.WithSpinner = WithSpinner; +exports.WrongNetworkModal = WrongNetworkModal; +exports.colors = colors; +exports.defaultWeb3State = defaultWeb3State; +exports.doneThumbsUpImg = doneThumbsUp; +exports.fonts = fonts; +exports.footerTongueImg = footerTongue; +exports.globalConstants = globalConstants; +exports.headerTongueImg = headerTongueImg; +exports.logoBlackAndBlue = logoBlackAndBlue; +exports.logoBlueIcon = logoBlueIcon; +exports.logoFullWhite = logoFullWhite; +exports.maxSupportedNumber = maxSupportedNumber; +exports.metaMaskIconImg = metaMaskIconImg; +exports.minSupportedNumber = minSupportedNumber; +exports.nameServiceImg = nameService; +exports.niftyIconImg = niftyIconImg; +exports.removeEmptySpaces = removeEmptySpaces; +exports.rifComImg = rifCom; +exports.rifDirImg = rifDir; +exports.rifGatImg = rifGat; +exports.rifMarImg = rifMar; +exports.rifPayImg = rifPay; +exports.rifStoImg = rifSto; +exports.rskLogo = rskLogo; +exports.shortenString = shortenString; +exports.storageImg = storage; +exports.theme = theme; +exports.tickWideImg = tickWide; +exports.validatedNumber = validatedNumber; +//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map new file mode 100644 index 00000000..2d7dd97d --- /dev/null +++ b/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../src/components/atoms/Button.tsx","../src/theme/theme.ts","../src/components/atoms/Checkbox.tsx","../src/assets/images/icons/nifty.png","../src/assets/images/icons/rifCom.png","../src/assets/images/icons/rifDir.png","../src/assets/images/icons/rifGat.png","../src/assets/images/icons/rifMar.png","../src/assets/images/icons/rifPay.png","../src/assets/images/icons/rifSto.png","../src/models/ProviderInfo.ts","../src/components/atoms/LoginOption.tsx","../src/components/atoms/Logo.tsx","../src/components/atoms/LogoNavbar.tsx","../src/components/atoms/StyledNavTab.tsx","../src/components/atoms/NetworkIndicator.tsx","../src/components/atoms/modal/Modal.tsx","../src/components/atoms/modal/ModalHeader.tsx","../src/components/atoms/modal/ModalTitle.tsx","../src/components/atoms/modal/ModalFooter.tsx","../src/components/atoms/modal/ModalBody.tsx","../src/components/hoc/WithSpinner.tsx","../src/components/molecules/Accordion.tsx","../src/components/molecules/AccountModal.tsx","../src/components/molecules/CopyTextTooltip.tsx","../src/components/molecules/FAQSection.tsx","../src/components/molecules/LabeledCheckbox.tsx","../src/components/molecules/FilterCheckboxCard.tsx","../src/utils.ts","../src/components/molecules/FooterColumn.tsx","../src/components/molecules/ModalDialogue.tsx","../src/components/molecules/UnitsInput.tsx","../src/components/molecules/RangeSliderWithInputs.tsx","../src/components/molecules/ShortenTextTooltip.tsx","../src/components/molecules/StyledTabs.tsx","../src/components/molecules/SwitchTabs.tsx","../src/components/molecules/TooltipIconButton.tsx","../src/components/molecules/WrongNetworkModal.tsx","../src/components/organisms/Footer.tsx","../src/models/Enums.ts","../node_modules/babel-plugin-transform-async-to-promises/helpers.js","../src/services/Web3Service.ts","../src/components/organisms/Account.tsx","../src/components/organisms/Header/HeaderDesktop.tsx","../src/components/organisms/Header/HeaderMobile.tsx","../src/components/organisms/Header/Header.tsx","../src/components/organisms/Header/HeaderTongue.tsx","../src/components/templates/FAQPageTemplate.tsx","../src/components/templates/PageTemplate.tsx","../src/providers/Web3Provider.tsx"],"sourcesContent":["import React, { FC } from 'react'\nimport { Button as MUIButton, ButtonProps as MUIButtonProps } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\n\nexport interface ButtonProps extends MUIButtonProps {\n block?: boolean\n shadow?: boolean\n rounded?: boolean\n}\n\nconst useStyles = makeStyles(() => ({\n block: {\n width: '100%',\n },\n noShadow: {\n boxShadow: 'none',\n },\n rounded: {\n borderRadius: 50,\n },\n}))\n\nconst Button: FC = ({\n className = '', block, shadow, rounded, children, ...rest\n}) => {\n const classes = useStyles()\n\n return (\n \n {children}\n \n )\n}\n\nexport default Button\n","import { createMuiTheme } from '@material-ui/core/styles'\nimport '../assets/css/fonts/rubik.css'\n\nexport const colors = {\n black: '#000000',\n primary: '#008FF7',\n darkBlue: '#197DC6',\n gray1: '#F8F7F7',\n gray2: '#E5E5E5',\n gray3: '#C4C4C4',\n gray4: '#919191',\n gray5: '#4D4C4C',\n gray6: '#15171B',\n transparent: '#FFFFFF00',\n white: '#FFFFFF',\n}\n\nexport const fonts = {\n family: 'Rubik',\n size: {\n tiny: 10,\n small: 12,\n normal: 14,\n medium: 16,\n subtitleSmall: 18,\n subtitleBig: 22,\n },\n weight: {\n light: 300,\n regular: 400,\n medium: 500,\n bold: 700,\n },\n}\n\nexport const globalConstants = {\n headerHeight: 8,\n}\n\nconst theme = createMuiTheme({\n palette: {\n primary: {\n main: colors.primary,\n },\n secondary: {\n main: colors.gray4,\n },\n },\n typography: {\n fontFamily: fonts.family,\n button: {\n textTransform: 'none',\n },\n fontWeightLight: fonts.weight.light,\n fontWeightRegular: fonts.weight.regular,\n fontWeightMedium: fonts.weight.medium,\n fontWeightBold: fonts.weight.bold,\n body1: {\n fontWeight: fonts.weight.light,\n },\n },\n props: {},\n overrides: {\n MuiButton: {\n root: {\n fontWeight: fonts.weight.light,\n },\n },\n MuiFormControlLabel: {\n root: {\n color: colors.gray3,\n },\n },\n MuiSlider: {\n rail: {\n color: colors.gray3,\n height: 4,\n opacity: 1,\n },\n root: {\n width: '100%',\n color: colors.primary,\n height: 4,\n },\n track: {\n height: 4,\n },\n thumb: {\n marginLeft: -4,\n height: 14,\n width: 14,\n },\n },\n MuiTextField: {\n root: {\n color: colors.gray3,\n '&:hover': {\n color: colors.gray2,\n },\n },\n },\n },\n})\n\nexport default theme\n","import React, { FC, useState } from 'react'\nimport {\n Checkbox as MUICheckbox,\n CheckboxProps as MUICheckboxProps,\n makeStyles,\n createStyles,\n} from '@material-ui/core'\nimport { CheckBoxOutlineBlankSharp, CheckBoxSharp } from '@material-ui/icons'\nimport { colors } from '../../theme'\n\nexport type CheckboxProps = MUICheckboxProps;\n\nconst useStyles = makeStyles(() => createStyles({\n unCheckedIcon: {\n color: colors.gray4,\n },\n checkedIcon: {\n color: colors.primary,\n },\n}))\n\nconst Checkbox: FC = (props) => {\n const classes = useStyles()\n const { checked } = props\n const [isChecked, setIsChecked] = useState(!!checked)\n\n const handleChange = (event: React.ChangeEvent,\n newChecked: boolean): void => {\n setIsChecked(newChecked)\n const { onChange } = props\n\n if (onChange) onChange(event, newChecked)\n }\n\n return (\n \n }\n icon={\n \n }\n {...props}\n checked={isChecked}\n onChange={handleChange}\n />\n )\n}\n\nexport default Checkbox\n","/* loaded by smart-asset */\nexport default require(\"./nifty~RMIWdZeg.png\")","/* loaded by smart-asset */\nexport default require(\"./rifCom~udwpaCym.png\")","/* loaded by smart-asset */\nexport default require(\"./rifDir~bottaDNJ.png\")","/* loaded by smart-asset */\nexport default require(\"./rifGat~balFpEzC.png\")","/* loaded by smart-asset */\nexport default require(\"./rifMar~IDqKMWpK.png\")","/* loaded by smart-asset */\nexport default require(\"./rifPay~bdtOAceT.png\")","/* loaded by smart-asset */\nexport default require(\"./rifSto~fMRetflo.png\")","import { metaMaskIconImg, niftyIconImg } from '../assets/images'\n\nexport default interface ProviderInfo {\n name: string\n eProvider: EProvider\n iconImg?: string\n}\n\nexport enum EProvider {\n METAMASK = 'Metamask',\n NIFTY = 'Nifty',\n LEDGER = 'Ledger',\n TREZOR = 'Trezor',\n TRUST = 'Trust',\n LOCAL = 'Localhost',\n GO_WALLET = 'GoWallet',\n ALPHA_WALLET = 'AlphaWallet',\n STATUS = 'status',\n CIPHER = 'cipher',\n COINBASE = 'coinbase',\n MIST = 'mist',\n PARITY = 'parity',\n INFURA = 'infura'\n}\n\nexport const getProviderInfo = (eProvider: EProvider): ProviderInfo => {\n switch (eProvider) {\n case EProvider.METAMASK:\n return {\n name: 'MetaMask',\n eProvider,\n iconImg: metaMaskIconImg,\n }\n case EProvider.NIFTY:\n return {\n name: 'Nifty',\n eProvider,\n iconImg: niftyIconImg,\n }\n case EProvider.LEDGER:\n return {\n name: 'Ledger',\n eProvider,\n }\n case EProvider.TREZOR:\n return {\n name: 'Trezor',\n eProvider,\n }\n case EProvider.TRUST:\n return {\n name: 'Trust',\n eProvider,\n }\n case EProvider.GO_WALLET:\n return {\n name: 'Go Wallet',\n eProvider,\n }\n case EProvider.ALPHA_WALLET:\n return {\n name: 'Alpha Wallet',\n eProvider,\n }\n case EProvider.STATUS:\n return {\n name: 'Status',\n eProvider,\n }\n case EProvider.COINBASE:\n return {\n name: 'Coinbase',\n eProvider,\n }\n case EProvider.MIST:\n return {\n name: 'Mist',\n eProvider,\n }\n case EProvider.PARITY:\n return {\n name: 'Parity',\n eProvider,\n }\n case EProvider.INFURA:\n return {\n name: 'Infura',\n eProvider,\n }\n case EProvider.LOCAL:\n return {\n name: 'Localhost',\n eProvider,\n }\n default: {\n throw new Error(\n `EProvider not implemented or unknown. Chosen provider ${eProvider}`,\n )\n }\n }\n}\n","import React, { FC } from 'react'\nimport { makeStyles, Theme, Tooltip } from '@material-ui/core'\nimport Button from './Button'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport { niftyIconImg } from '../../assets/images'\n\nexport interface LoginOptionProps {\n className?: string\n onClick?: () => void\n providerInfo?: ProviderInfo\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n padding: 5,\n margin: 5,\n width: '100%',\n },\n content: {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n maxHeight: theme.spacing(5),\n justifyContent: 'center',\n },\n imageWrapper: {\n maxHeight: theme.spacing(4),\n marginRight: theme.spacing(2),\n },\n}))\n\n/**\n * If not providerInfo is received, we assume there's no provider available and so suggest to install Nifty wallet\n * Same happens when no onClick is provided. We open the Nifty page on a new tab\n */\nconst LoginOption: FC = ({\n className = '',\n onClick,\n providerInfo,\n ...rest\n}) => {\n const classes = useStyles()\n\n const providerContent = (\n
\n {\n providerInfo?.iconImg\n && (\n \n )\n }\n {providerInfo?.name}\n
\n )\n\n const handleOnClick = () => {\n if (onClick) {\n return onClick()\n }\n return window.open('https://www.poa.network/for-users/nifty-wallet/getting-started', '_blank')\n }\n\n return (\n \n {/* only with Nifty we display the Tooltip because atm we can't check if MetaMask is also enabled */}\n {!!providerInfo && providerInfo.eProvider === EProvider.NIFTY\n && (\n \n {providerContent}\n \n )}\n {!!providerInfo && providerInfo.eProvider !== EProvider.NIFTY\n && providerContent}\n {!providerInfo\n && (\n
\n \n Install Nifty wallet\n
\n )}\n \n )\n}\n\nexport default LoginOption\n","import React, { FC } from 'react'\nimport { logoFullWhite } from '../../assets/images'\n\ninterface LogoProps extends React.Props {\n alt?: string\n}\n\nconst Logo: FC = ({ alt = 'RIF OS logo', ...rest }) => {alt}\n\nexport default Logo\n","import React, { FC } from 'react'\nimport { logoFullWhite } from '../../assets/images'\n\ninterface LogoProps extends React.Props {\n alt?: string\n height?: string | number\n style?: React.CSSProperties\n}\n\nconst LogoNavbar: FC = ({ alt = 'navbar logo', height = '44px', ...rest }) => (\n \n)\nexport default LogoNavbar\n","import React, { FC } from 'react'\nimport { Theme, makeStyles } from '@material-ui/core/styles'\nimport Tab from '@material-ui/core/Tab'\nimport { NavLink } from 'react-router-dom'\nimport { colors } from '../../theme'\n\nexport interface StyledNavTabProps {\n label: string\n to: string\n value: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n textTransform: 'none',\n color: colors.gray5,\n fontWeight: theme.typography.fontWeightRegular,\n fontSize: theme.typography.pxToRem(15),\n marginRight: theme.spacing(1),\n '&:focus': {\n opacity: 1,\n },\n },\n selected: {\n fontWeight: theme.typography.fontWeightMedium,\n borderBottom: '2px solid #000000',\n },\n}))\n\nconst StyledNavTab: FC = (props: StyledNavTabProps) => {\n const classes = useStyles()\n return \n}\n\nexport default StyledNavTab\n","import React, { FC } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport CheckCircleOutlineOutlinedIcon from '@material-ui/icons/CheckCircleOutlineOutlined'\nimport ErrorIcon from '@material-ui/icons/Error'\nimport WarningIcon from '@material-ui/icons/Warning'\nimport { green, yellow } from '@material-ui/core/colors'\n\nexport interface NetworkIndicatorProps {\n iconClassName?: string\n currentNetworkId?: number\n requiredNetworkId?: number\n onCorrectNetworkMessage?: string\n onNetworkMismatchMessage?: string\n noNetworkMessage?: string\n}\n\nconst defaultonCorrectNetworkMessage = 'You are on the right network'\nconst deaulftonNetworkMismatchMessage = 'You are on the wrong network'\nconst defaultNoNetworkMessage = 'You are not connected to any network'\n\nexport enum NetworkStatus {\n NO_NETWORK = 1,\n NETWORK_MISSMATCH = 2,\n CORRECT_NETWORK = 3\n}\n\nconst getNetworkStatus = (currentNetworkId, requiredNetworkId): NetworkStatus => {\n if (!currentNetworkId) return NetworkStatus.NO_NETWORK\n\n if (currentNetworkId === requiredNetworkId) return NetworkStatus.CORRECT_NETWORK\n return NetworkStatus.NETWORK_MISSMATCH\n}\n\nconst NetworkIndicator: FC = ({\n iconClassName = '',\n currentNetworkId, requiredNetworkId, onCorrectNetworkMessage,\n onNetworkMismatchMessage, noNetworkMessage,\n}) => {\n const networkStatus = getNetworkStatus(currentNetworkId, requiredNetworkId)\n\n const iconPerNetworkStatus = new Map()\n iconPerNetworkStatus.set(NetworkStatus.NO_NETWORK, (\n \n \n \n ))\n iconPerNetworkStatus.set(NetworkStatus.NETWORK_MISSMATCH, (\n \n \n \n ))\n iconPerNetworkStatus.set(NetworkStatus.CORRECT_NETWORK, (\n \n \n \n ))\n\n return (\n iconPerNetworkStatus.get(networkStatus)\n )\n}\n\nexport default NetworkIndicator\n","import React, { FC } from 'react'\nimport { Modal as MUIModal, ModalProps as MUIModalProps } from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport type ModalProps = MUIModalProps;\n\nconst useStyles = makeStyles((theme: Theme) => ({\n paper: {\n backgroundColor: theme.palette.background.paper,\n border: `2px solid ${colors.primary}`,\n boxShadow: theme.shadows[5],\n left: '50%',\n minWidth: 400,\n padding: theme.spacing(2, 4, 3),\n position: 'absolute',\n top: '50%',\n transform: 'translate(-50%, -50%)',\n },\n}))\n\nconst Modal: FC = ({ children, ...rest }) => {\n const classes = useStyles()\n\n return (\n \n
\n {children}\n
\n
\n )\n}\n\nexport default Modal\n","import React, { FC } from 'react'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport interface ModalHeaderProps {\n className?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n borderBottom: `1px solid ${colors.gray2}`,\n color: colors.primary,\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n },\n}))\n\nconst ModalHeader: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalHeader\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\n\nexport interface ModalTitleProps {\n className?: string\n}\n\nconst ModalTitle: FC = ({ children, ...rest }) => (\n \n {children}\n \n)\n\nexport default ModalTitle\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport interface ModalFooterProps {\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n borderTop: `1px solid ${colors.gray2}`,\n display: 'flex',\n justifyContent: 'center',\n paddingTop: theme.spacing(1),\n width: '100%',\n },\n}))\n\nconst ModalFooter: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalFooter\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\n\nexport interface ModalBodyProps {\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n padding: theme.spacing(3, 0),\n width: '100%',\n },\n}))\n\nconst ModalBody: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalBody\n","import React from 'react'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { logoBlueIcon } from '../../assets/images'\n\nconst useStyles = makeStyles(() => ({\n '@keyframes spin': {\n '0%': { transform: 'rotate(0deg)' },\n '100%': { transform: 'rotate(360deg)' },\n },\n root: {\n position: 'relative',\n },\n overlay: {\n position: 'absolute',\n zIndex: 2,\n height: '100%',\n width: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n background: '#FFFFFF55',\n },\n spinner: {\n display: 'inline-block',\n zIndex: 3,\n width: '50px',\n height: '50px',\n border: 'none',\n animation: '$spin 2s ease-in-out infinite',\n },\n}))\n\nconst WithSpinner = (WrappedComponent: React.ElementType) => {\n const Spinner = ({ isLoading, ...props }) => {\n const classes = useStyles()\n\n return (\n
\n {\n isLoading\n && (\n
\n \"logo\"\n
\n )\n }\n \n
\n )\n }\n return Spinner\n}\n\nexport default WithSpinner\n","import React, { FC, useState } from 'react'\nimport { Accordion as MUIAccordion, AccordionProps as MUIAccordionProps } from '@material-ui/core'\nimport Typography from '@material-ui/core/Typography'\nimport AccordionDetails from '@material-ui/core/AccordionDetails'\nimport AccordionSummary from '@material-ui/core/AccordionSummary'\nimport { makeStyles, Theme, createStyles } from '@material-ui/core/styles'\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore'\nimport { colors } from '../../theme'\n\ninterface AccordionProps extends MUIAccordionProps {\n id: string\n title?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n root: {\n boxShadow: 'none',\n color: colors.gray4,\n width: '100%',\n },\n heading: {\n color: colors.gray4,\n fontSize: theme.typography.pxToRem(15),\n fontWeight: theme.typography.fontWeightRegular,\n width: '100%',\n },\n accordionSummary: {\n borderBottom: `1px solid ${colors.gray2}`,\n },\n}))\n\nconst Accordion: FC = ({\n children, expanded, id, title,\n}) => {\n const classes = useStyles()\n const [isExpanded, setIsExpanded] = useState(!!expanded)\n\n const onChange = (): void => setIsExpanded(!isExpanded)\n\n return (\n \n }\n aria-controls={`panel-${id}-content`}\n id={id}\n >\n {title}\n \n \n {children}\n \n \n )\n}\n\nexport default Accordion\n","import React, { FC } from 'react'\nimport Web3 from 'web3'\nimport {\n Button, LoginOption, Modal, ModalBody, ModalFooter, ModalHeader, ModalTitle,\n} from '../atoms'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport NetworkInfo from '../../models/NetworkInfo'\n\nexport interface AccountModalProps {\n web3?: Web3\n networkInfo?: NetworkInfo\n setProvider?: (provider: EProvider, onProviderSet?:\n (account?: string) => void) => Promise\n availableProviders?: ProviderInfo[]\n onClose?: () => void\n onProviderSet?: (account) => void\n open: boolean\n}\n\nconst AccountModal: FC = ({\n setProvider,\n availableProviders,\n open,\n onClose,\n onProviderSet,\n}) => (\n \n \n \n Connect a wallet to get started\n \n \n {\n availableProviders && availableProviders.length && availableProviders.map(\n (providerInfo) => (\n => {\n if (setProvider) await setProvider(providerInfo.eProvider, onProviderSet)\n }}\n />\n ),\n )\n }\n {!availableProviders\n && (\n // TODO: Create LoginOptionTemplate to extract this\n // empty LoginOption means suggest to install Nifty wallet\n \n )}\n \n \n \n Close\n \n \n \n \n)\n\nexport default AccountModal\n","import React, { FC, useState } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport { makeStyles } from '@material-ui/core/styles'\nimport FileCopyIcon from '@material-ui/icons/FileCopy'\nimport Typography from '@material-ui/core/Typography'\n\nexport interface CopyTextTooltipProps {\n displayElement: React.ReactElement\n fullText: string\n}\n\nconst useStyles = makeStyles(() => ({\n tooltipTitle: {\n display: 'flex',\n alignItems: 'center',\n },\n}))\n\nconst CopyTextTooltip: FC = ({ displayElement, fullText }) => {\n const [isCopied, setIsCopied] = useState(false)\n\n const classes = useStyles()\n\n const tooltipContent = (\n
\n \n \n {fullText}\n \n
\n )\n\n return (\n Copied!
: tooltipContent}\n onClick={() => {\n navigator.clipboard.writeText(fullText)\n .then(() => { setIsCopied(true) })\n }}\n onClose={() => {\n setIsCopied(false)\n }}\n >\n {displayElement}\n \n )\n}\n\nexport default CopyTextTooltip\n","import React, { FC, useState } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Accordion from '@material-ui/core/Accordion'\nimport AccordionDetails from '@material-ui/core/AccordionDetails'\nimport AccordionSummary from '@material-ui/core/AccordionSummary'\nimport Typography from '@material-ui/core/Typography'\nimport AddIcon from '@material-ui/icons/Add'\nimport RemoveIcon from '@material-ui/icons/Remove'\nimport { colors, fonts } from '../../theme'\n\nexport interface FAQSectionProps {\n answer: string\n initiallyExpanded?: boolean\n question: string\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n boxShadow: 'none',\n color: colors.gray4,\n width: '100%',\n },\n heading: {\n display: 'flex',\n justifyContent: 'center',\n color: colors.gray5,\n fontSize: fonts.size.subtitleSmall,\n width: '100%',\n },\n headingExpanded: {\n color: colors.primary,\n },\n headingCollapsed: {\n fontWeight: fonts.weight.regular,\n },\n panelDetails: {\n display: 'flex',\n justifyContent: 'center',\n },\n answerContainer: {\n [theme.breakpoints.up('md')]: {\n maxWidth: '80%',\n },\n },\n answerText: {\n color: colors.gray5,\n },\n}))\n\nconst FAQSection: FC = ({\n className = '', initiallyExpanded, question, answer,\n}) => {\n const classes = useStyles()\n const [isExpanded, setIsExpanded] = useState(!!initiallyExpanded)\n\n const onChange = (): void => setIsExpanded(!isExpanded)\n\n return (\n \n : }\n >\n {question}\n \n \n
\n {answer}\n
\n
\n
\n )\n}\n\nexport default FAQSection\n","import React, { FC } from 'react'\nimport { FormControlLabel } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Checkbox, { CheckboxProps } from '../atoms/Checkbox'\nimport { colors } from '../../theme'\n\nexport interface LabeledCheckboxProps extends CheckboxProps {\n labelText: string\n labelClassName?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n color: colors.gray4,\n width: '100%',\n },\n}))\n\nconst LabeledCheckbox: FC = ({ labelText, labelClassName = '', ...rest }) => {\n const classes = useStyles()\n return (\n \n }\n />\n\n )\n}\n\nexport default LabeledCheckbox\n","import React, { FC } from 'react'\nimport LabeledCheckbox, { LabeledCheckboxProps } from './LabeledCheckbox'\n\nexport interface FilterCheckboxCardProps {\n className?: string\n items: LabeledCheckboxProps[]\n onClick?: (event: React.MouseEvent) => void\n}\n\nconst FilterCheckboxCard: FC = ({ className = '', onClick, items }) => (\n
\n {items.map((item: LabeledCheckboxProps, i) => (\n \n ))}\n
\n)\n\nexport default FilterCheckboxCard\n","const shortenString = (\n str: string,\n largerThan = 16,\n charsShownCount = 6,\n): string => (str.length > largerThan\n ? `${str.substr(0, charsShownCount)}...${str.substr(str.length - 4)}`\n : str)\n\nconst removeEmptySpaces = (str: string): string => str.replace(/\\s/g, '')\n\nconst maxSupportedNumber = 99999999999999\nconst minSupportedNumber = 0.000001\n\nconst validatedNumber = (num: number): number => {\n if (num > 0) {\n if (num > maxSupportedNumber) return maxSupportedNumber\n\n if (num < minSupportedNumber) return minSupportedNumber\n }\n\n if (num < 0) {\n if (num < -maxSupportedNumber) return -maxSupportedNumber\n\n if (num > -minSupportedNumber) return -minSupportedNumber\n }\n return num\n}\n\nexport {\n shortenString,\n removeEmptySpaces,\n maxSupportedNumber,\n minSupportedNumber,\n validatedNumber,\n}\n","import React, { FC } from 'react'\nimport { NavLinkProps, NavLink } from 'react-router-dom'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../theme'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FooterColumnProps {\n className?: string\n links: FooterLinkProps[]\n title: string\n}\n\nexport interface FooterLinkProps extends NavLinkProps {\n isExternal?: boolean\n title: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n },\n footerLink: {\n color: colors.gray4,\n fontWeight: fonts.weight.light,\n textDecoration: 'none',\n '&:hover': {\n fontWeight: fonts.weight.regular,\n },\n },\n footerTitle: {\n fontSize: fonts.size.subtitleBig,\n textAlign: 'center',\n },\n}))\n\nconst FooterColumn: FC = ({ title, links, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {title}\n {\n links.map((link: FooterLinkProps) => {\n const key = removeEmptySpaces(link.title)\n\n if (link.isExternal) {\n const href = (link.to || '#').toString()\n return (\n \n {link.title}\n \n )\n }\n return (\n \n {link.title}\n \n )\n })\n }\n
\n )\n}\n\nexport default FooterColumn\n","import React, { FC } from 'react'\nimport {\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n ModalTitle,\n} from '../atoms'\nimport { ModalProps } from '../atoms/modal/Modal'\n\nexport interface ModalDialogueProps extends ModalProps {\n title: string\n footer?: React.ReactElement\n}\n\nconst ModalDialogue: FC = ({\n title,\n footer,\n children,\n ...props\n}) => (\n \n \n \n {title}\n \n {children}\n {footer}\n \n \n)\n\nexport default ModalDialogue\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Input, { InputProps } from '@material-ui/core/Input'\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../theme'\n\nexport interface UnitsInputProps extends InputProps {\n handleOnChange: (event: React.ChangeEvent) => void\n handleOnBlur?: () => void\n maxValue?: number\n minValue?: number\n step?: number\n units?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n color: colors.gray4,\n display: 'flex',\n },\n input: {\n color: colors.gray4,\n paddingLeft: theme.spacing(0.1),\n textAlign: 'center',\n '&::before': {\n borderBottom: `1px solid ${colors.gray4}`,\n },\n },\n inputContainer: {\n paddingRight: '0 !important',\n },\n units: {\n color: colors.gray4,\n display: 'flex',\n fontSize: fonts.size.tiny,\n },\n unitsContainer: {\n alignSelf: 'center',\n color: colors.gray4,\n display: 'flex',\n fontSize: fonts.size.normal,\n paddingLeft: '0 !important',\n },\n}))\n\nconst UnitsInput: FC = ({\n maxValue,\n minValue,\n units,\n value,\n step = 1,\n handleOnBlur,\n handleOnChange,\n ...rest\n}) => {\n const classes = useStyles()\n\n return (\n \n \n \n \n \n \n \n {units}\n \n \n \n \n )\n}\n\nexport default UnitsInput\n","import Slider, { SliderProps } from '@material-ui/core/Slider'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport UnitsInput from './UnitsInput'\nimport { validatedNumber } from '../../utils'\nimport { fonts } from '../../theme'\n\nexport interface RangeSliderWithInputsProps extends SliderProps {\n values: {\n start: number\n end: number\n }\n unit?: string\n handleChange: ({ min, max }) => void\n className?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n width: '100%',\n },\n inputsContainer: {\n alignSelf: 'center',\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n },\n toContainer: {\n alignSelf: 'center',\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n fontWeight: fonts.weight.regular,\n },\n}))\n\nconst RangeSliderWithInputs: FC = ({\n values: {\n start: startValue, end: endValue,\n }, unit, handleChange, className, ...rest\n}) => {\n const classes = useStyles()\n\n const maxValue = rest.max || endValue\n const minValue = rest.min || startValue\n const step = rest.step || 1\n\n const handleStartInputChange = (\n event: React.ChangeEvent,\n ): void => {\n const newStartValue = validatedNumber(Number(event.target.value)) || minValue\n handleChange({ min: newStartValue, max: endValue })\n }\n\n const handleEndInputChange = (\n event: React.ChangeEvent,\n ): void => {\n const newEndValue = validatedNumber(Number(event.target.value)) || endValue\n handleChange({ min: startValue, max: newEndValue })\n }\n\n const handleSliderChange = (\n _: React.ChangeEvent<{}>, newSliderValue: number | number[],\n ): void => {\n handleChange({ min: newSliderValue[0], max: newSliderValue[1] })\n }\n\n const handleStartValueBlur = (): void => {\n if (startValue < minValue) {\n handleChange({ min: minValue, max: endValue })\n } else if (startValue > endValue) {\n handleChange({ min: endValue, max: endValue })\n }\n }\n\n const handleEndValueBlur = (): void => {\n if (endValue < startValue) {\n handleChange({ min: minValue, max: startValue })\n } else if (endValue > maxValue) {\n handleChange({ min: minValue, max: maxValue })\n }\n }\n\n const getCommonInputValues = (): {} => ({\n maxValue,\n minValue,\n step,\n units: unit,\n })\n\n return (\n
\n \n
\n \n \n to\n \n \n
\n
\n )\n}\n\nexport default RangeSliderWithInputs\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport CopyTextTooltip from './CopyTextTooltip'\nimport { shortenString } from '../../utils'\n\nexport interface ShortenTextTooltipProps {\n value: string\n maxLength?: number\n charsShownCount?: number\n}\n\nconst ShortenTextTooltip: FC = ({ value, maxLength = 20, charsShownCount }) => (\n \n {\n value.length > maxLength\n && (\n {shortenString(value, maxLength, charsShownCount || maxLength - 5)}}\n fullText={value}\n />\n )\n }\n {\n value.length <= maxLength\n && value\n }\n \n)\n\nexport default ShortenTextTooltip\n","import React, { FC } from 'react'\nimport Tabs, { TabsProps } from '@material-ui/core/Tabs'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { colors } from '../../theme'\n\nexport interface StyledTabsProps {\n value: string\n onChange: (event: React.ChangeEvent<{}>, newValue: string) => void\n}\n\nconst useStyles = makeStyles({\n indicator: {\n display: 'flex',\n justifyContent: 'center',\n backgroundColor: 'transparent',\n },\n root: {\n borderBottom: `1px solid ${colors.gray3}`,\n },\n})\n\nconst StyledTabs: FC = (props: TabsProps) => {\n const { children } = props\n const classes = useStyles()\n return (\n \n {children}\n \n )\n}\n\nexport default StyledTabs\n","import { Tab as MUITab, Tabs as MUITabs } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React, { FC } from 'react'\nimport { colors, fonts } from '../../theme'\n\nexport interface SwitchTabsProps {\n label1: string\n label2: string\n value?: 0 | 1\n onChange: (event: React.ChangeEvent<{}>, value: number) => void\n}\n\nconst a11yProps = (index: number): {} => ({\n id: `full-width-tab-${index}`,\n 'aria-controls': `full-width-tabpanel-${index}`,\n})\n\nconst useStyles = makeStyles(() => ({\n root: {\n backgroundColor: colors.white,\n minHeight: 20,\n width: '100%',\n border: `${colors.primary} solid 1px`,\n borderRadius: 50,\n overflow: 'hidden',\n },\n tabContainer: {\n minHeight: 20,\n width: '100%',\n },\n tab: {\n '&:hover': {\n color: colors.primary,\n },\n borderRadius: 50,\n color: colors.gray3,\n fontWeight: fonts.weight.light,\n maxWidth: '50%',\n minHeight: '100%',\n minWidth: '50%',\n outlineStyle: 'none',\n padding: 0,\n textTransform: 'capitalize',\n zIndex: 1,\n '&:focus': {\n outlineStyle: 'none',\n },\n },\n // shows the transition between tabs\n tabIndicator: {\n backgroundColor: colors.primary,\n borderRadius: 50,\n height: '100%',\n },\n tabSelected: {\n // the '!important' overrides the on hover functionality when it's active\n backgroundColor: `${colors.primary} !important`,\n color: `${colors.white} !important`,\n },\n}))\n\nconst SwitchTabs: FC = ({\n label1, label2, value: controlledValue, onChange,\n}) => {\n const classes = useStyles()\n\n const handleChange = (\n event: React.ChangeEvent<{}>, newValue: number,\n ): void => {\n onChange(event, newValue)\n }\n\n return (\n
\n \n \n \n \n
\n )\n}\n\nexport default SwitchTabs\n","import React, { FC } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport IconButton, { IconButtonProps } from '@material-ui/core/IconButton'\n\nexport interface TooltipIconButtonProps {\n tooltipTitle: string\n iconButtonProps: IconButtonProps\n icon: React.ReactNode\n}\n\nconst TooltipIconButton: FC = ({\n tooltipTitle,\n iconButtonProps,\n icon,\n}) => (\n \n \n \n {icon}\n \n \n\n \n)\n\nexport default TooltipIconButton\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport Box from '@material-ui/core/Box'\nimport Grid from '@material-ui/core/Grid'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../theme'\nimport ModalDialogue from './ModalDialogue'\n\nexport interface WrongNetworkModalProps {\n open: boolean\n currentNetworkName?: string\n requiredNetworkName: string\n onClose: () => void\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n boxContainer: {\n border: `1px solid ${colors.primary}`,\n padding: theme.spacing(5),\n marginTop: theme.spacing(3),\n },\n loaderContainer: {\n display: 'flex',\n justifyContent: 'center',\n },\n}))\n\nconst WrongNetworkModal: FC = ({\n open, currentNetworkName = 'Private network', requiredNetworkName, onClose,\n}) => {\n const classes = useStyles()\n return (\n \n \n \n This dApp only works on the\n {' '}\n {requiredNetworkName}\n .\n You are currently on\n {' '}\n {currentNetworkName}\n .\n \n \n \n \n \n \n Waiting for the right network...\n \n Switch networks on your wallet\n \n \n \n \n \n )\n}\nexport default WrongNetworkModal\n","import React, { FC, HTMLAttributes } from 'react'\nimport { Grid } from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport FooterColumn, { FooterColumnProps } from '../molecules/FooterColumn'\nimport { colors, fonts } from '../../theme'\nimport { logoBlackAndBlue } from '../../assets/images'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FooterProps extends HTMLAttributes {\n className?: string\n copyrightText: string\n linksColumns: FooterColumnProps[]\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n copyright: {\n display: 'flex',\n justifyContent: 'center',\n },\n copyrightContent: {\n color: colors.gray4,\n fontSize: fonts.size.tiny,\n },\n footerContainer: {\n backgroundColor: colors.gray2,\n display: 'flex',\n justifyContent: 'center',\n paddingBottom: theme.spacing(2),\n width: '100%',\n },\n footerContent: {\n marginTop: theme.spacing(2),\n maxWidth: '80%',\n width: '100%',\n },\n linksColumn: {\n marginBottom: theme.spacing(1),\n },\n logoColumn: {\n display: 'flex',\n justifyContent: 'center',\n padding: theme.spacing(5),\n },\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n paddingTop: theme.spacing(4),\n width: '100%',\n },\n tongue: {\n backgroundColor: colors.gray2,\n borderTopLeftRadius: '50% 80%',\n borderTopRightRadius: '50% 80%',\n height: theme.spacing(10),\n width: '100%',\n },\n}))\n\nconst Footer: FC = ({\n className = '', copyrightText, linksColumns, ...rest\n}) => {\n const classes = useStyles()\n\n return (\n
\n
\n
\n
\n \n \n \"logo\"\n \n {\n linksColumns.map((linkColumn: FooterColumnProps) => (\n \n \n \n ))\n }\n \n
\n \n {copyrightText}\n \n
\n
\n
\n
\n )\n}\n\nexport default Footer\n","export enum ConnectionStatus {\n LoggedIn = 0,\n LoggedOut = 1,\n WalletLocked = 2,\n WrongNetwork = 3\n}\n\nexport default ConnectionStatus\n","// A type of promise-like that resolves synchronously and supports only one observer\nexport const _Pact = /*#__PURE__*/(function() {\n\tfunction _Pact() {}\n\t_Pact.prototype.then = function(onFulfilled, onRejected) {\n\t\tconst result = new _Pact();\n\t\tconst state = this.s;\n\t\tif (state) {\n\t\t\tconst callback = state & 1 ? onFulfilled : onRejected;\n\t\t\tif (callback) {\n\t\t\t\ttry {\n\t\t\t\t\t_settle(result, 1, callback(this.v));\n\t\t\t\t} catch (e) {\n\t\t\t\t\t_settle(result, 2, e);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\tthis.o = function(_this) {\n\t\t\ttry {\n\t\t\t\tconst value = _this.v;\n\t\t\t\tif (_this.s & 1) {\n\t\t\t\t\t_settle(result, 1, onFulfilled ? onFulfilled(value) : value);\n\t\t\t\t} else if (onRejected) {\n\t\t\t\t\t_settle(result, 1, onRejected(value));\n\t\t\t\t} else {\n\t\t\t\t\t_settle(result, 2, value);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(result, 2, e);\n\t\t\t}\n\t\t};\n\t\treturn result;\n\t}\n\treturn _Pact;\n})();\n\n// Settles a pact synchronously\nexport function _settle(pact, state, value) {\n\tif (!pact.s) {\n\t\tif (value instanceof _Pact) {\n\t\t\tif (value.s) {\n\t\t\t\tif (state & 1) {\n\t\t\t\t\tstate = value.s;\n\t\t\t\t}\n\t\t\t\tvalue = value.v;\n\t\t\t} else {\n\t\t\t\tvalue.o = _settle.bind(null, pact, state);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (value && value.then) {\n\t\t\tvalue.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));\n\t\t\treturn;\n\t\t}\n\t\tpact.s = state;\n\t\tpact.v = value;\n\t\tconst observer = pact.o;\n\t\tif (observer) {\n\t\t\tobserver(pact);\n\t\t}\n\t}\n}\n\nexport function _isSettledPact(thenable) {\n\treturn thenable instanceof _Pact && thenable.s & 1;\n}\n\n// Converts argument to a function that always returns a Promise\nexport function _async(f) {\n\treturn function() {\n\t\tfor (var args = [], i = 0; i < arguments.length; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\t\ttry {\n\t\t\treturn Promise.resolve(f.apply(this, args));\n\t\t} catch(e) {\n\t\t\treturn Promise.reject(e);\n\t\t}\n\t}\n}\n\n// Awaits on a value that may or may not be a Promise (equivalent to the await keyword in ES2015, with continuations passed explicitly)\nexport function _await(value, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(value) : value;\n\t}\n\tif (!value || !value.then) {\n\t\tvalue = Promise.resolve(value);\n\t}\n\treturn then ? value.then(then) : value;\n}\n\n// Awaits on a value that may or may not be a Promise, then ignores it\nexport function _awaitIgnored(value, direct) {\n\tif (!direct) {\n\t\treturn value && value.then ? value.then(_empty) : Promise.resolve();\n\t}\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continue(value, then) {\n\treturn value && value.then ? value.then(then) : then(value);\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continueIgnored(value) {\n\tif (value && value.then) {\n\t\treturn value.then(_empty);\n\t}\n}\n\n// Asynchronously iterate through an object that has a length property, passing the index as the first argument to the callback (even as the length property changes)\nexport function _forTo(array, body, check) {\n\tvar i = -1, pact, reject;\n\tfunction _cycle(result) {\n\t\ttry {\n\t\t\twhile (++i < array.length && (!check || !check())) {\n\t\t\t\tresult = body(i);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pact) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t} else {\n\t\t\t\tpact = result;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t}\n\t}\n\t_cycle();\n\treturn pact;\n}\n\n// Asynchronously iterate through an object's properties (including properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forIn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tkeys.push(key);\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\n// Asynchronously iterate through an object's own properties (excluding properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forOwn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tif (Object.prototype.hasOwnProperty.call(target, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\nexport const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\"))) : \"@@iterator\";\n\n// Asynchronously iterate through an object's values\n// Uses for...of if the runtime supports it, otherwise iterates until length on a copy\nexport function _forOf(target, body, check) {\n\tif (typeof target[_iteratorSymbol] === \"function\") {\n\t\tvar iterator = target[_iteratorSymbol](), step, pact, reject;\n\t\tfunction _cycle(result) {\n\t\t\ttry {\n\t\t\t\twhile (!(step = iterator.next()).done && (!check || !check())) {\n\t\t\t\t\tresult = body(step.value);\n\t\t\t\t\tif (result && result.then) {\n\t\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pact) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t} else {\n\t\t\t\t\tpact = result;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t\t}\n\t\t}\n\t\t_cycle();\n\t\tif (iterator.return) {\n\t\t\tvar _fixup = function(value) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!step.done) {\n\t\t\t\t\t\titerator.return();\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (pact && pact.then) {\n\t\t\t\treturn pact.then(_fixup, function(e) {\n\t\t\t\t\tthrow _fixup(e);\n\t\t\t\t});\n\t\t\t}\n\t\t\t_fixup();\n\t\t}\n\t\treturn pact;\n\t}\n\t// No support for Symbol.iterator\n\tif (!(\"length\" in target)) {\n\t\tthrow new TypeError(\"Object is not iterable\");\n\t}\n\t// Handle live collections properly\n\tvar values = [];\n\tfor (var i = 0; i < target.length; i++) {\n\t\tvalues.push(target[i]);\n\t}\n\treturn _forTo(values, function(i) { return body(values[i]); }, check);\n}\n\nexport const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\"))) : \"@@asyncIterator\";\n\n// Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\nexport function _forAwaitOf(target, body, check) {\n\tif (typeof target[_asyncIteratorSymbol] === \"function\") {\n\t\tvar pact = new _Pact();\n\t\tvar iterator = target[_asyncIteratorSymbol]();\n\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\treturn pact;\n\t\tfunction _resumeAfterBody(result) {\n\t\t\tif (check && check()) {\n\t\t\t\treturn _settle(pact, 1, iterator.return ? iterator.return().then(function() { return result; }) : result);\n\t\t\t}\n\t\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\t}\n\t\tfunction _resumeAfterNext(step) {\n\t\t\tif (step.done) {\n\t\t\t\t_settle(pact, 1);\n\t\t\t} else {\n\t\t\t\tPromise.resolve(body(step.value)).then(_resumeAfterBody).then(void 0, _reject);\n\t\t\t}\n\t\t}\n\t\tfunction _reject(error) {\n\t\t\t_settle(pact, 2, iterator.return ? iterator.return().then(function() { return error; }) : error);\n\t\t}\n\t}\n\treturn Promise.resolve(_forOf(target, function(value) { return Promise.resolve(value).then(body); }, check));\n}\n\n// Asynchronously implement a generic for loop\nexport function _for(test, update, body) {\n\tvar stage;\n\tfor (;;) {\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t\tif (shouldContinue.then) {\n\t\t\tstage = 0;\n\t\t\tbreak;\n\t\t}\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.s;\n\t\t\t} else {\n\t\t\t\tstage = 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (update) {\n\t\t\tvar updateValue = update();\n\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\tstage = 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tvar pact = new _Pact();\n\tvar reject = _settle.bind(null, pact, 2);\n\t(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tdo {\n\t\t\tif (update) {\n\t\t\t\tupdateValue = update();\n\t\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\t\tupdateValue.then(_resumeAfterUpdate).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshouldContinue = test();\n\t\t\tif (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t}\n\t\t} while (!result || !result.then);\n\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterBody(result);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n\tfunction _resumeAfterUpdate() {\n\t\tif (shouldContinue = test()) {\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterTest(shouldContinue);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a do ... while loop\nexport function _do(body, test) {\n\tvar awaitBody;\n\tdo {\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t} else {\n\t\t\t\tawaitBody = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t} while (!shouldContinue.then);\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : shouldContinue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tfor (;;) {\n\t\t\tshouldContinue = test();\n\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t}\n\t\t\tif (!shouldContinue) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\tresult = result.v;\n\t\t\t\t} else {\n\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tdo {\n\t\t\t\tresult = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshouldContinue = test();\n\t\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t\t}\n\t\t\t\tif (!shouldContinue) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} while (!shouldContinue.then);\n\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a switch statement\nexport function _switch(discriminant, cases) {\n\tvar dispatchIndex = -1;\n\tvar awaitBody;\n\touter: {\n\t\tfor (var i = 0; i < cases.length; i++) {\n\t\t\tvar test = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvar testValue = test();\n\t\t\t\tif (testValue && testValue.then) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tif (testValue === discriminant) {\n\t\t\t\t\tdispatchIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Found the default case, set it as the pending dispatch case\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tif (dispatchIndex !== -1) {\n\t\t\tdo {\n\t\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\t\twhile (!body) {\n\t\t\t\t\tdispatchIndex++;\n\t\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t\t}\n\t\t\t\tvar result = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tawaitBody = true;\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\t\tdispatchIndex++;\n\t\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t\treturn result;\n\t\t}\n\t}\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterTest(value) {\n\t\tfor (;;) {\n\t\t\tif (value === discriminant) {\n\t\t\t\tdispatchIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (++i === cases.length) {\n\t\t\t\tif (dispatchIndex !== -1) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvalue = test();\n\t\t\t\tif (value && value.then) {\n\t\t\t\t\tvalue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tdo {\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tvar result = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tdispatchIndex++;\n\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterBody(result) {\n\t\tfor (;;) {\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tif (!fallthroughCheck || fallthroughCheck()) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdispatchIndex++;\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _call(body, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(body()) : body();\n\t}\n\ttry {\n\t\tvar result = Promise.resolve(body());\n\t\treturn then ? result.then(then) : result;\n\t} catch (e) {\n\t\treturn Promise.reject(e);\n\t}\n}\n\n// Asynchronously call a function and swallow the result\nexport function _callIgnored(body, direct) {\n\treturn _call(body, _empty, direct);\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _invoke(body, then) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(then);\n\t}\n\treturn then(result);\n}\n\n// Asynchronously call a function and swallow the result\nexport function _invokeIgnored(body) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(_empty);\n\t}\n}\n\n// Asynchronously call a function and send errors to recovery continuation\nexport function _catch(body, recover) {\n\ttry {\n\t\tvar result = body();\n\t} catch(e) {\n\t\treturn recover(e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(void 0, recover);\n\t}\n\treturn result;\n}\n\n// Asynchronously await a promise and pass the result to a finally continuation\nexport function _finallyRethrows(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer(true, e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n\t}\n\treturn finalizer(false, result);\n}\n\n// Asynchronously await a promise and invoke a finally continuation that always overrides the result\nexport function _finally(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer();\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer, finalizer);\n\t}\n\treturn finalizer();\n}\n\n// Rethrow or return a value from a finally continuation\nexport function _rethrow(thrown, value) {\n\tif (thrown)\n\t\tthrow value;\n\treturn value;\n}\n\n// Empty function to implement break and other control flow that ignores asynchronous results\nexport function _empty() {\n}\n\n// Sentinel value for early returns in generators \nexport const _earlyReturn = /*#__PURE__*/ {};\n\n// Asynchronously call a function and send errors to recovery continuation, skipping early returns\nexport function _catchInGenerator(body, recover) {\n\treturn _catch(body, function(e) {\n\t\tif (e === _earlyReturn) {\n\t\t\tthrow e;\n\t\t}\n\t\treturn recover(e);\n\t});\n}\n\n// Asynchronous generator class; accepts the entrypoint of the generator, to which it passes itself when the generator should start\nexport const _AsyncGenerator = /*#__PURE__*/(function() {\n\tfunction _AsyncGenerator(entry) {\n\t\tthis._entry = entry;\n\t\tthis._pact = null;\n\t\tthis._resolve = null;\n\t\tthis._return = null;\n\t\tthis._promise = null;\n\t}\n\n\tfunction _wrapReturnedValue(value) {\n\t\treturn { value: value, done: true };\n\t}\n\tfunction _wrapYieldedValue(value) {\n\t\treturn { value: value, done: false };\n\t}\n\n\t_AsyncGenerator.prototype._yield = function(value) {\n\t\t// Yield the value to the pending next call\n\t\tthis._resolve(value && value.then ? value.then(_wrapYieldedValue) : _wrapYieldedValue(value));\n\t\t// Return a pact for an upcoming next/return/throw call\n\t\treturn this._pact = new _Pact();\n\t};\n\t_AsyncGenerator.prototype.next = function(value) {\n\t\t// Advance the generator, starting it if it has yet to be started\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tconst _entry = _this._entry;\n\t\t\t\tif (_entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the next call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Start the generator\n\t\t\t\t_this._entry = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\tfunction returnValue(value) {\n\t\t\t\t\t_this._resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t_this._resolve = null;\n\t\t\t\t}\n\t\t\t\tvar result = _entry(_this);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tresult.then(returnValue, function(error) {\n\t\t\t\t\t\tif (error === _earlyReturn) {\n\t\t\t\t\t\t\treturnValue(_this._return);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst pact = new _Pact();\n\t\t\t\t\t\t\t_this._resolve(pact);\n\t\t\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t\t\t_this._resolve = null;\n\t\t\t\t\t\t\t_resolve(pact, 2, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturnValue(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Generator is started and a yield expression is pending, settle it\n\t\t\t\t_this._pact = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\t_settle(_pact, 1, value);\n\t\t\t}\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.return = function(value) {\n\t\t// Early return from the generator if started, otherwise abandons the generator\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the return call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return the specified value\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t}\n\t\t\t// Settle the yield expression with a rejected \"early return\" value\n\t\t\t_this._return = value;\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, _earlyReturn);\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.throw = function(error) {\n\t\t// Inject an exception into the pending yield expression\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve, reject) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the throw call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return a rejected Promise containing the error\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t\t// Settle the yield expression with the value as a rejection\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, error);\n\t\t});\n\t};\n\n\t_AsyncGenerator.prototype[_asyncIteratorSymbol] = function() {\n\t\treturn this;\n\t};\n\t\n\treturn _AsyncGenerator;\n})();\n","import Web3 from 'web3'\nimport NetworkInfo from '../models/NetworkInfo'\nimport networksData from '../data/networks.json'\nimport ProviderInfo, {\n EProvider,\n getProviderInfo,\n} from '../models/ProviderInfo'\nimport ConnectionStatus from '../models/Enums'\n\ndeclare global {\n interface Window {\n ethereum: any // FIXME: This should be properly typed as per metamask\n web3: Web3\n }\n}\n\nexport function getWeb3(\n provider: EProvider = EProvider.METAMASK,\n): Promise {\n return new Promise((resolve, reject) => {\n switch (provider) {\n // Injected Web3 wallet like MetaMask or Nifty\n case EProvider.NIFTY:\n case EProvider.METAMASK: {\n // New MetaMask\n if (window.ethereum) {\n const web3 = new Web3(window.ethereum)\n window.ethereum\n .enable()\n .then(() => resolve(web3))\n .catch(reject)\n } else if (window.web3) {\n // Older versions of MetaMask or other\n resolve(new Web3(window.web3.currentProvider))\n } else reject(new Error('No injected web3 found'))\n break\n }\n\n // Localhost\n case EProvider.LOCAL: {\n const localhostProvider = new Web3.providers.HttpProvider(\n \"'http://127.0.0.1:4444'\",\n )\n resolve(new Web3(localhostProvider))\n break\n }\n\n // Unknown & not implemented\n default: {\n reject(\n new Error(\n `Provider not implemented or unknown. Chosen provider ${provider}`,\n ),\n )\n break\n }\n }\n })\n}\n\nexport const getNetworkInfo = (\n networkId: number,\n chainId?: number,\n): NetworkInfo | undefined => networksData.find((n) => (chainId\n ? n.networkId === networkId && n.chainId === chainId\n : n.networkId === networkId)) as NetworkInfo\n\nexport const getNetworkInfoFromWeb3 = async (\n web3: Web3,\n): Promise => {\n // set networkId and chainId\n let networkId: number | undefined\n let chainId: number | undefined\n try {\n networkId = await web3.eth.net.getId()\n\n if (networkId) {\n chainId = await web3.eth.getChainId()\n }\n } catch (error) {}\n let networkInfo: NetworkInfo | undefined\n\n if (networkId) {\n try {\n networkInfo = getNetworkInfo(networkId, chainId)\n } catch (error) {}\n }\n return networkInfo\n}\n\nexport const getAvailableProviders = (): ProviderInfo[] | undefined => {\n const result: ProviderInfo[] = []\n\n if (!window.web3) return undefined\n const currentProvider = window.web3.currentProvider as any\n\n if (currentProvider.isMetaMask) {\n // Nifty is also MetaMask\n result.push(\n currentProvider.isNiftyWallet\n ? getProviderInfo(EProvider.NIFTY)\n : getProviderInfo(EProvider.METAMASK),\n )\n }\n\n if (currentProvider.isTrust) result.push(getProviderInfo(EProvider.TRUST))\n\n if (currentProvider.isGoWallet) result.push(getProviderInfo(EProvider.GO_WALLET))\n\n if (currentProvider.isAlphaWallet) result.push(getProviderInfo(EProvider.ALPHA_WALLET))\n\n if (currentProvider.isStatus) result.push(getProviderInfo(EProvider.STATUS))\n\n if (currentProvider.isToshi) result.push(getProviderInfo(EProvider.COINBASE))\n\n // eslint-disable-next-line no-underscore-dangle\n if (typeof (window as any).__CIPHER__ !== 'undefined') result.push(getProviderInfo(EProvider.CIPHER))\n\n if (currentProvider.constructor.name === 'EthereumProvider') result.push(getProviderInfo(EProvider.MIST))\n\n if (currentProvider.constructor.name === 'Web3FrameProvider') result.push(getProviderInfo(EProvider.PARITY))\n\n if (currentProvider.host && currentProvider.host.indexOf('infura') !== -1) result.push(getProviderInfo(EProvider.INFURA))\n\n if (currentProvider.host && currentProvider.host.indexOf('localhost') !== -1) result.push(getProviderInfo(EProvider.LOCAL))\n\n return result\n}\n\nexport const getConnectionStatus = (\n web3?: Web3,\n requiredNetworkId?: number,\n currentNetworkId?: number,\n account?: string,\n): ConnectionStatus => {\n if (!web3) return ConnectionStatus.LoggedOut\n\n if (currentNetworkId !== requiredNetworkId) {\n return ConnectionStatus.WrongNetwork\n }\n\n if (account) {\n return ConnectionStatus.LoggedIn\n }\n return ConnectionStatus.WalletLocked\n}\n","import React, { FC, useState, useEffect } from 'react'\nimport Web3 from 'web3'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Popover from '@material-ui/core/Popover'\nimport Typography from '@material-ui/core/Typography'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport { shortenString } from '../../utils'\nimport { Button, NetworkIndicator } from '../atoms'\nimport { colors, fonts } from '../../theme'\nimport { AccountModal, WrongNetworkModal } from '../molecules'\nimport ConnectionStatus from '../../models/Enums'\nimport { getConnectionStatus } from '../../services/Web3Service'\nimport NetworkInfo from '../../models/NetworkInfo'\n\nexport interface AccountProps {\n requiredNetworkName: string\n setProvider?: (provider: EProvider) => Promise\n web3?: Web3\n networkInfo?: NetworkInfo\n account?: string\n availableProviders?: ProviderInfo[]\n requiredNetworkId?: number\n onCorrectNetworkMessage?: string\n onNetworkMismatchMessage?: string\n noNetworkMessage?: string\n modalInitiallyOpened?: boolean\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n accountText: {\n fontSize: fonts.size.tiny,\n textAlign: 'center',\n },\n button: {\n border: `1px solid ${colors.white}`,\n '&:hover': {\n border: `1px solid ${colors.transparent}`,\n },\n },\n networkIndicator: {\n marginRight: theme.spacing(1),\n },\n rightNetwork: {\n padding: theme.spacing(2),\n },\n}))\n\nconst Account: FC = (props) => {\n const {\n web3,\n networkInfo,\n account,\n setProvider,\n availableProviders,\n requiredNetworkId,\n onCorrectNetworkMessage,\n onNetworkMismatchMessage,\n noNetworkMessage,\n requiredNetworkName,\n modalInitiallyOpened = false,\n } = props\n const classes = useStyles()\n\n const [accountModalOpen, setAccountModalOpen] = useState(modalInitiallyOpened)\n const handleAccountModalClose = (): void => setAccountModalOpen(false)\n const handleAccountModalOpen = (): void => setAccountModalOpen(true)\n const [wrongNetModalOpen, setWrongNetModalOpen] = useState(false)\n const openWrongNetModal = (): void => setWrongNetModalOpen(true)\n const closeWrongNetModal = (): void => setWrongNetModalOpen(false)\n const connectionStatus: ConnectionStatus = getConnectionStatus(web3, requiredNetworkId, networkInfo?.networkId, account)\n\n // TODO: extract popover functionallity into new component\n const [anchorEl, setAnchorEl] = React.useState(null)\n\n const popoverOpen = Boolean(anchorEl)\n const id = popoverOpen ? 'right-net-popover' : undefined\n\n const handlePopoverClose = () => {\n setAnchorEl(null)\n }\n\n useEffect(() => {\n if (connectionStatus === ConnectionStatus.WrongNetwork) {\n openWrongNetModal()\n } else {\n closeWrongNetModal()\n handlePopoverClose()\n }\n }, [connectionStatus])\n\n const accountText = (): string => {\n if (connectionStatus === ConnectionStatus.LoggedOut) return 'Connect wallet'\n\n if (connectionStatus === ConnectionStatus.WrongNetwork) return 'Wrong Network'\n\n if (account) {\n // means connectionStatus === ConnectionStatus.LoggedIn\n return shortenString(account)\n }\n return 'Unlock your wallet'\n }\n\n const onAccountClicked = (event: React.MouseEvent): void | null => {\n if (connectionStatus === ConnectionStatus.WrongNetwork) return openWrongNetModal()\n\n if (connectionStatus === ConnectionStatus.LoggedOut) return handleAccountModalOpen()\n\n if (connectionStatus === ConnectionStatus.LoggedIn) return setAnchorEl(event.currentTarget)\n return null\n }\n\n return (\n \n \n {/* TODO: extract molecule */}\n \n \n {`You are successfully connected to ${networkInfo?.name}.`}\n \n \n \n \n \n )\n}\n\nexport default Account\n","import React, { FC } from 'react'\nimport {\n AppBar, Grid, ListItemIcon, Toolbar,\n} from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { NavLink } from 'react-router-dom'\nimport Typography from '@material-ui/core/Typography'\nimport { ActionHeaderItemProps, HeaderProps, NavItemProps } from './HeaderProps'\nimport { LogoNavbar } from '../../atoms'\nimport { colors, fonts, globalConstants } from '../../../theme'\nimport { removeEmptySpaces } from '../../../utils'\n\nconst useStyles = makeStyles((theme: Theme) => ({\n activeNavlink: {\n color: `${colors.white} !important`,\n fontWeight: fonts.weight.medium,\n },\n navLink: {\n alignItems: 'center',\n color: colors.white,\n display: 'flex',\n paddingLeft: theme.spacing(5),\n paddingRight: theme.spacing(5),\n textAlign: 'center',\n textDecoration: 'none',\n '&:hover': {\n color: colors.gray5,\n textDecoration: 'none',\n },\n },\n navLinkContainer: {\n display: 'flex',\n },\n root: {\n boxShadow: 'none',\n // this height needs to be equal to the marginTop of PageTemplate\n height: theme.spacing(globalConstants.headerHeight),\n },\n}))\n\nconst HeaderDesktop: FC = ({\n hreflogo, itemsStart, itemsEnd, login,\n}) => {\n const classes = useStyles()\n const Login = login\n\n return (\n \n \n \n \n \n \n \n \n \n {\n !!itemsStart.length\n && itemsStart.map((navItem: NavItemProps) => (\n \n \n {navItem.title}\n \n \n ))\n }\n \n \n {\n !!itemsEnd?.length\n && itemsEnd.map(({ icon, ...rest }: ActionHeaderItemProps) => (\n \n {icon}\n \n ))\n }\n \n \n \n \n \n \n \n )\n}\n\nexport default HeaderDesktop\n","import React, { FC, useState } from 'react'\nimport {\n AppBar,\n Divider,\n Drawer, Toolbar,\n IconButton, List, ListItem,\n ListItemText, ListItemIcon, Grid,\n} from '@material-ui/core'\nimport { NavLink } from 'react-router-dom'\nimport MenuIcon from '@material-ui/icons/Menu'\nimport ChevronLeftIcon from '@material-ui/icons/ChevronLeft'\nimport { Theme, createStyles, makeStyles } from '@material-ui/core/styles'\nimport { ActionHeaderItemProps, HeaderProps, NavItemProps } from './HeaderProps'\nimport { colors, globalConstants } from '../../../theme'\nimport { LogoNavbar } from '../../atoms'\nimport { removeEmptySpaces } from '../../../utils'\n\nconst drawerWidth = 240\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n drawerHeader: {\n display: 'flex',\n alignItems: 'center',\n padding: theme.spacing(0, 1),\n // necessary for content to be below app bar\n ...theme.mixins.toolbar,\n justifyContent: 'flex-end',\n },\n drawerPaper: {\n width: drawerWidth,\n },\n mobileAppBar: {\n boxShadow: 'none',\n // this height needs to be equal to the marginTop of PageTemplate\n height: theme.spacing(globalConstants.headerHeight),\n transition: theme.transitions.create(['margin', 'width'], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n },\n mobileAppBarShift: {\n width: `calc(100% - ${drawerWidth}px)`,\n marginLeft: drawerWidth,\n transition: theme.transitions.create(['margin', 'width'], {\n easing: theme.transitions.easing.easeOut,\n duration: theme.transitions.duration.enteringScreen,\n }),\n },\n mobileNavLink: {\n alignItems: 'center',\n color: colors.gray4,\n display: 'flex',\n textDecoration: 'none',\n width: '100%',\n '&:hover': {\n color: colors.gray5,\n textDecoration: 'none',\n },\n },\n mobileNavLinkActive: {\n color: `${colors.primary} !important`,\n },\n}))\n\nconst HeaderMobile: FC = ({\n hreflogo, itemsStart, itemsEnd, login: Login,\n}) => {\n const classes = useStyles()\n const [open, setOpen] = useState(false)\n\n const toggleDrawer = (isOpen: boolean) => (\n event: React.KeyboardEvent | React.MouseEvent,\n ): void => {\n if (\n event.type === 'keydown'\n && ((event as React.KeyboardEvent).key === 'Tab'\n || (event as React.KeyboardEvent).key === 'Shift')\n ) {\n return\n }\n setOpen(isOpen)\n }\n\n return (\n \n \n \n {!open && (\n \n \n \n \n \n \n \n \n \n \n \n \n {\n !!itemsEnd?.length\n && itemsEnd.map(({ icon, ...rest }: ActionHeaderItemProps) => (\n \n {icon}\n \n ))\n }\n \n \n \n \n \n )}\n \n \n \n
\n \n \n \n
\n \n \n {\n !!itemsStart.length\n && itemsStart.map((headerItem: NavItemProps) => (\n \n \n \n {headerItem.icon}\n \n \n \n \n ))\n }\n \n \n
\n\n )\n}\n\nexport default HeaderMobile\n","import React, { FC } from 'react'\nimport Hidden from '@material-ui/core/Hidden'\nimport { HeaderProps } from './HeaderProps'\nimport HeaderDesktop from './HeaderDesktop'\nimport HeaderMobile from './HeaderMobile'\n\nconst Header: FC = (props) => (\n \n \n \n \n \n \n \n \n)\n\nexport default Header\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../../theme'\nimport { headerTongueImg } from '../../../assets/images'\n\nexport interface HeaderTongueProps {\n description: string\n titleLine1: string\n titleLine2: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n textContainer: {\n alignItems: 'center',\n backgroundColor: colors.primary,\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n },\n textContent: {\n color: colors.white,\n display: 'flex',\n flexDirection: 'column',\n textAlign: 'center',\n [theme.breakpoints.down('sm')]: {\n maxWidth: '90%',\n },\n [theme.breakpoints.up('md')]: {\n maxWidth: '65%',\n },\n [theme.breakpoints.up('xl')]: {\n maxWidth: '55%',\n },\n },\n titleContent: {\n marginBottom: theme.spacing(1),\n fontSize: theme.spacing(5),\n fontWeight: fonts.weight.regular,\n },\n tongueImg: {\n width: '100%',\n },\n}))\n\nconst HeaderTongue: FC = (\n { description, titleLine1, titleLine2 },\n) => {\n const classes = useStyles()\n\n return (\n \n
\n
\n \n {titleLine1}\n
\n {' '}\n {titleLine2}\n \n {description}\n
\n
\n \n
\n )\n}\n\nexport default HeaderTongue\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport FAQSection, { FAQSectionProps } from '../molecules/FAQSection'\nimport { colors } from '../../theme'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FAQPageTemplateProps {\n className?: string\n mainTitle: string\n questionsAndAnswers: FAQSectionProps[]\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n marginTop: theme.spacing(3),\n },\n container: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n [theme.breakpoints.up('md')]: {\n maxWidth: '80%',\n },\n },\n grayBackground: {\n backgroundColor: colors.gray1,\n },\n mainTitle: {\n fontSize: theme.typography.pxToRem(50),\n margin: theme.spacing(2, 0),\n },\n questionsSection: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n marginTop: theme.spacing(2),\n },\n}))\n\nconst FAQPageTemplate: FC = ({ className = '', mainTitle, questionsAndAnswers }) => {\n const classes = useStyles()\n return (\n
\n
\n {mainTitle}\n
\n {\n questionsAndAnswers.map((qAndA: FAQSectionProps, i) => (\n \n ))\n }\n
\n
\n
\n )\n}\n\nexport default FAQPageTemplate\n","import React, { FC, HTMLAttributes } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { globalConstants } from '../../theme'\n\nexport type PageTemplateProps = HTMLAttributes;\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n // as the header has fixed position, we need to match its height\n marginTop: theme.spacing(globalConstants.headerHeight),\n width: '100%',\n },\n}))\n\nconst PageTemplate: FC = ({ children, className = '', ...props }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default PageTemplate\n","import React, {\n Component, createContext, ReactNode,\n} from 'react'\nimport Web3 from 'web3'\nimport {\n getWeb3, getNetworkInfoFromWeb3, getAvailableProviders,\n} from '../services/Web3Service'\nimport NetworkInfo from '../models/NetworkInfo'\nimport ProviderInfo, { EProvider } from '../models/ProviderInfo'\n\nexport interface Web3ProviderProps {\n state: {\n provider?: EProvider\n web3?: Web3\n account?: string\n networkInfo?: NetworkInfo\n requiredNetworkId?: number\n }\n actions: {\n setProvider?: (\n provider: EProvider,\n onStateChanged?: (account?: string) => void\n ) => Promise\n onConnectedNetworkChange?: () => void\n onConnectedAccountChange?: () => void\n }\n requiredNetworkId?: number\n requiredChainId?: number\n availableProviders?: ProviderInfo[]\n}\n\nexport const defaultWeb3State: Web3ProviderState = {\n provider: undefined,\n web3: undefined,\n account: undefined,\n networkInfo: undefined,\n}\n\nexport const Web3Store = createContext({\n state: defaultWeb3State,\n actions: {\n setProvider: (): Promise => Promise.resolve(),\n onConnectedNetworkChange: (): any => 0,\n onConnectedAccountChange: (): any => 0,\n },\n requiredNetworkId: undefined,\n requiredChainId: undefined,\n})\n\ninterface Web3ProviderState {\n provider?: EProvider\n web3?: Web3\n account?: string\n networkInfo?: NetworkInfo\n}\n\nconst getAccountFromEthAccounts = (accounts: string[] | string): string | undefined => {\n let account: string\n\n if (Array.isArray(accounts)) [account] = accounts\n else account = accounts\n return account\n}\n\n/**\n * The provider will not read the account when a requiredNetworkId was provided\n * and it does not match the networkId of current networkInfo, same applies to\n * chainId. Nothing happens if the requiredNetworkId was not specified\n * @param requiredNetworkId given on the props of the provider\n * @param requiredChainId given on the props of the provider\n * @param networkInfo obtained from the wallet\n */\nconst shouldReadAccount = (\n requiredNetworkId?: number,\n requiredChainId?: number,\n networkInfo?: NetworkInfo,\n): boolean => {\n // the consumer did not provide enough information to validate the network, so we do not check\n if (!requiredNetworkId) return true\n\n if (requiredNetworkId === networkInfo?.networkId) {\n // only when chainId is provided we compare it\n if (requiredChainId) return requiredChainId === networkInfo?.chainId\n return true\n }\n return false\n}\n\nclass Web3Provider extends Component {\n private readonly requiredNetworkId?: number\n\n private readonly requiredChainId?: number\n\n private availableProviders?: ProviderInfo[]\n\n constructor(props: Web3ProviderProps) {\n super(props)\n this.state = defaultWeb3State\n this.requiredNetworkId = props.requiredNetworkId\n this.requiredChainId = props.requiredChainId\n this.onConnectedNetworkChange = props.actions.onConnectedNetworkChange\n this.onConnectedAccountChange = props.actions.onConnectedAccountChange\n this.setProvider = this.setProvider.bind(this)\n this.initialize()\n }\n\n private readonly onConnectedNetworkChange?: () => void\n\n private readonly onConnectedAccountChange?: () => void\n\n public async setProvider(provider: EProvider,\n onStateChanged?: (account?: string) => void): Promise {\n const web3 = await getWeb3(provider)\n const accounts = await web3.eth.getAccounts()\n const networkInfo = await getNetworkInfoFromWeb3(web3)\n // only validate requiredNetworkId and requiredChainId when are provided\n const shouldSetAccount = shouldReadAccount(this.requiredNetworkId, this.requiredChainId, networkInfo)\n\n const account = shouldSetAccount\n ? getAccountFromEthAccounts(accounts)\n : undefined\n\n this.setState(\n {\n web3,\n provider,\n account,\n networkInfo,\n },\n () => (onStateChanged && onStateChanged(account)),\n )\n }\n\n private initialize(): void {\n if (!window.ethereum) {\n return\n }\n this.availableProviders = getAvailableProviders()\n\n window.ethereum.autoRefreshOnNetworkChange = false\n // handle on networkChange\n window.ethereum.on('networkChanged', async (_netId) => {\n const { networkInfo } = this.state\n\n if (!networkInfo) return // wallet is not connected\n const { provider } = this.state\n const web3 = await getWeb3(provider)\n const accounts = await web3.eth.getAccounts()\n const newNetworkInfo = await getNetworkInfoFromWeb3(web3)\n\n // we do not want to set the account if we know it is the wrong network\n const shouldSetAccount = shouldReadAccount(\n this.requiredNetworkId,\n this.requiredChainId,\n newNetworkInfo,\n )\n const account = shouldSetAccount\n ? getAccountFromEthAccounts(accounts)\n : undefined\n\n this.setState(\n {\n networkInfo: newNetworkInfo,\n account,\n },\n () => this.onConnectedNetworkChange && this.onConnectedNetworkChange(),\n )\n })\n // handle on accountsChanged\n window.ethereum.on('accountsChanged', (accounts: string | string[]) => {\n const { networkInfo } = this.state\n\n if (!networkInfo) return // wallet is not connected\n // we only care about this change if it is on the right network\n // or if we can not validate the required network\n const shouldSetAccount = shouldReadAccount(\n this.requiredNetworkId, this.requiredChainId, networkInfo,\n )\n\n if (shouldSetAccount) {\n const account = getAccountFromEthAccounts(accounts)\n\n if (account) {\n this.setState({\n account,\n },\n () => this.onConnectedAccountChange\n && this.onConnectedAccountChange())\n }\n }\n })\n }\n\n public render(): ReactNode {\n const {\n provider,\n web3,\n account,\n networkInfo,\n } = this.state\n const {\n setProvider,\n onConnectedNetworkChange,\n onConnectedAccountChange,\n availableProviders,\n } = this\n\n const { children } = this.props\n\n return (\n \n {children}\n \n )\n }\n}\n\nexport default { Consumer: Web3Store.Consumer, Provider: Web3Provider }\n"],"names":["useStyles","makeStyles","block","width","noShadow","boxShadow","rounded","borderRadius","Button","className","shadow","children","rest","classes","React","MUIButton","trim","colors","black","primary","darkBlue","gray1","gray2","gray3","gray4","gray5","gray6","transparent","white","fonts","family","size","tiny","small","normal","medium","subtitleSmall","subtitleBig","weight","light","regular","bold","globalConstants","headerHeight","theme","createMuiTheme","palette","main","secondary","typography","fontFamily","button","textTransform","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","body1","fontWeight","props","overrides","MuiButton","root","MuiFormControlLabel","color","MuiSlider","rail","height","opacity","track","thumb","marginLeft","MuiTextField","createStyles","unCheckedIcon","checkedIcon","Checkbox","checked","isChecked","setIsChecked","useState","handleChange","event","newChecked","onChange","MUICheckbox","CheckBoxSharp","icon","CheckBoxOutlineBlankSharp","require","EProvider","getProviderInfo","eProvider","METAMASK","name","iconImg","metaMaskIconImg","NIFTY","niftyIconImg","LEDGER","TREZOR","TRUST","GO_WALLET","ALPHA_WALLET","STATUS","COINBASE","MIST","PARITY","INFURA","LOCAL","Error","padding","margin","content","display","alignItems","maxHeight","spacing","justifyContent","imageWrapper","marginRight","LoginOption","onClick","providerInfo","providerContent","src","alt","handleOnClick","window","open","variant","Tooltip","arrow","title","Logo","logoFullWhite","LogoNavbar","fontSize","pxToRem","selected","borderBottom","StyledNavTab","Tab","component","NavLink","disableRipple","defaultonCorrectNetworkMessage","deaulftonNetworkMismatchMessage","defaultNoNetworkMessage","NetworkStatus","getNetworkStatus","currentNetworkId","requiredNetworkId","NO_NETWORK","CORRECT_NETWORK","NETWORK_MISSMATCH","NetworkIndicator","iconClassName","onCorrectNetworkMessage","onNetworkMismatchMessage","noNetworkMessage","networkStatus","iconPerNetworkStatus","Map","set","WarningIcon","style","yellow","ErrorIcon","CheckCircleOutlineOutlinedIcon","green","get","paper","backgroundColor","background","border","shadows","left","minWidth","position","top","transform","Modal","MUIModal","ModalHeader","ModalTitle","Typography","borderTop","paddingTop","ModalFooter","ModalBody","overlay","zIndex","spinner","animation","WithSpinner","WrappedComponent","Spinner","isLoading","logoBlueIcon","heading","accordionSummary","Accordion","expanded","id","isExpanded","setIsExpanded","MUIAccordion","AccordionSummary","expandIcon","ExpandMoreIcon","AccordionDetails","AccountModal","setProvider","availableProviders","onClose","onProviderSet","Fragment","length","map","key","tooltipTitle","CopyTextTooltip","displayElement","fullText","isCopied","setIsCopied","tooltipContent","FileCopyIcon","interactive","navigator","clipboard","writeText","then","headingExpanded","headingCollapsed","panelDetails","answerContainer","breakpoints","up","maxWidth","answerText","FAQSection","initiallyExpanded","question","answer","RemoveIcon","AddIcon","LabeledCheckbox","labelText","labelClassName","FormControlLabel","label","control","FilterCheckboxCard","items","item","i","shortenString","str","largerThan","charsShownCount","substr","removeEmptySpaces","replace","maxSupportedNumber","minSupportedNumber","validatedNumber","num","flexDirection","footerLink","textDecoration","footerTitle","textAlign","FooterColumn","links","link","isExternal","href","to","toString","target","ModalDialogue","footer","input","paddingLeft","inputContainer","paddingRight","units","unitsContainer","alignSelf","UnitsInput","maxValue","minValue","value","step","handleOnBlur","handleOnChange","Grid","container","xs","Input","onBlur","type","fullWidth","inputProps","min","max","inputsContainer","toContainer","RangeSliderWithInputs","values","start","startValue","end","endValue","unit","handleStartInputChange","newStartValue","Number","handleEndInputChange","newEndValue","handleSliderChange","_","newSliderValue","handleStartValueBlur","handleEndValueBlur","getCommonInputValues","Slider","ShortenTextTooltip","maxLength","indicator","StyledTabs","Tabs","a11yProps","index","minHeight","overflow","tabContainer","tab","outlineStyle","tabIndicator","tabSelected","SwitchTabs","label1","label2","controlledValue","newValue","MUITabs","TabIndicatorProps","MUITab","TooltipIconButton","iconButtonProps","IconButton","boxContainer","marginTop","loaderContainer","WrongNetworkModal","currentNetworkName","requiredNetworkName","gutterBottom","align","Box","sm","CircularProgress","copyright","copyrightContent","footerContainer","paddingBottom","footerContent","linksColumn","marginBottom","logoColumn","tongue","borderTopLeftRadius","borderTopRightRadius","Footer","copyrightText","linksColumns","direction","md","lg","logoBlackAndBlue","linkColumn","ConnectionStatus","getWeb3","provider","Promise","resolve","reject","ethereum","web3","Web3","enable","catch","currentProvider","localhostProvider","providers","HttpProvider","getNetworkInfo","networkId","chainId","networksData","find","n","getNetworkInfoFromWeb3","networkInfo","error","eth","net","getId","getChainId","getAvailableProviders","result","undefined","isMetaMask","push","isNiftyWallet","isTrust","isGoWallet","isAlphaWallet","isStatus","isToshi","__CIPHER__","CIPHER","constructor","host","indexOf","getConnectionStatus","account","LoggedOut","WrongNetwork","LoggedIn","WalletLocked","accountText","networkIndicator","rightNetwork","Account","modalInitiallyOpened","accountModalOpen","setAccountModalOpen","handleAccountModalClose","handleAccountModalOpen","wrongNetModalOpen","setWrongNetModalOpen","openWrongNetModal","closeWrongNetModal","connectionStatus","anchorEl","setAnchorEl","popoverOpen","Boolean","handlePopoverClose","useEffect","onAccountClicked","currentTarget","Popover","anchorOrigin","vertical","horizontal","transformOrigin","activeNavlink","navLink","navLinkContainer","HeaderDesktop","hreflogo","itemsStart","itemsEnd","login","Login","AppBar","Toolbar","justify","navItem","activeClassName","alignContent","ListItemIcon","drawerWidth","drawerHeader","mixins","toolbar","drawerPaper","mobileAppBar","transition","transitions","create","easing","sharp","duration","leavingScreen","mobileAppBarShift","easeOut","enteringScreen","mobileNavLink","mobileNavLinkActive","HeaderMobile","setOpen","toggleDrawer","isOpen","role","onKeyDown","MenuIcon","Drawer","anchor","ChevronLeftIcon","Divider","List","headerItem","ListItem","ListItemText","Header","Hidden","smDown","mdUp","textContainer","textContent","down","titleContent","tongueImg","HeaderTongue","description","titleLine1","titleLine2","headerTongueImg","grayBackground","mainTitle","questionsSection","FAQPageTemplate","questionsAndAnswers","qAndA","PageTemplate","defaultWeb3State","Web3Store","createContext","state","actions","onConnectedNetworkChange","onConnectedAccountChange","requiredChainId","getAccountFromEthAccounts","accounts","Array","isArray","shouldReadAccount","Web3Provider","Component","bind","initialize","onStateChanged","getAccounts","shouldSetAccount","setState","autoRefreshOnNetworkChange","on","_netId","newNetworkInfo","render","Provider","Consumer"],"mappings":"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,OAAO,MAAM,CAAC;AACf,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"} \ No newline at end of file diff --git a/dist/index.modern.js b/dist/index.modern.js new file mode 100644 index 00000000..bb25aca6 --- /dev/null +++ b/dist/index.modern.js @@ -0,0 +1,3331 @@ +import React__default, { useState, useEffect, createContext, Component } from 'react'; +import { Button as Button$1, makeStyles as makeStyles$1, createStyles, Checkbox as Checkbox$1, Tooltip, Modal as Modal$1, Accordion as Accordion$1, FormControlLabel, Tabs as Tabs$1, Tab as Tab$1, Grid as Grid$1, AppBar, Toolbar, ListItemIcon, IconButton as IconButton$1, Drawer, Divider, List, ListItem, ListItemText } from '@material-ui/core'; +import { makeStyles, createMuiTheme, createStyles as createStyles$1 } from '@material-ui/core/styles'; +import { CheckBoxSharp, CheckBoxOutlineBlankSharp } from '@material-ui/icons'; +import Tab from '@material-ui/core/Tab'; +import { NavLink } from 'react-router-dom'; +import Tooltip$1 from '@material-ui/core/Tooltip'; +import CheckCircleOutlineOutlinedIcon from '@material-ui/icons/CheckCircleOutlineOutlined'; +import ErrorIcon from '@material-ui/icons/Error'; +import WarningIcon from '@material-ui/icons/Warning'; +import { yellow, green } from '@material-ui/core/colors'; +import Typography from '@material-ui/core/Typography'; +import AccordionDetails from '@material-ui/core/AccordionDetails'; +import AccordionSummary from '@material-ui/core/AccordionSummary'; +import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; +import FileCopyIcon from '@material-ui/icons/FileCopy'; +import Accordion$2 from '@material-ui/core/Accordion'; +import AddIcon from '@material-ui/icons/Add'; +import RemoveIcon from '@material-ui/icons/Remove'; +import Slider from '@material-ui/core/Slider'; +import Input from '@material-ui/core/Input'; +import Grid from '@material-ui/core/Grid'; +import Tabs from '@material-ui/core/Tabs'; +import IconButton from '@material-ui/core/IconButton'; +import Box from '@material-ui/core/Box'; +import CircularProgress from '@material-ui/core/CircularProgress'; +import Popover from '@material-ui/core/Popover'; +import Web3 from 'web3'; +import Hidden from '@material-ui/core/Hidden'; +import MenuIcon from '@material-ui/icons/Menu'; +import ChevronLeftIcon from '@material-ui/icons/ChevronLeft'; + +const useStyles = makeStyles(() => ({ + block: { + width: '100%' + }, + noShadow: { + boxShadow: 'none' + }, + rounded: { + borderRadius: 50 + } +})); + +const Button = ({ + className = '', + block, + shadow, + rounded, + children, + ...rest +}) => { + const classes = useStyles(); + return React__default.createElement(Button$1, Object.assign({ + className: `${rounded ? classes.rounded : ''} + ${shadow ? '' : classes.noShadow} + ${block ? classes.block : ''} ${className}`.trim() + }, rest), children); +}; + +const colors = { + black: '#000000', + primary: '#008FF7', + darkBlue: '#197DC6', + gray1: '#F8F7F7', + gray2: '#E5E5E5', + gray3: '#C4C4C4', + gray4: '#919191', + gray5: '#4D4C4C', + gray6: '#15171B', + transparent: '#FFFFFF00', + white: '#FFFFFF' +}; +const fonts = { + family: 'Rubik', + size: { + tiny: 10, + small: 12, + normal: 14, + medium: 16, + subtitleSmall: 18, + subtitleBig: 22 + }, + weight: { + light: 300, + regular: 400, + medium: 500, + bold: 700 + } +}; +const globalConstants = { + headerHeight: 8 +}; +const theme = createMuiTheme({ + palette: { + primary: { + main: colors.primary + }, + secondary: { + main: colors.gray4 + } + }, + typography: { + fontFamily: fonts.family, + button: { + textTransform: 'none' + }, + fontWeightLight: fonts.weight.light, + fontWeightRegular: fonts.weight.regular, + fontWeightMedium: fonts.weight.medium, + fontWeightBold: fonts.weight.bold, + body1: { + fontWeight: fonts.weight.light + } + }, + props: {}, + overrides: { + MuiButton: { + root: { + fontWeight: fonts.weight.light + } + }, + MuiFormControlLabel: { + root: { + color: colors.gray3 + } + }, + MuiSlider: { + rail: { + color: colors.gray3, + height: 4, + opacity: 1 + }, + root: { + width: '100%', + color: colors.primary, + height: 4 + }, + track: { + height: 4 + }, + thumb: { + marginLeft: -4, + height: 14, + width: 14 + } + }, + MuiTextField: { + root: { + color: colors.gray3, + '&:hover': { + color: colors.gray2 + } + } + } + } +}); + +const useStyles$1 = makeStyles$1(() => createStyles({ + unCheckedIcon: { + color: colors.gray4 + }, + checkedIcon: { + color: colors.primary + } +})); + +const Checkbox = props => { + const classes = useStyles$1(); + const { + checked + } = props; + const [isChecked, setIsChecked] = useState(!!checked); + + const handleChange = (event, newChecked) => { + setIsChecked(newChecked); + const { + onChange + } = props; + if (onChange) onChange(event, newChecked); + }; + + return React__default.createElement(Checkbox$1, Object.assign({ + checkedIcon: React__default.createElement(CheckBoxSharp, { + className: classes.checkedIcon + }), + icon: React__default.createElement(CheckBoxOutlineBlankSharp, { + className: classes.unCheckedIcon + }) + }, props, { + checked: isChecked, + onChange: handleChange + })); +}; + +var doneThumbsUp = require("./doneThumbsUp~bbkTwQsx.svg"); + +var footerTongue = require("./footerTongue~bbJNSCWG.svg"); + +var headerTongueImg = require("./headerTongue~VLlRBGMc.svg"); + +var tickWide = require("./tickWide~bmvsBAER.svg"); + +var metaMaskIconImg = require("./metaMask~bnTqJLxK.svg"); + +var nameService = require("./nameService~UWbtQqmT.svg"); + +var niftyIconImg = require("./nifty~RMIWdZeg.png"); + +var rifCom = require("./rifCom~udwpaCym.png"); + +var rifDir = require("./rifDir~bottaDNJ.png"); + +var rifGat = require("./rifGat~balFpEzC.png"); + +var rifMar = require("./rifMar~IDqKMWpK.png"); + +var rifPay = require("./rifPay~bdtOAceT.png"); + +var rifSto = require("./rifSto~fMRetflo.png"); + +var storage = require("./storage~fCGkZtHN.svg"); + +var logoBlackAndBlue = require("./logoBlackAndBlue~bjZFbjOq.svg"); + +var logoBlueIcon = require("./logoBlueIcon~qRLrrgXR.svg"); + +var logoFullWhite = require("./logoFullWhite~lLumzPXG.svg"); + +var rskLogo = require("./rskLogo~bdMEZSPk.svg"); + +var EProvider; + +(function (EProvider) { + EProvider["METAMASK"] = "Metamask"; + EProvider["NIFTY"] = "Nifty"; + EProvider["LEDGER"] = "Ledger"; + EProvider["TREZOR"] = "Trezor"; + EProvider["TRUST"] = "Trust"; + EProvider["LOCAL"] = "Localhost"; + EProvider["GO_WALLET"] = "GoWallet"; + EProvider["ALPHA_WALLET"] = "AlphaWallet"; + EProvider["STATUS"] = "status"; + EProvider["CIPHER"] = "cipher"; + EProvider["COINBASE"] = "coinbase"; + EProvider["MIST"] = "mist"; + EProvider["PARITY"] = "parity"; + EProvider["INFURA"] = "infura"; +})(EProvider || (EProvider = {})); + +const getProviderInfo = eProvider => { + switch (eProvider) { + case EProvider.METAMASK: + return { + name: 'MetaMask', + eProvider, + iconImg: metaMaskIconImg + }; + + case EProvider.NIFTY: + return { + name: 'Nifty', + eProvider, + iconImg: niftyIconImg + }; + + case EProvider.LEDGER: + return { + name: 'Ledger', + eProvider + }; + + case EProvider.TREZOR: + return { + name: 'Trezor', + eProvider + }; + + case EProvider.TRUST: + return { + name: 'Trust', + eProvider + }; + + case EProvider.GO_WALLET: + return { + name: 'Go Wallet', + eProvider + }; + + case EProvider.ALPHA_WALLET: + return { + name: 'Alpha Wallet', + eProvider + }; + + case EProvider.STATUS: + return { + name: 'Status', + eProvider + }; + + case EProvider.COINBASE: + return { + name: 'Coinbase', + eProvider + }; + + case EProvider.MIST: + return { + name: 'Mist', + eProvider + }; + + case EProvider.PARITY: + return { + name: 'Parity', + eProvider + }; + + case EProvider.INFURA: + return { + name: 'Infura', + eProvider + }; + + case EProvider.LOCAL: + return { + name: 'Localhost', + eProvider + }; + + default: + { + throw new Error(`EProvider not implemented or unknown. Chosen provider ${eProvider}`); + } + } +}; + +const useStyles$2 = makeStyles$1(theme => ({ + root: { + padding: 5, + margin: 5, + width: '100%' + }, + content: { + display: 'flex', + alignItems: 'center', + width: '100%', + maxHeight: theme.spacing(5), + justifyContent: 'center' + }, + imageWrapper: { + maxHeight: theme.spacing(4), + marginRight: theme.spacing(2) + } +})); + +const LoginOption = ({ + className = '', + onClick, + providerInfo, + ...rest +}) => { + const classes = useStyles$2(); + const providerContent = React__default.createElement("div", { + className: classes.content + }, (providerInfo === null || providerInfo === void 0 ? void 0 : providerInfo.iconImg) && React__default.createElement("img", { + className: classes.imageWrapper, + src: providerInfo === null || providerInfo === void 0 ? void 0 : providerInfo.iconImg, + alt: `${providerInfo === null || providerInfo === void 0 ? void 0 : providerInfo.name} icon` + }), providerInfo === null || providerInfo === void 0 ? void 0 : providerInfo.name); + + const handleOnClick = () => { + if (onClick) { + return onClick(); + } + + return window.open('https://www.poa.network/for-users/nifty-wallet/getting-started', '_blank'); + }; + + return React__default.createElement(Button, Object.assign({ + className: `${classes.root} ${className}`, + block: true, + rounded: true, + variant: "outlined", + color: "primary", + onClick: handleOnClick + }, rest), !!providerInfo && providerInfo.eProvider === EProvider.NIFTY && React__default.createElement(Tooltip, { + arrow: true, + title: "Please, make sure you only have one browser wallet enabled." + }, providerContent), !!providerInfo && providerInfo.eProvider !== EProvider.NIFTY && providerContent, !providerInfo && React__default.createElement("div", { + className: classes.content + }, React__default.createElement("img", { + className: classes.imageWrapper, + src: niftyIconImg, + alt: "Nifty wallet icon" + }), "Install Nifty wallet")); +}; + +const Logo = ({ + alt = 'RIF OS logo', + ...rest +}) => React__default.createElement("img", Object.assign({ + src: logoFullWhite, + alt: alt +}, rest)); + +const LogoNavbar = ({ + alt = 'navbar logo', + height = '44px', + ...rest +}) => React__default.createElement("img", Object.assign({ + src: logoFullWhite, + alt: alt, + height: height +}, rest)); + +const useStyles$3 = makeStyles(theme => ({ + root: { + textTransform: 'none', + color: colors.gray5, + fontWeight: theme.typography.fontWeightRegular, + fontSize: theme.typography.pxToRem(15), + marginRight: theme.spacing(1), + '&:focus': { + opacity: 1 + } + }, + selected: { + fontWeight: theme.typography.fontWeightMedium, + borderBottom: '2px solid #000000' + } +})); + +const StyledNavTab = props => { + const classes = useStyles$3(); + return React__default.createElement(Tab, Object.assign({ + classes: classes, + component: NavLink, + disableRipple: true + }, props)); +}; + +const defaultonCorrectNetworkMessage = 'You are on the right network'; +const deaulftonNetworkMismatchMessage = 'You are on the wrong network'; +const defaultNoNetworkMessage = 'You are not connected to any network'; +var NetworkStatus; + +(function (NetworkStatus) { + NetworkStatus[NetworkStatus["NO_NETWORK"] = 1] = "NO_NETWORK"; + NetworkStatus[NetworkStatus["NETWORK_MISSMATCH"] = 2] = "NETWORK_MISSMATCH"; + NetworkStatus[NetworkStatus["CORRECT_NETWORK"] = 3] = "CORRECT_NETWORK"; +})(NetworkStatus || (NetworkStatus = {})); + +const getNetworkStatus = (currentNetworkId, requiredNetworkId) => { + if (!currentNetworkId) return NetworkStatus.NO_NETWORK; + if (currentNetworkId === requiredNetworkId) return NetworkStatus.CORRECT_NETWORK; + return NetworkStatus.NETWORK_MISSMATCH; +}; + +const NetworkIndicator = ({ + iconClassName = '', + currentNetworkId, + requiredNetworkId, + onCorrectNetworkMessage, + onNetworkMismatchMessage, + noNetworkMessage +}) => { + const networkStatus = getNetworkStatus(currentNetworkId, requiredNetworkId); + const iconPerNetworkStatus = new Map(); + iconPerNetworkStatus.set(NetworkStatus.NO_NETWORK, React__default.createElement(Tooltip$1, { + title: noNetworkMessage || defaultNoNetworkMessage + }, React__default.createElement(WarningIcon, { + className: iconClassName, + style: { + color: yellow[800] + } + }))); + iconPerNetworkStatus.set(NetworkStatus.NETWORK_MISSMATCH, React__default.createElement(Tooltip$1, { + title: onNetworkMismatchMessage || deaulftonNetworkMismatchMessage + }, React__default.createElement(ErrorIcon, { + className: iconClassName, + color: "error" + }))); + iconPerNetworkStatus.set(NetworkStatus.CORRECT_NETWORK, React__default.createElement(Tooltip$1, { + title: onCorrectNetworkMessage || defaultonCorrectNetworkMessage + }, React__default.createElement(CheckCircleOutlineOutlinedIcon, { + className: iconClassName, + style: { + color: green[300] + } + }))); + return iconPerNetworkStatus.get(networkStatus); +}; + +const useStyles$4 = makeStyles(theme => ({ + paper: { + backgroundColor: theme.palette.background.paper, + border: `2px solid ${colors.primary}`, + boxShadow: theme.shadows[5], + left: '50%', + minWidth: 400, + padding: theme.spacing(2, 4, 3), + position: 'absolute', + top: '50%', + transform: 'translate(-50%, -50%)' + } +})); + +const Modal = ({ + children, + ...rest +}) => { + const classes = useStyles$4(); + return React__default.createElement(Modal$1, Object.assign({}, rest), React__default.createElement("div", { + className: classes.paper + }, children)); +}; + +const useStyles$5 = makeStyles(() => ({ + root: { + borderBottom: `1px solid ${colors.gray2}`, + color: colors.primary, + display: 'flex', + justifyContent: 'center', + width: '100%' + } +})); + +const ModalHeader = ({ + children, + className = '' +}) => { + const classes = useStyles$5(); + return React__default.createElement("div", { + className: `${classes.root} ${className}`.trim() + }, children); +}; + +const ModalTitle = ({ + children, + ...rest +}) => React__default.createElement(Typography, Object.assign({ + variant: "h5" +}, rest), children); + +const useStyles$6 = makeStyles(theme => ({ + root: { + borderTop: `1px solid ${colors.gray2}`, + display: 'flex', + justifyContent: 'center', + paddingTop: theme.spacing(1), + width: '100%' + } +})); + +const ModalFooter = ({ + children, + className = '' +}) => { + const classes = useStyles$6(); + return React__default.createElement("div", { + className: `${classes.root} ${className}`.trim() + }, children); +}; + +const useStyles$7 = makeStyles(theme => ({ + root: { + padding: theme.spacing(3, 0), + width: '100%' + } +})); + +const ModalBody = ({ + children, + className = '' +}) => { + const classes = useStyles$7(); + return React__default.createElement("div", { + className: `${classes.root} ${className}`.trim() + }, children); +}; + +const useStyles$8 = makeStyles(() => ({ + '@keyframes spin': { + '0%': { + transform: 'rotate(0deg)' + }, + '100%': { + transform: 'rotate(360deg)' + } + }, + root: { + position: 'relative' + }, + overlay: { + position: 'absolute', + zIndex: 2, + height: '100%', + width: '100%', + display: 'flex', + justifyContent: 'center', + alignItems: 'center', + background: '#FFFFFF55' + }, + spinner: { + display: 'inline-block', + zIndex: 3, + width: '50px', + height: '50px', + border: 'none', + animation: '$spin 2s ease-in-out infinite' + } +})); + +const WithSpinner = WrappedComponent => { + const Spinner = ({ + isLoading, + ...props + }) => { + const classes = useStyles$8(); + return React__default.createElement("div", { + className: classes.root + }, isLoading && React__default.createElement("div", { + className: classes.overlay + }, React__default.createElement("img", { + className: classes.spinner, + src: logoBlueIcon, + alt: "logo" + })), React__default.createElement(WrappedComponent, Object.assign({}, props))); + }; + + return Spinner; +}; + +const useStyles$9 = makeStyles(theme => createStyles$1({ + root: { + boxShadow: 'none', + color: colors.gray4, + width: '100%' + }, + heading: { + color: colors.gray4, + fontSize: theme.typography.pxToRem(15), + fontWeight: theme.typography.fontWeightRegular, + width: '100%' + }, + accordionSummary: { + borderBottom: `1px solid ${colors.gray2}` + } +})); + +const Accordion = ({ + children, + expanded, + id, + title +}) => { + const classes = useStyles$9(); + const [isExpanded, setIsExpanded] = useState(!!expanded); + + const onChange = () => setIsExpanded(!isExpanded); + + return React__default.createElement(Accordion$1, { + className: classes.root, + expanded: isExpanded, + onChange: onChange + }, React__default.createElement(AccordionSummary, { + className: classes.accordionSummary, + expandIcon: React__default.createElement(ExpandMoreIcon, null), + "aria-controls": `panel-${id}-content`, + id: id + }, React__default.createElement(Typography, { + className: classes.heading + }, title)), React__default.createElement(AccordionDetails, null, children)); +}; + +const AccountModal = ({ + setProvider, + availableProviders, + open, + onClose, + onProviderSet +}) => React__default.createElement(Modal, { + open: open, + onClose: onClose, + "aria-labelledby": "account-modal-title", + "aria-describedby": "account-modal-description" +}, React__default.createElement(React__default.Fragment, null, React__default.createElement(ModalHeader, null, React__default.createElement(ModalTitle, null, "Connect a wallet to get started")), React__default.createElement(ModalBody, null, availableProviders && availableProviders.length && availableProviders.map(providerInfo => React__default.createElement(LoginOption, { + providerInfo: providerInfo, + key: providerInfo.eProvider, + onClick: function () { + try { + const _temp = function () { + if (setProvider) return Promise.resolve(setProvider(providerInfo.eProvider, onProviderSet)).then(function () {}); + }(); + + return Promise.resolve(_temp && _temp.then ? _temp.then(function () {}) : void 0); + } catch (e) { + return Promise.reject(e); + } + } +})), !availableProviders && React__default.createElement(LoginOption, null)), React__default.createElement(ModalFooter, null, React__default.createElement(Button, { + variant: "outlined", + color: "secondary", + block: true, + onClick: onClose +}, "Close")))); + +const useStyles$a = makeStyles(() => ({ + tooltipTitle: { + display: 'flex', + alignItems: 'center' + } +})); + +const CopyTextTooltip = ({ + displayElement, + fullText +}) => { + const [isCopied, setIsCopied] = useState(false); + const classes = useStyles$a(); + const tooltipContent = React__default.createElement("div", { + className: classes.tooltipTitle + }, React__default.createElement(FileCopyIcon, null), React__default.createElement(Typography, { + variant: "body2" + }, fullText)); + return React__default.createElement(Tooltip$1, { + interactive: true, + title: isCopied ? React__default.createElement(Typography, { + variant: "body2" + }, "Copied!") : tooltipContent, + onClick: () => { + navigator.clipboard.writeText(fullText).then(() => { + setIsCopied(true); + }); + }, + onClose: () => { + setIsCopied(false); + } + }, displayElement); +}; + +const useStyles$b = makeStyles(theme => ({ + root: { + boxShadow: 'none', + color: colors.gray4, + width: '100%' + }, + heading: { + display: 'flex', + justifyContent: 'center', + color: colors.gray5, + fontSize: fonts.size.subtitleSmall, + width: '100%' + }, + headingExpanded: { + color: colors.primary + }, + headingCollapsed: { + fontWeight: fonts.weight.regular + }, + panelDetails: { + display: 'flex', + justifyContent: 'center' + }, + answerContainer: { + [theme.breakpoints.up('md')]: { + maxWidth: '80%' + } + }, + answerText: { + color: colors.gray5 + } +})); + +const FAQSection = ({ + className = '', + initiallyExpanded, + question, + answer +}) => { + const classes = useStyles$b(); + const [isExpanded, setIsExpanded] = useState(!!initiallyExpanded); + + const onChange = () => setIsExpanded(!isExpanded); + + return React__default.createElement(Accordion$2, { + className: `${classes.root} ${className}`.trim(), + expanded: isExpanded, + onChange: onChange + }, React__default.createElement(AccordionSummary, { + expandIcon: isExpanded ? React__default.createElement(RemoveIcon, null) : React__default.createElement(AddIcon, null) + }, React__default.createElement(Typography, { + className: `${classes.heading} ${isExpanded ? classes.headingExpanded : classes.headingCollapsed}`.trim() + }, question)), React__default.createElement(AccordionDetails, { + className: classes.panelDetails + }, React__default.createElement("div", { + className: classes.answerContainer + }, React__default.createElement(Typography, { + className: classes.answerText + }, answer)))); +}; + +const useStyles$c = makeStyles(() => ({ + root: { + color: colors.gray4, + width: '100%' + } +})); + +const LabeledCheckbox = ({ + labelText, + labelClassName = '', + ...rest +}) => { + const classes = useStyles$c(); + return React__default.createElement(FormControlLabel, { + className: `${classes.root} ${labelClassName.trim()}`, + label: labelText, + control: React__default.createElement(Checkbox, Object.assign({}, rest)) + }); +}; + +const FilterCheckboxCard = ({ + className = '', + onClick, + items +}) => React__default.createElement("div", { + className: className +}, items.map((item, i) => React__default.createElement(LabeledCheckbox, Object.assign({ + onClick: onClick, + key: `labeledCheckbox-${item.id}` || `labeledCheckbox-${i}-${className}`.trim(), + labelClassName: item.labelClassName +}, item)))); + +var shortenString = function shortenString(str, largerThan, charsShownCount) { + if (largerThan === void 0) { + largerThan = 16; + } + + if (charsShownCount === void 0) { + charsShownCount = 6; + } + + return str.length > largerThan ? str.substr(0, charsShownCount) + "..." + str.substr(str.length - 4) : str; +}; + +var removeEmptySpaces = function removeEmptySpaces(str) { + return str.replace(/\s/g, ''); +}; + +var maxSupportedNumber = 99999999999999; +var minSupportedNumber = 0.000001; + +var validatedNumber = function validatedNumber(num) { + if (num > 0) { + if (num > maxSupportedNumber) return maxSupportedNumber; + if (num < minSupportedNumber) return minSupportedNumber; + } + + if (num < 0) { + if (num < -maxSupportedNumber) return -maxSupportedNumber; + if (num > -minSupportedNumber) return -minSupportedNumber; + } + + return num; +}; + +const useStyles$d = makeStyles(() => ({ + root: { + alignItems: 'center', + display: 'flex', + flexDirection: 'column' + }, + footerLink: { + color: colors.gray4, + fontWeight: fonts.weight.light, + textDecoration: 'none', + '&:hover': { + fontWeight: fonts.weight.regular + } + }, + footerTitle: { + fontSize: fonts.size.subtitleBig, + textAlign: 'center' + } +})); + +const FooterColumn = ({ + title, + links, + className = '' +}) => { + const classes = useStyles$d(); + return React__default.createElement("div", { + className: `${classes.root} ${className}`.trim() + }, React__default.createElement(Typography, { + className: classes.footerTitle, + variant: "subtitle1", + color: "primary" + }, title), links.map(link => { + const key = removeEmptySpaces(link.title); + + if (link.isExternal) { + const href = (link.to || '#').toString(); + return React__default.createElement("a", { + className: classes.footerLink, + target: link.target, + color: "secondary", + key: key, + href: href + }, link.title); + } + + return React__default.createElement(NavLink, { + className: classes.footerLink, + target: link.target, + color: "secondary", + key: key, + to: link.to + }, link.title); + })); +}; + +const ModalDialogue = ({ + title, + footer, + children, + ...props +}) => React__default.createElement(Modal, Object.assign({}, props), React__default.createElement(React__default.Fragment, null, React__default.createElement(ModalHeader, null, React__default.createElement(ModalTitle, null, title)), React__default.createElement(ModalBody, null, children), React__default.createElement(ModalFooter, null, footer))); + +const useStyles$e = makeStyles(theme => ({ + root: { + color: colors.gray4, + display: 'flex' + }, + input: { + color: colors.gray4, + paddingLeft: theme.spacing(0.1), + textAlign: 'center', + '&::before': { + borderBottom: `1px solid ${colors.gray4}` + } + }, + inputContainer: { + paddingRight: '0 !important' + }, + units: { + color: colors.gray4, + display: 'flex', + fontSize: fonts.size.tiny + }, + unitsContainer: { + alignSelf: 'center', + color: colors.gray4, + display: 'flex', + fontSize: fonts.size.normal, + paddingLeft: '0 !important' + } +})); + +const UnitsInput = ({ + maxValue, + minValue, + units, + value, + step = 1, + handleOnBlur, + handleOnChange, + ...rest +}) => { + const classes = useStyles$e(); + return React__default.createElement(React__default.Fragment, null, React__default.createElement(Grid, { + className: classes.root, + container: true, + spacing: 1 + }, React__default.createElement(Grid, { + className: classes.inputContainer, + item: true, + xs: 8 + }, React__default.createElement(Input, Object.assign({ + className: classes.input, + classes: { + input: classes.input + }, + value: value, + onChange: handleOnChange, + onBlur: handleOnBlur, + type: "number", + fullWidth: true, + inputProps: { + step, + min: minValue, + max: maxValue, + 'aria-labelledby': 'input-slider' + } + }, rest))), React__default.createElement(Grid, { + item: true, + xs: 4, + className: classes.unitsContainer + }, React__default.createElement(Typography, { + className: classes.units + }, units)))); +}; + +const useStyles$f = makeStyles(() => ({ + root: { + width: '100%' + }, + inputsContainer: { + alignSelf: 'center', + display: 'flex', + justifyContent: 'space-between', + width: '100%' + }, + toContainer: { + alignSelf: 'center', + display: 'flex', + justifyContent: 'center', + width: '100%', + fontWeight: fonts.weight.regular + } +})); + +const RangeSliderWithInputs = ({ + values: { + start: startValue, + end: endValue + }, + unit, + handleChange, + className, + ...rest +}) => { + const classes = useStyles$f(); + const maxValue = rest.max || endValue; + const minValue = rest.min || startValue; + const step = rest.step || 1; + + const handleStartInputChange = event => { + const newStartValue = validatedNumber(Number(event.target.value)) || minValue; + handleChange({ + min: newStartValue, + max: endValue + }); + }; + + const handleEndInputChange = event => { + const newEndValue = validatedNumber(Number(event.target.value)) || endValue; + handleChange({ + min: startValue, + max: newEndValue + }); + }; + + const handleSliderChange = (_, newSliderValue) => { + handleChange({ + min: newSliderValue[0], + max: newSliderValue[1] + }); + }; + + const handleStartValueBlur = () => { + if (startValue < minValue) { + handleChange({ + min: minValue, + max: endValue + }); + } else if (startValue > endValue) { + handleChange({ + min: endValue, + max: endValue + }); + } + }; + + const handleEndValueBlur = () => { + if (endValue < startValue) { + handleChange({ + min: minValue, + max: startValue + }); + } else if (endValue > maxValue) { + handleChange({ + min: minValue, + max: maxValue + }); + } + }; + + const getCommonInputValues = () => ({ + maxValue, + minValue, + step, + units: unit + }); + + return React__default.createElement("div", { + className: `${classes.root} ${className}`.trim() + }, React__default.createElement(Slider, Object.assign({ + value: [startValue, endValue] + }, rest, { + onChange: handleSliderChange + })), React__default.createElement("div", { + className: classes.inputsContainer + }, React__default.createElement(UnitsInput, Object.assign({ + handleOnBlur: handleStartValueBlur, + handleOnChange: handleStartInputChange + }, getCommonInputValues(), { + value: startValue + })), React__default.createElement(Typography, { + className: classes.toContainer + }, "to"), React__default.createElement(UnitsInput, Object.assign({ + handleOnBlur: handleEndValueBlur, + handleOnChange: handleEndInputChange + }, getCommonInputValues(), { + value: endValue + })))); +}; + +const ShortenTextTooltip = ({ + value, + maxLength = 20, + charsShownCount +}) => React__default.createElement(React__default.Fragment, null, value.length > maxLength && React__default.createElement(CopyTextTooltip, { + displayElement: React__default.createElement(Typography, { + variant: "body2" + }, shortenString(value, maxLength, charsShownCount || maxLength - 5)), + fullText: value +}), value.length <= maxLength && value); + +const useStyles$g = makeStyles({ + indicator: { + display: 'flex', + justifyContent: 'center', + backgroundColor: 'transparent' + }, + root: { + borderBottom: `1px solid ${colors.gray3}` + } +}); + +const StyledTabs = props => { + const { + children + } = props; + const classes = useStyles$g(); + return React__default.createElement(Tabs, Object.assign({ + classes: classes + }, props), children); +}; + +const a11yProps = index => ({ + id: `full-width-tab-${index}`, + 'aria-controls': `full-width-tabpanel-${index}` +}); + +const useStyles$h = makeStyles(() => ({ + root: { + backgroundColor: colors.white, + minHeight: 20, + width: '100%', + border: `${colors.primary} solid 1px`, + borderRadius: 50, + overflow: 'hidden' + }, + tabContainer: { + minHeight: 20, + width: '100%' + }, + tab: { + '&:hover': { + color: colors.primary + }, + borderRadius: 50, + color: colors.gray3, + fontWeight: fonts.weight.light, + maxWidth: '50%', + minHeight: '100%', + minWidth: '50%', + outlineStyle: 'none', + padding: 0, + textTransform: 'capitalize', + zIndex: 1, + '&:focus': { + outlineStyle: 'none' + } + }, + tabIndicator: { + backgroundColor: colors.primary, + borderRadius: 50, + height: '100%' + }, + tabSelected: { + backgroundColor: `${colors.primary} !important`, + color: `${colors.white} !important` + } +})); + +const SwitchTabs = ({ + label1, + label2, + value: controlledValue, + onChange +}) => { + const classes = useStyles$h(); + + const handleChange = (event, newValue) => { + onChange(event, newValue); + }; + + return React__default.createElement("div", { + className: classes.root + }, React__default.createElement(Tabs$1, { + "aria-label": "tabs switch", + className: classes.tabContainer, + onChange: handleChange, + TabIndicatorProps: { + className: classes.tabIndicator + }, + value: controlledValue, + variant: "fullWidth" + }, React__default.createElement(Tab$1, Object.assign({}, a11yProps(0), { + classes: { + selected: classes.tabSelected + }, + className: classes.tab, + label: label1 + })), React__default.createElement(Tab$1, Object.assign({}, a11yProps(1), { + classes: { + selected: classes.tabSelected + }, + className: classes.tab, + label: label2 + })))); +}; + +const TooltipIconButton = ({ + tooltipTitle, + iconButtonProps, + icon +}) => React__default.createElement(Tooltip$1, { + title: tooltipTitle +}, React__default.createElement("span", null, React__default.createElement(IconButton, Object.assign({ + color: "primary" +}, iconButtonProps), icon))); + +const useStyles$i = makeStyles(theme => ({ + boxContainer: { + border: `1px solid ${colors.primary}`, + padding: theme.spacing(5), + marginTop: theme.spacing(3) + }, + loaderContainer: { + display: 'flex', + justifyContent: 'center' + } +})); + +const WrongNetworkModal = ({ + open, + currentNetworkName = 'Private network', + requiredNetworkName, + onClose +}) => { + const classes = useStyles$i(); + return React__default.createElement(ModalDialogue, { + title: `Switch to the ${requiredNetworkName} network`, + open: open, + onClose: onClose + }, React__default.createElement(React__default.Fragment, null, React__default.createElement(Typography, { + gutterBottom: true, + align: "center", + color: "secondary", + component: "div" + }, "This dApp only works on the", ' ', requiredNetworkName, ". You are currently on", ' ', React__default.createElement(Box, { + display: "inline", + fontWeight: "fontWeightMedium" + }, currentNetworkName), "."), React__default.createElement(Grid, { + container: true, + className: classes.boxContainer, + alignItems: "center" + }, React__default.createElement(Grid, { + item: true, + sm: 3, + className: classes.loaderContainer + }, React__default.createElement(CircularProgress, null)), React__default.createElement(Grid, { + item: true, + sm: 9 + }, React__default.createElement(Typography, { + gutterBottom: true, + color: "secondary" + }, "Waiting for the right network..."), React__default.createElement(Typography, { + color: "primary", + component: "div" + }, React__default.createElement(Box, { + fontWeight: "fontWeightMedium" + }, "Switch networks on your wallet")))))); +}; + +const useStyles$j = makeStyles(theme => ({ + copyright: { + display: 'flex', + justifyContent: 'center' + }, + copyrightContent: { + color: colors.gray4, + fontSize: fonts.size.tiny + }, + footerContainer: { + backgroundColor: colors.gray2, + display: 'flex', + justifyContent: 'center', + paddingBottom: theme.spacing(2), + width: '100%' + }, + footerContent: { + marginTop: theme.spacing(2), + maxWidth: '80%', + width: '100%' + }, + linksColumn: { + marginBottom: theme.spacing(1) + }, + logoColumn: { + display: 'flex', + justifyContent: 'center', + padding: theme.spacing(5) + }, + root: { + alignItems: 'center', + display: 'flex', + flexDirection: 'column', + paddingTop: theme.spacing(4), + width: '100%' + }, + tongue: { + backgroundColor: colors.gray2, + borderTopLeftRadius: '50% 80%', + borderTopRightRadius: '50% 80%', + height: theme.spacing(10), + width: '100%' + } +})); + +const Footer = ({ + className = '', + copyrightText, + linksColumns, + ...rest +}) => { + const classes = useStyles$j(); + return React__default.createElement("footer", Object.assign({ + className: `${classes.root} ${className}`.trim() + }, rest), React__default.createElement("div", { + className: classes.tongue + }), React__default.createElement("div", { + className: classes.footerContainer + }, React__default.createElement("div", { + className: classes.footerContent + }, React__default.createElement(Grid$1, { + container: true, + direction: "row" + }, React__default.createElement(Grid$1, { + className: classes.logoColumn, + item: true, + xs: 12, + md: 3, + lg: 3 + }, React__default.createElement("img", { + src: logoBlackAndBlue, + height: "75px", + alt: "logo" + })), linksColumns.map(linkColumn => React__default.createElement(Grid$1, { + key: `fc-${removeEmptySpaces(linkColumn.title)}`, + item: true, + xs: 12, + sm: 12, + md: 2, + lg: 2 + }, React__default.createElement(FooterColumn, Object.assign({ + className: classes.linksColumn + }, linkColumn))))), React__default.createElement("div", { + className: classes.copyright + }, React__default.createElement(Typography, { + className: classes.copyrightContent + }, copyrightText))))); +}; + +var ConnectionStatus; + +(function (ConnectionStatus) { + ConnectionStatus[ConnectionStatus["LoggedIn"] = 0] = "LoggedIn"; + ConnectionStatus[ConnectionStatus["LoggedOut"] = 1] = "LoggedOut"; + ConnectionStatus[ConnectionStatus["WalletLocked"] = 2] = "WalletLocked"; + ConnectionStatus[ConnectionStatus["WrongNetwork"] = 3] = "WrongNetwork"; +})(ConnectionStatus || (ConnectionStatus = {})); + +var ConnectionStatus$1 = ConnectionStatus; + +// A type of promise-like that resolves synchronously and supports only one observer + +const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.iterator || (Symbol.iterator = Symbol("Symbol.iterator"))) : "@@iterator"; + +const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol("Symbol.asyncIterator"))) : "@@asyncIterator"; + +// Asynchronously call a function and send errors to recovery continuation +function _catch(body, recover) { + try { + var result = body(); + } catch(e) { + return recover(e); + } + if (result && result.then) { + return result.then(void 0, recover); + } + return result; +} + +var networksData = [ + { + name: "Ethereum Mainnet", + chainId: 1, + shortName: "eth", + chain: "ETH", + network: "mainnet", + networkId: 1, + nativeCurrency: { + name: "Ether", + symbol: "ETH", + decimals: 18 + }, + rpc: [ + "https://mainnet.infura.io/v3/${INFURA_API_KEY}", + "https://api.mycryptoapi.com/eth" + ], + faucets: [ + ], + infoURL: "https://ethereum.org" + }, + { + name: "xDAI Chain", + chainId: 100, + shortName: "xdai", + chain: "XDAI", + network: "mainnet", + networkId: 100, + nativeCurrency: { + name: "xDAI", + symbol: "xDAI", + decimals: 18 + }, + rpc: [ + "https://dai.poa.network" + ], + faucets: [ + ], + infoURL: "https://forum.poa.network/c/xdai-chain" + }, + { + name: "EtherInc", + chainId: 101, + shortName: "eti", + chain: "ETI", + network: "mainnet", + networkId: 1, + nativeCurrency: { + name: "EtherInc Ether", + symbol: "ETI", + decimals: 18 + }, + rpc: [ + "https://api.einc.io/jsonrpc/mainnet" + ], + faucets: [ + ], + infoURL: "https://einc.io" + }, + { + name: "ThunderCore Mainnet", + chainId: 108, + shortName: "TT", + chain: "TT", + network: "mainnet", + networkId: 108, + nativeCurrency: { + name: "ThunderCore Mainnet Ether", + symbol: "TT", + decimals: 18 + }, + rpc: [ + "https://mainnet-rpc.thundercore.com" + ], + faucets: [ + "https://faucet.thundercore.com" + ], + infoURL: "https://thundercore.com" + }, + { + name: "Metadium Mainnet", + chainId: 11, + shortName: "meta", + chain: "META", + network: "mainnet", + networkId: 11, + nativeCurrency: { + name: "Metadium Mainnet Ether", + symbol: "META", + decimals: 18 + }, + rpc: [ + "https://api.metadium.com/prod" + ], + faucets: [ + ], + infoURL: "https://metadium.com" + }, + { + name: "IPOS Network", + chainId: 1122334455, + shortName: "ipos", + chain: "IPOS", + network: "mainnet", + networkId: 1122334455, + nativeCurrency: { + name: "IPOS Network Ether", + symbol: "IPOS", + decimals: 18 + }, + rpc: [ + "https://rpc.iposlab.com", + "https://rpc2.iposlab.com" + ], + faucets: [ + ], + infoURL: "https://iposlab.com" + }, + { + name: "Metadium Testnet", + chainId: 12, + shortName: "kal", + chain: "META", + network: "testnet", + networkId: 12, + nativeCurrency: { + name: "Metadium Testnet Ether", + symbol: "KAL", + decimals: 18 + }, + rpc: [ + "https://api.metadium.com/dev" + ], + faucets: [ + ], + infoURL: "https://metadium.com" + }, + { + name: "Fuse Mainnet", + chainId: 122, + shortName: "fuse", + chain: "FUSE", + network: "mainnet", + networkId: 122, + nativeCurrency: { + name: "Fuse", + symbol: "FUSE", + decimals: 18 + }, + rpc: [ + "https://rpc.fuse.io" + ], + faucets: [ + ], + infoURL: "https://fuse.io/" + }, + { + name: "Ether-1", + chainId: 1313114, + shortName: "etho", + chain: "ETHO", + network: "mainnet", + networkId: 1313114, + nativeCurrency: { + name: "Ether-1 Ether", + symbol: "ETHO", + decimals: 18 + }, + rpc: [ + "https://rpc.ether1.org" + ], + faucets: [ + ], + infoURL: "https://ether1.org" + }, + { + name: "Xerom", + chainId: 1313500, + shortName: "xero", + chain: "XERO", + network: "mainnet", + networkId: 1313500, + nativeCurrency: { + name: "Xerom Ether", + symbol: "XERO", + decimals: 18 + }, + rpc: [ + "https://rpc.xerom.org" + ], + faucets: [ + ], + infoURL: "https://xerom.org" + }, + { + name: "PepChain Churchill", + chainId: 13371337, + shortName: "tpep", + chain: "PEP", + network: "testnet", + networkId: 13371337, + nativeCurrency: { + name: "PepChain Churchill Ether", + symbol: "TPEP", + decimals: 18 + }, + rpc: [ + "https://churchill-rpc.pepchain.io" + ], + faucets: [ + ], + infoURL: "https://pepchain.io" + }, + { + name: "Lightstreams Testnet", + chainId: 162, + shortName: "tpht", + chain: "PHT", + network: "sirius", + networkId: 162, + nativeCurrency: { + name: "Lightstreams PHT", + symbol: "PHT", + decimals: 18 + }, + rpc: [ + "https://node.sirius.lightstreams.io" + ], + faucets: [ + "https://discuss.lightstreams.network/t/request-test-tokens" + ], + infoURL: "https://explorer.sirius.lightstreams.io" + }, + { + name: "Atheios", + chainId: 1620, + shortName: "ath", + chain: "ATH", + network: "mainnet", + networkId: 11235813, + nativeCurrency: { + name: "Atheios Ether", + symbol: "ATH", + decimals: 18 + }, + rpc: [ + "https://wallet.atheios.com:8797" + ], + faucets: [ + ], + infoURL: "https://atheios.com" + }, + { + name: "Lightstreams Mainnet", + chainId: 163, + shortName: "pht", + chain: "PHT", + network: "mainnet", + networkId: 163, + nativeCurrency: { + name: "Lightstreams PHT", + symbol: "PHT", + decimals: 18 + }, + rpc: [ + "https://node.mainnet.lightstreams.io" + ], + faucets: [ + ], + infoURL: "https://explorer.lightstreams.io" + }, + { + name: "ThunderCore Testnet", + chainId: 18, + shortName: "TST", + chain: "TST", + network: "testnet", + networkId: 18, + nativeCurrency: { + name: "ThunderCore Testnet Ether", + symbol: "TST", + decimals: 18 + }, + rpc: [ + "https://testnet-rpc.thundercore.com" + ], + faucets: [ + "https://faucet-testnet.thundercore.com" + ], + infoURL: "https://thundercore.com" + }, + { + name: "IOLite", + chainId: 18289463, + shortName: "ilt", + chain: "ILT", + network: "mainnet", + networkId: 18289463, + nativeCurrency: { + name: "IOLite Ether", + symbol: "ILT", + decimals: 18 + }, + rpc: [ + "https://net.iolite.io" + ], + faucets: [ + ], + infoURL: "https://iolite.io" + }, + { + name: "Teslafunds", + chainId: 1856, + shortName: "tsf", + chain: "TSF", + network: "mainnet", + networkId: 1, + nativeCurrency: { + name: "Teslafunds Ether", + symbol: "TSF", + decimals: 18 + }, + rpc: [ + "https://tsfapi.europool.me" + ], + faucets: [ + ], + infoURL: "https://teslafunds.io" + }, + { + name: "EtherGem", + chainId: 1987, + shortName: "egem", + chain: "EGEM", + network: "mainnet", + networkId: 1987, + nativeCurrency: { + name: "EtherGem Ether", + symbol: "EGEM", + decimals: 18 + }, + rpc: [ + "https://jsonrpc.egem.io/custom" + ], + faucets: [ + ], + infoURL: "https://egem.io" + }, + { + name: "Expanse Network", + chainId: 2, + shortName: "exp", + chain: "EXP", + network: "mainnet", + networkId: 1, + nativeCurrency: { + name: "Expanse Network Ether", + symbol: "EXP", + decimals: 18 + }, + rpc: [ + "https://node.expanse.tech" + ], + faucets: [ + ], + infoURL: "https://expanse.tech" + }, + { + name: "ELA-ETH-Sidechain Mainnet", + chainId: 20, + shortName: "ELAETHSC", + chain: "ETH", + network: "mainnet", + networkId: 1, + nativeCurrency: { + name: "Ether", + symbol: "ETH", + decimals: 18 + }, + rpc: [ + "https://mainrpc.elaeth.io" + ], + faucets: [ + ], + infoURL: "https://www.elastos.org/" + }, + { + name: "Akaroma", + chainId: 200625, + shortName: "aka", + chain: "AKA", + network: "mainnet", + networkId: 200625, + nativeCurrency: { + name: "Akaroma Ether", + symbol: "AKA", + decimals: 18 + }, + rpc: [ + "https://remote.akroma.io" + ], + faucets: [ + ], + infoURL: "https://akroma.io" + }, + { + name: "ELA-ETH-Sidechain Testnet", + chainId: 21, + shortName: "ELAETHSC", + chain: "ETH", + network: "testnet", + networkId: 2, + nativeCurrency: { + name: "Ether", + symbol: "ETH", + decimals: 18 + }, + rpc: [ + "https://rpc.elaeth.io" + ], + faucets: [ + "https://faucet.elaeth.io/" + ], + infoURL: "https://elaeth.io/" + }, + { + name: "Freight Trust Network", + chainId: 211, + shortName: "EDI", + chain: "EDI", + network: "freight & trade network", + networkId: 0, + nativeCurrency: { + name: "Freight Trust Native", + symbol: "0xF", + decimals: 18 + }, + rpc: [ + "http://13.57.207.168:3435", + "https://app.freighttrust.net/ftn/${API_KEY}" + ], + faucets: [ + "http://faucet.freight.sh" + ], + infoURL: "https://freighttrust.com" + }, + { + name: "Webchain", + chainId: 24484, + shortName: "web", + chain: "WEB", + network: "mainnet", + networkId: 37129, + nativeCurrency: { + name: "Webchain Ether", + symbol: "WEB", + decimals: 18 + }, + rpc: [ + "https://node1.webchain.network" + ], + faucets: [ + ], + infoURL: "https://webchain.network" + }, + { + name: "ARTIS sigma1", + chainId: 246529, + shortName: "ats", + chain: "ARTIS", + network: "sigma1", + networkId: 246529, + nativeCurrency: { + name: "ARTIS sigma1 Ether", + symbol: "ATS", + decimals: 18 + }, + rpc: [ + "https://rpc.sigma1.artis.network" + ], + faucets: [ + ], + infoURL: "https://artis.eco" + }, + { + name: "ARTIS tau1", + chainId: 246785, + shortName: "ats", + chain: "ARTIS", + network: "tau1", + networkId: 246785, + nativeCurrency: { + name: "ARTIS tau1 Ether", + symbol: "ATS", + decimals: 18 + }, + rpc: [ + "https://rpc.tau1.artis.network" + ], + faucets: [ + ], + infoURL: "https://artis.network" + }, + { + name: "Fantom Opera", + chainId: 250, + shortName: "ftm", + chain: "FTM", + network: "mainnet", + networkId: 250, + nativeCurrency: { + name: "Fantom", + symbol: "FTM", + decimals: 18 + }, + rpc: [ + "https://rpc.fantom.network", + "https://fantomscan.io/rpc" + ], + faucets: [ + ], + infoURL: "https://fantom.foundation" + }, + { + name: "High Performance Blockchain", + chainId: 269, + shortName: "hpb", + chain: "HPB", + network: "mainnet", + networkId: 100, + nativeCurrency: { + name: "High Performance Blockchain Ether", + symbol: "HPB", + decimals: 18 + }, + rpc: [ + "https://node.hpb.blue" + ], + faucets: [ + ], + infoURL: "https://hpb.io" + }, + { + name: "Auxilium Network Mainnet", + chainId: 28945486, + shortName: "aux", + chain: "AUX", + network: "mainnet", + networkId: 28945486, + nativeCurrency: { + name: "Auxilium coin", + symbol: "AUX", + decimals: 18 + }, + rpc: [ + "https://rpc.auxilium.global" + ], + faucets: [ + ], + infoURL: "https://auxilium.global" + }, + { + name: "Ethereum Testnet Ropsten", + chainId: 3, + shortName: "rop", + chain: "ETH", + network: "ropsten", + networkId: 3, + nativeCurrency: { + name: "Ropsten Ether", + symbol: "ROP", + decimals: 18 + }, + rpc: [ + "https://ropsten.infura.io/v3/${INFURA_API_KEY}" + ], + faucets: [ + "https://faucet.ropsten.be?${ADDRESS}" + ], + infoURL: "https://github.com/ethereum/ropsten" + }, + { + name: "RSK Mainnet", + chainId: 30, + shortName: "rsk", + chain: "RSK", + network: "mainnet", + networkId: 30, + nativeCurrency: { + name: "RSK Mainnet Ether", + symbol: "RSK", + decimals: 18 + }, + rpc: [ + "https://public-node.rsk.co", + "https://mycrypto.rsk.co" + ], + faucets: [ + ], + infoURL: "https://rsk.co" + }, + { + name: "RSK Testnet", + chainId: 31, + shortName: "trsk", + chain: "RSK", + network: "testnet", + networkId: 31, + nativeCurrency: { + name: "RSK Testnet Ether", + symbol: "TRSK", + decimals: 18 + }, + rpc: [ + "https://public-node.testnet.rsk.co", + "https://mycrypto.testnet.rsk.co" + ], + faucets: [ + "https://faucet.testnet.rsk.co" + ], + infoURL: "https://rsk.co" + }, + { + name: "Ethersocial Network", + chainId: 31102, + shortName: "esn", + chain: "ESN", + network: "mainnet", + networkId: 1, + nativeCurrency: { + name: "Ethersocial Network Ether", + symbol: "ESN", + decimals: 18 + }, + rpc: [ + "https://api.esn.gonspool.com" + ], + faucets: [ + ], + infoURL: "https://ethersocial.org" + }, + { + name: "Pirl", + chainId: 3125659152, + shortName: "pirl", + chain: "PIRL", + network: "mainnet", + networkId: 3125659152, + nativeCurrency: { + name: "Pirl Ether", + symbol: "PIRL", + decimals: 18 + }, + rpc: [ + "https://wallrpc.pirl.io" + ], + faucets: [ + ], + infoURL: "https://pirl.io" + }, + { + name: "Lisinski", + chainId: 385, + shortName: "lisinski", + chain: "CRO", + network: "mainnet", + networkId: 385, + nativeCurrency: { + name: "Lisinski Ether", + symbol: "LISINSKI", + decimals: 18 + }, + rpc: [ + "https://rpc-bitfalls1.lisinski.online" + ], + faucets: [ + "https://pipa.lisinski.online" + ], + infoURL: "https://lisinski.online" + }, + { + name: "Energi Mainnet", + chainId: 39797, + shortName: "nrg", + chain: "NRG", + network: "mainnet", + networkId: 39797, + nativeCurrency: { + name: "Energi", + symbol: "NRG", + decimals: 18 + }, + rpc: [ + "https://nodeapi.gen3.energi.network" + ], + faucets: [ + ], + infoURL: "https://www.energi.world/" + }, + { + name: "Ethereum Testnet Rinkeby", + chainId: 4, + shortName: "rin", + chain: "ETH", + network: "rinkeby", + networkId: 4, + nativeCurrency: { + name: "Rinkeby Ether", + symbol: "RIN", + decimals: 18 + }, + rpc: [ + "https://rinkeby.infura.io/v3/${INFURA_API_KEY}" + ], + faucets: [ + "https://faucet.rinkeby.io" + ], + infoURL: "https://www.rinkeby.io" + }, + { + name: "Ethereum Testnet Kovan", + chainId: 42, + shortName: "kov", + chain: "ETH", + network: "kovan", + networkId: 42, + nativeCurrency: { + name: "Kovan Ether", + symbol: "KOV", + decimals: 18 + }, + rpc: [ + "https://kovan.infura.io/v3/${INFURA_API_KEY}" + ], + faucets: [ + "https://faucet.kovan.network", + "https://gitter.im/kovan-testnet/faucet" + ], + infoURL: "https://kovan-testnet.github.io/website" + }, + { + name: "Athereum", + chainId: 43110, + shortName: "ath", + chain: "ATH", + network: "athereum", + networkId: 43110, + nativeCurrency: { + name: "Athereum Ether", + symbol: "ATH", + decimals: 18 + }, + rpc: [ + "https://ava.network:21015/ext/evm/rpc" + ], + faucets: [ + "http://athfaucet.ava.network//?address=${ADDRESS}" + ], + infoURL: "https://athereum.ava.network" + }, + { + name: "Energi Testnet", + chainId: 49797, + shortName: "tnrg", + chain: "NRG", + network: "testnet", + networkId: 49797, + nativeCurrency: { + name: "Energi", + symbol: "tNRG", + decimals: 18 + }, + rpc: [ + "https://nodeapi.test3.energi.network" + ], + faucets: [ + ], + infoURL: "https://www.energi.world/" + }, + { + name: "Ethereum Testnet Görli", + chainId: 5, + shortName: "gor", + chain: "ETH", + network: "goerli", + networkId: 5, + nativeCurrency: { + name: "Görli Ether", + symbol: "GOR", + decimals: 18 + }, + rpc: [ + "https://rpc.goerli.mudit.blog/", + "https://rpc.slock.it/goerli ", + "https://goerli.prylabs.net/" + ], + faucets: [ + "https://goerli-faucet.slock.it/?address=${ADDRESS}", + "https://faucet.goerli.mudit.blog" + ], + infoURL: "https://goerli.net/#about" + }, + { + name: "Ethereum Classic Testnet Kotti", + chainId: 6, + shortName: "kot", + chain: "ETC", + network: "kotti", + networkId: 6, + nativeCurrency: { + name: "Kotti Ether", + symbol: "KOT", + decimals: 18 + }, + rpc: [ + ], + faucets: [ + ], + infoURL: "https://explorer.jade.builders/?network=kotti" + }, + { + name: "GoChain", + chainId: 60, + shortName: "go", + chain: "GO", + network: "mainnet", + networkId: 60, + nativeCurrency: { + name: "GoChain Ether", + symbol: "GO", + decimals: 18 + }, + rpc: [ + "https://rpc.gochain.io" + ], + faucets: [ + ], + infoURL: "https://gochain.io" + }, + { + name: "Ethereum Classic Mainnet", + chainId: 61, + shortName: "etc", + chain: "ETC", + network: "mainnet", + networkId: 1, + nativeCurrency: { + name: "Ethereum Classic Ether", + symbol: "ETC", + decimals: 18 + }, + rpc: [ + "https://ethereumclassic.network" + ], + faucets: [ + ], + infoURL: "https://ethereumclassic.org" + }, + { + name: "Aquachain", + chainId: 61717561, + shortName: "aqua", + chain: "AQUA", + network: "mainnet", + networkId: 61717561, + nativeCurrency: { + name: "Aquachain Ether", + symbol: "AQUA", + decimals: 18 + }, + rpc: [ + "https://c.onical.org", + "https://tx.aquacha.in/api" + ], + faucets: [ + "https://aquacha.in/faucet" + ], + infoURL: "https://aquachain.github.io" + }, + { + name: "Ethereum Classic Testnet Morden", + chainId: 62, + shortName: "tetc", + chain: "ETC", + network: "testnet", + networkId: 2, + nativeCurrency: { + name: "Ethereum Classic Testnet Ether", + symbol: "TETC", + decimals: 18 + }, + rpc: [ + ], + faucets: [ + ], + infoURL: "https://ethereumclassic.org" + }, + { + name: "Ethereum Classic Testnet Mordor", + chainId: 63, + shortName: "metc", + chain: "ETC", + network: "testnet", + networkId: 7, + nativeCurrency: { + name: "Mordor Classic Testnet Ether", + symbol: "METC", + decimals: 18 + }, + rpc: [ + ], + faucets: [ + ], + infoURL: "https://github.com/eth-classic/mordor/" + }, + { + name: "Ellaism", + chainId: 64, + shortName: "ella", + chain: "ELLA", + network: "mainnet", + networkId: 64, + nativeCurrency: { + name: "Ellaism Ether", + symbol: "ELLA", + decimals: 18 + }, + rpc: [ + "https://jsonrpc.ellaism.org" + ], + faucets: [ + ], + infoURL: "https://ellaism.org" + }, + { + name: "ThaiChain", + chainId: 7, + shortName: "tch", + chain: "TCH", + network: "mainnet", + networkId: 7, + nativeCurrency: { + name: "ThaiChain Ether", + symbol: "TCH", + decimals: 18 + }, + rpc: [ + "https://rpc.dome.cloud" + ], + faucets: [ + ], + infoURL: "https://thaichain.io" + }, + { + name: "Mix", + chainId: 76, + shortName: "mix", + chain: "MIX", + network: "mainnet", + networkId: 76, + nativeCurrency: { + name: "Mix Ether", + symbol: "MIX", + decimals: 18 + }, + rpc: [ + "https://rpc2.mix-blockchain.org:8647" + ], + faucets: [ + ], + infoURL: "https://mix-blockchain.org" + }, + { + name: "POA Network Sokol", + chainId: 77, + shortName: "poa", + chain: "POA", + network: "sokol", + networkId: 77, + nativeCurrency: { + name: "POA Sokol Ether", + symbol: "POA", + decimals: 18 + }, + rpc: [ + "https://sokol.poa.network" + ], + faucets: [ + "https://faucet-sokol.herokuapp.com" + ], + infoURL: "https://poa.network" + }, + { + name: "Musicoin", + chainId: 7762959, + shortName: "music", + chain: "MUSIC", + network: "mainnet", + networkId: 7762959, + nativeCurrency: { + name: "Musicoin", + symbol: "MUSIC", + decimals: 18 + }, + rpc: [ + "https://mewapi.musicoin.tw" + ], + faucets: [ + ], + infoURL: "https://musicoin.tw" + }, + { + name: "Firenze test network", + chainId: 78110, + shortName: "firenze", + chain: "ETH", + network: "testnet", + networkId: 78110, + nativeCurrency: { + name: "Firenze Ether", + symbol: "FIN", + decimals: 18 + }, + rpc: [ + "https://ethnode.primusmoney.com/firenze" + ], + faucets: [ + ], + infoURL: "https://primusmoney.com" + }, + { + name: "Ubiq Network Mainnet", + chainId: 8, + shortName: "ubq", + chain: "UBQ", + network: "mainnet", + networkId: 88, + nativeCurrency: { + name: "Ubiq Ether", + symbol: "UBQ", + decimals: 18 + }, + rpc: [ + "https://rpc.octano.dev", + "https://pyrus2.ubiqscan.io" + ], + faucets: [ + ], + infoURL: "https://ubiqsmart.com" + }, + { + name: "Callisto Mainnet", + chainId: 820, + shortName: "clo", + chain: "CLO", + network: "mainnet", + networkId: 1, + nativeCurrency: { + name: "Callisto Mainnet Ether", + symbol: "CLO", + decimals: 18 + }, + rpc: [ + "https://clo-geth.0xinfra.com" + ], + faucets: [ + ], + infoURL: "https://callisto.network" + }, + { + name: "Callisto Testnet", + chainId: 821, + shortName: "tclo", + chain: "CLO", + network: "testnet", + networkId: 2, + nativeCurrency: { + name: "Callisto Testnet Ether", + symbol: "TCLO", + decimals: 18 + }, + rpc: [ + ], + faucets: [ + ], + infoURL: "https://callisto.network" + }, + { + name: "TomoChain", + chainId: 88, + shortName: "tomo", + chain: "TOMO", + network: "mainnet", + networkId: 88, + nativeCurrency: { + name: "TomoChain Ether", + symbol: "TOMO", + decimals: 18 + }, + rpc: [ + "https://core.tomocoin.io" + ], + faucets: [ + ], + infoURL: "https://tomocoin.io" + }, + { + name: "Ubiq Network Testnet", + chainId: 9, + shortName: "tubq", + chain: "UBQ", + network: "mainnet", + networkId: 2, + nativeCurrency: { + name: "Ubiq Testnet Ether", + symbol: "TUBQ", + decimals: 18 + }, + rpc: [ + ], + faucets: [ + ], + infoURL: "https://ethersocial.org" + }, + { + name: "Nepal Blockchain Network", + chainId: 977, + shortName: "yeti", + chain: "YETI", + network: "mainnet", + networkId: 977, + nativeCurrency: { + name: "Nepal Blockchain Network Ether", + symbol: "YETI", + decimals: 18 + }, + rpc: [ + "https://api.nepalblockchain.dev", + "https://api.nepalblockchain.network" + ], + faucets: [ + "https://faucet.nepalblockchain.network" + ], + infoURL: "https://nepalblockchain.network" + }, + { + name: "POA Network Core", + chainId: 99, + shortName: "skl", + chain: "POA", + network: "core", + networkId: 99, + nativeCurrency: { + name: "POA Network Core Ether", + symbol: "SKL", + decimals: 18 + }, + rpc: [ + "https://core.poa.network" + ], + faucets: [ + ], + infoURL: "https://poa.network" + }, + { + name: "Local Tests", + chainId: 1337, + shortName: "test", + chain: "localtests", + network: "localTests", + networkId: 8545, + nativeCurrency: { + name: "Local Tests Ether", + symbol: "LT", + decimals: 18 + }, + rpc: [ + "http://localhost:8545" + ], + faucets: [ + "http://localhost:8545" + ], + infoURL: "http://localhost:8545" + } +]; + +function getWeb3(provider = EProvider.METAMASK) { + return new Promise((resolve, reject) => { + switch (provider) { + case EProvider.NIFTY: + case EProvider.METAMASK: + { + if (window.ethereum) { + const web3 = new Web3(window.ethereum); + window.ethereum.enable().then(() => resolve(web3)).catch(reject); + } else if (window.web3) { + resolve(new Web3(window.web3.currentProvider)); + } else reject(new Error('No injected web3 found')); + + break; + } + + case EProvider.LOCAL: + { + const localhostProvider = new Web3.providers.HttpProvider("'http://127.0.0.1:4444'"); + resolve(new Web3(localhostProvider)); + break; + } + + default: + { + reject(new Error(`Provider not implemented or unknown. Chosen provider ${provider}`)); + break; + } + } + }); +} +const getNetworkInfo = (networkId, chainId) => networksData.find(n => chainId ? n.networkId === networkId && n.chainId === chainId : n.networkId === networkId); +const getNetworkInfoFromWeb3 = function (web3) { + try { + function _temp3() { + let networkInfo; + + if (networkId) { + try { + networkInfo = getNetworkInfo(networkId, chainId); + } catch (error) {} + } + + return networkInfo; + } + + let networkId; + let chainId; + + const _temp2 = _catch(function () { + return Promise.resolve(web3.eth.net.getId()).then(function (_web3$eth$net$getId) { + networkId = _web3$eth$net$getId; + + const _temp = function () { + if (networkId) { + return Promise.resolve(web3.eth.getChainId()).then(function (_web3$eth$getChainId) { + chainId = _web3$eth$getChainId; + }); + } + }(); + + if (_temp && _temp.then) return _temp.then(function () {}); + }); + }, function () {}); + + return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(_temp3) : _temp3(_temp2)); + } catch (e) { + return Promise.reject(e); + } +}; +const getAvailableProviders = () => { + const result = []; + if (!window.web3) return undefined; + const currentProvider = window.web3.currentProvider; + + if (currentProvider.isMetaMask) { + result.push(currentProvider.isNiftyWallet ? getProviderInfo(EProvider.NIFTY) : getProviderInfo(EProvider.METAMASK)); + } + + if (currentProvider.isTrust) result.push(getProviderInfo(EProvider.TRUST)); + if (currentProvider.isGoWallet) result.push(getProviderInfo(EProvider.GO_WALLET)); + if (currentProvider.isAlphaWallet) result.push(getProviderInfo(EProvider.ALPHA_WALLET)); + if (currentProvider.isStatus) result.push(getProviderInfo(EProvider.STATUS)); + if (currentProvider.isToshi) result.push(getProviderInfo(EProvider.COINBASE)); + if (typeof window.__CIPHER__ !== 'undefined') result.push(getProviderInfo(EProvider.CIPHER)); + if (currentProvider.constructor.name === 'EthereumProvider') result.push(getProviderInfo(EProvider.MIST)); + if (currentProvider.constructor.name === 'Web3FrameProvider') result.push(getProviderInfo(EProvider.PARITY)); + if (currentProvider.host && currentProvider.host.indexOf('infura') !== -1) result.push(getProviderInfo(EProvider.INFURA)); + if (currentProvider.host && currentProvider.host.indexOf('localhost') !== -1) result.push(getProviderInfo(EProvider.LOCAL)); + return result; +}; +const getConnectionStatus = (web3, requiredNetworkId, currentNetworkId, account) => { + if (!web3) return ConnectionStatus$1.LoggedOut; + + if (currentNetworkId !== requiredNetworkId) { + return ConnectionStatus$1.WrongNetwork; + } + + if (account) { + return ConnectionStatus$1.LoggedIn; + } + + return ConnectionStatus$1.WalletLocked; +}; + +const useStyles$k = makeStyles(theme => ({ + accountText: { + fontSize: fonts.size.tiny, + textAlign: 'center' + }, + button: { + border: `1px solid ${colors.white}`, + '&:hover': { + border: `1px solid ${colors.transparent}` + } + }, + networkIndicator: { + marginRight: theme.spacing(1) + }, + rightNetwork: { + padding: theme.spacing(2) + } +})); + +const Account = props => { + const { + web3, + networkInfo, + account, + setProvider, + availableProviders, + requiredNetworkId, + onCorrectNetworkMessage, + onNetworkMismatchMessage, + noNetworkMessage, + requiredNetworkName, + modalInitiallyOpened = false + } = props; + const classes = useStyles$k(); + const [accountModalOpen, setAccountModalOpen] = useState(modalInitiallyOpened); + + const handleAccountModalClose = () => setAccountModalOpen(false); + + const handleAccountModalOpen = () => setAccountModalOpen(true); + + const [wrongNetModalOpen, setWrongNetModalOpen] = useState(false); + + const openWrongNetModal = () => setWrongNetModalOpen(true); + + const closeWrongNetModal = () => setWrongNetModalOpen(false); + + const connectionStatus = getConnectionStatus(web3, requiredNetworkId, networkInfo === null || networkInfo === void 0 ? void 0 : networkInfo.networkId, account); + const [anchorEl, setAnchorEl] = React__default.useState(null); + const popoverOpen = Boolean(anchorEl); + const id = popoverOpen ? 'right-net-popover' : undefined; + + const handlePopoverClose = () => { + setAnchorEl(null); + }; + + useEffect(() => { + if (connectionStatus === ConnectionStatus$1.WrongNetwork) { + openWrongNetModal(); + } else { + closeWrongNetModal(); + handlePopoverClose(); + } + }, [connectionStatus]); + + const accountText = () => { + if (connectionStatus === ConnectionStatus$1.LoggedOut) return 'Connect wallet'; + if (connectionStatus === ConnectionStatus$1.WrongNetwork) return 'Wrong Network'; + + if (account) { + return shortenString(account); + } + + return 'Unlock your wallet'; + }; + + const onAccountClicked = event => { + if (connectionStatus === ConnectionStatus$1.WrongNetwork) return openWrongNetModal(); + if (connectionStatus === ConnectionStatus$1.LoggedOut) return handleAccountModalOpen(); + if (connectionStatus === ConnectionStatus$1.LoggedIn) return setAnchorEl(event.currentTarget); + return null; + }; + + return React__default.createElement(React__default.Fragment, null, React__default.createElement(Button, { + onClick: onAccountClicked, + className: classes.button, + variant: "contained", + color: "primary", + rounded: true + }, !!requiredNetworkId && React__default.createElement(NetworkIndicator, { + iconClassName: classes.networkIndicator, + currentNetworkId: networkInfo === null || networkInfo === void 0 ? void 0 : networkInfo.networkId, + requiredNetworkId: requiredNetworkId, + onCorrectNetworkMessage: onCorrectNetworkMessage, + onNetworkMismatchMessage: onNetworkMismatchMessage, + noNetworkMessage: noNetworkMessage + }), React__default.createElement(Typography, { + className: classes.accountText + }, accountText())), React__default.createElement(Popover, { + id: id, + open: popoverOpen, + anchorEl: anchorEl, + onClose: handlePopoverClose, + anchorOrigin: { + vertical: 'bottom', + horizontal: 'center' + }, + transformOrigin: { + vertical: 'top', + horizontal: 'center' + } + }, React__default.createElement(Typography, { + className: classes.rightNetwork + }, `You are successfully connected to ${networkInfo === null || networkInfo === void 0 ? void 0 : networkInfo.name}.`)), React__default.createElement(AccountModal, { + open: accountModalOpen, + onClose: handleAccountModalClose, + web3: web3, + onProviderSet: handleAccountModalClose, + setProvider: setProvider, + availableProviders: availableProviders + }), React__default.createElement(WrongNetworkModal, { + open: wrongNetModalOpen, + onClose: closeWrongNetModal, + requiredNetworkName: requiredNetworkName, + currentNetworkName: networkInfo === null || networkInfo === void 0 ? void 0 : networkInfo.name + })); +}; + +const useStyles$l = makeStyles(theme => ({ + activeNavlink: { + color: `${colors.white} !important`, + fontWeight: fonts.weight.medium + }, + navLink: { + alignItems: 'center', + color: colors.white, + display: 'flex', + paddingLeft: theme.spacing(5), + paddingRight: theme.spacing(5), + textAlign: 'center', + textDecoration: 'none', + '&:hover': { + color: colors.gray5, + textDecoration: 'none' + } + }, + navLinkContainer: { + display: 'flex' + }, + root: { + boxShadow: 'none', + height: theme.spacing(globalConstants.headerHeight) + } +})); + +const HeaderDesktop = ({ + hreflogo, + itemsStart, + itemsEnd, + login +}) => { + const classes = useStyles$l(); + const Login = login; + return React__default.createElement(AppBar, { + position: "fixed", + className: classes.root + }, React__default.createElement(Toolbar, null, React__default.createElement(Grid$1, { + container: true + }, React__default.createElement(Grid$1, { + item: true, + xs: 1 + }, React__default.createElement(NavLink, { + to: hreflogo + }, React__default.createElement(LogoNavbar, null))), React__default.createElement(Grid$1, { + item: true, + xs: 6, + container: true, + justify: "flex-start" + }, !!itemsStart.length && itemsStart.map(navItem => React__default.createElement(Typography, { + className: classes.navLinkContainer, + key: `hi-${removeEmptySpaces(navItem.title)}` + }, React__default.createElement(NavLink, Object.assign({ + className: classes.navLink, + activeClassName: classes.activeNavlink + }, navItem), navItem.title)))), React__default.createElement(Grid$1, { + item: true, + xs: 4, + container: true, + justify: "flex-end", + alignContent: "center" + }, !!(itemsEnd === null || itemsEnd === void 0 ? void 0 : itemsEnd.length) && itemsEnd.map(({ + icon, + ...rest + }) => React__default.createElement(ListItemIcon, Object.assign({ + key: icon.key + }, rest), icon))), React__default.createElement(Grid$1, { + item: true, + container: true, + xs: 1, + alignContent: "center" + }, React__default.createElement(Login, null))))); +}; + +const drawerWidth = 240; +const useStyles$m = makeStyles(theme => createStyles$1({ + drawerHeader: { + display: 'flex', + alignItems: 'center', + padding: theme.spacing(0, 1), + ...theme.mixins.toolbar, + justifyContent: 'flex-end' + }, + drawerPaper: { + width: drawerWidth + }, + mobileAppBar: { + boxShadow: 'none', + height: theme.spacing(globalConstants.headerHeight), + transition: theme.transitions.create(['margin', 'width'], { + easing: theme.transitions.easing.sharp, + duration: theme.transitions.duration.leavingScreen + }) + }, + mobileAppBarShift: { + width: `calc(100% - ${drawerWidth}px)`, + marginLeft: drawerWidth, + transition: theme.transitions.create(['margin', 'width'], { + easing: theme.transitions.easing.easeOut, + duration: theme.transitions.duration.enteringScreen + }) + }, + mobileNavLink: { + alignItems: 'center', + color: colors.gray4, + display: 'flex', + textDecoration: 'none', + width: '100%', + '&:hover': { + color: colors.gray5, + textDecoration: 'none' + } + }, + mobileNavLinkActive: { + color: `${colors.primary} !important` + } +})); + +const HeaderMobile = ({ + hreflogo, + itemsStart, + itemsEnd, + login: Login +}) => { + const classes = useStyles$m(); + const [open, setOpen] = useState(false); + + const toggleDrawer = isOpen => event => { + if (event.type === 'keydown' && (event.key === 'Tab' || event.key === 'Shift')) { + return; + } + + setOpen(isOpen); + }; + + return React__default.createElement("div", { + role: "presentation", + onKeyDown: toggleDrawer(false) + }, React__default.createElement(AppBar, { + position: "fixed", + className: `${classes.mobileAppBar} ${open ? classes.mobileAppBarShift : ''}`.trim() + }, React__default.createElement(Toolbar, null, !open && React__default.createElement(Grid$1, { + container: true + }, React__default.createElement(Grid$1, { + item: true, + xs: 1 + }, React__default.createElement(IconButton$1, { + color: "inherit", + "aria-label": "open drawer", + onClick: toggleDrawer(true) + }, React__default.createElement(MenuIcon, null))), React__default.createElement(Grid$1, { + item: true, + xs: 6 + }, React__default.createElement(NavLink, { + to: hreflogo + }, React__default.createElement(LogoNavbar, null))), React__default.createElement(Grid$1, { + item: true, + xs: 4, + container: true, + justify: "flex-end", + alignContent: "center" + }, !!(itemsEnd === null || itemsEnd === void 0 ? void 0 : itemsEnd.length) && itemsEnd.map(({ + icon, + ...rest + }) => React__default.createElement(ListItemIcon, Object.assign({ + key: icon.key + }, rest), icon))), React__default.createElement(Grid$1, { + item: true, + xs: 1 + }, React__default.createElement(Login, null))))), React__default.createElement(Drawer, { + anchor: "left", + open: open, + onClose: toggleDrawer(false), + classes: { + paper: classes.drawerPaper + }, + onClick: toggleDrawer(false) + }, React__default.createElement("div", { + className: classes.drawerHeader + }, React__default.createElement(IconButton$1, { + onClick: toggleDrawer(false) + }, React__default.createElement(ChevronLeftIcon, null))), React__default.createElement(Divider, null), React__default.createElement(List, null, !!itemsStart.length && itemsStart.map(headerItem => React__default.createElement(ListItem, { + button: true, + key: `him-${removeEmptySpaces(headerItem.title)}` + }, React__default.createElement(NavLink, { + to: headerItem.to, + className: classes.mobileNavLink, + activeClassName: classes.mobileNavLinkActive + }, React__default.createElement(ListItemIcon, null, headerItem.icon), React__default.createElement(ListItemText, { + primary: headerItem.title + }))))))); +}; + +const Header = props => React__default.createElement(React__default.Fragment, null, React__default.createElement(Hidden, { + smDown: true +}, React__default.createElement(HeaderDesktop, Object.assign({}, props))), React__default.createElement(Hidden, { + mdUp: true +}, React__default.createElement(HeaderMobile, Object.assign({}, props)))); + +const useStyles$n = makeStyles(theme => ({ + textContainer: { + alignItems: 'center', + backgroundColor: colors.primary, + display: 'flex', + justifyContent: 'center', + width: '100%' + }, + textContent: { + color: colors.white, + display: 'flex', + flexDirection: 'column', + textAlign: 'center', + [theme.breakpoints.down('sm')]: { + maxWidth: '90%' + }, + [theme.breakpoints.up('md')]: { + maxWidth: '65%' + }, + [theme.breakpoints.up('xl')]: { + maxWidth: '55%' + } + }, + titleContent: { + marginBottom: theme.spacing(1), + fontSize: theme.spacing(5), + fontWeight: fonts.weight.regular + }, + tongueImg: { + width: '100%' + } +})); + +const HeaderTongue = ({ + description, + titleLine1, + titleLine2 +}) => { + const classes = useStyles$n(); + return React__default.createElement(React__default.Fragment, null, React__default.createElement("div", { + className: classes.textContainer + }, React__default.createElement("div", { + className: classes.textContent + }, React__default.createElement(Typography, { + className: classes.titleContent, + variant: "h3" + }, titleLine1, React__default.createElement("br", null), ' ', titleLine2), React__default.createElement(Typography, { + variant: "subtitle1" + }, description))), React__default.createElement("img", { + className: classes.tongueImg, + src: headerTongueImg, + alt: "headerTongueImg" + })); +}; + +const useStyles$o = makeStyles(theme => ({ + root: { + alignItems: 'center', + display: 'flex', + flexDirection: 'column', + marginTop: theme.spacing(3) + }, + container: { + alignItems: 'center', + display: 'flex', + flexDirection: 'column', + [theme.breakpoints.up('md')]: { + maxWidth: '80%' + } + }, + grayBackground: { + backgroundColor: colors.gray1 + }, + mainTitle: { + fontSize: theme.typography.pxToRem(50), + margin: theme.spacing(2, 0) + }, + questionsSection: { + alignItems: 'center', + display: 'flex', + flexDirection: 'column', + marginTop: theme.spacing(2) + } +})); + +const FAQPageTemplate = ({ + className = '', + mainTitle, + questionsAndAnswers +}) => { + const classes = useStyles$o(); + return React__default.createElement("div", { + className: `${classes.root} ${className}`.trim() + }, React__default.createElement("div", { + className: classes.container + }, React__default.createElement(Typography, { + className: classes.mainTitle, + variant: "h1", + color: "primary" + }, mainTitle), React__default.createElement("div", { + className: classes.questionsSection + }, questionsAndAnswers.map((qAndA, i) => React__default.createElement(FAQSection, Object.assign({ + className: `${i % 2 === 0 ? classes.grayBackground : ''}`, + key: `faq-${removeEmptySpaces(qAndA.question)}` + }, qAndA)))))); +}; + +const useStyles$p = makeStyles(theme => ({ + root: { + marginTop: theme.spacing(globalConstants.headerHeight), + width: '100%' + } +})); + +const PageTemplate = ({ + children, + className = '', + ...props +}) => { + const classes = useStyles$p(); + return React__default.createElement("div", Object.assign({ + className: `${classes.root} ${className}`.trim() + }, props), children); +}; + +const defaultWeb3State = { + provider: undefined, + web3: undefined, + account: undefined, + networkInfo: undefined +}; +const Web3Store = createContext({ + state: defaultWeb3State, + actions: { + setProvider: () => Promise.resolve(), + onConnectedNetworkChange: () => 0, + onConnectedAccountChange: () => 0 + }, + requiredNetworkId: undefined, + requiredChainId: undefined +}); + +const getAccountFromEthAccounts = accounts => { + let account; + if (Array.isArray(accounts)) [account] = accounts;else account = accounts; + return account; +}; + +const shouldReadAccount = (requiredNetworkId, requiredChainId, networkInfo) => { + if (!requiredNetworkId) return true; + + if (requiredNetworkId === (networkInfo === null || networkInfo === void 0 ? void 0 : networkInfo.networkId)) { + if (requiredChainId) return requiredChainId === (networkInfo === null || networkInfo === void 0 ? void 0 : networkInfo.chainId); + return true; + } + + return false; +}; + +class Web3Provider extends Component { + constructor(props) { + super(props); + this.state = defaultWeb3State; + this.requiredNetworkId = props.requiredNetworkId; + this.requiredChainId = props.requiredChainId; + this.onConnectedNetworkChange = props.actions.onConnectedNetworkChange; + this.onConnectedAccountChange = props.actions.onConnectedAccountChange; + this.setProvider = this.setProvider.bind(this); + this.initialize(); + } + + setProvider(provider, onStateChanged) { + try { + const _this = this; + + return Promise.resolve(getWeb3(provider)).then(function (web3) { + return Promise.resolve(web3.eth.getAccounts()).then(function (accounts) { + return Promise.resolve(getNetworkInfoFromWeb3(web3)).then(function (networkInfo) { + const shouldSetAccount = shouldReadAccount(_this.requiredNetworkId, _this.requiredChainId, networkInfo); + const account = shouldSetAccount ? getAccountFromEthAccounts(accounts) : undefined; + + _this.setState({ + web3, + provider, + account, + networkInfo + }, () => onStateChanged && onStateChanged(account)); + }); + }); + }); + } catch (e) { + return Promise.reject(e); + } + } + + initialize() { + const _this2 = this; + + if (!window.ethereum) { + return; + } + + this.availableProviders = getAvailableProviders(); + window.ethereum.autoRefreshOnNetworkChange = false; + window.ethereum.on('networkChanged', function (_netId) { + try { + const { + networkInfo + } = _this2.state; + if (!networkInfo) return Promise.resolve(); + const { + provider + } = _this2.state; + return Promise.resolve(getWeb3(provider)).then(function (web3) { + return Promise.resolve(web3.eth.getAccounts()).then(function (accounts) { + return Promise.resolve(getNetworkInfoFromWeb3(web3)).then(function (newNetworkInfo) { + const shouldSetAccount = shouldReadAccount(_this2.requiredNetworkId, _this2.requiredChainId, newNetworkInfo); + const account = shouldSetAccount ? getAccountFromEthAccounts(accounts) : undefined; + + _this2.setState({ + networkInfo: newNetworkInfo, + account + }, () => _this2.onConnectedNetworkChange && _this2.onConnectedNetworkChange()); + }); + }); + }); + } catch (e) { + return Promise.reject(e); + } + }); + window.ethereum.on('accountsChanged', accounts => { + const { + networkInfo + } = this.state; + if (!networkInfo) return; + const shouldSetAccount = shouldReadAccount(this.requiredNetworkId, this.requiredChainId, networkInfo); + + if (shouldSetAccount) { + const account = getAccountFromEthAccounts(accounts); + + if (account) { + this.setState({ + account + }, () => this.onConnectedAccountChange && this.onConnectedAccountChange()); + } + } + }); + } + + render() { + const { + provider, + web3, + account, + networkInfo + } = this.state; + const { + setProvider, + onConnectedNetworkChange, + onConnectedAccountChange, + availableProviders + } = this; + const { + children + } = this.props; + return React__default.createElement(Web3Store.Provider, { + value: { + actions: { + setProvider, + onConnectedNetworkChange, + onConnectedAccountChange + }, + state: { + provider, + web3, + account, + networkInfo + }, + availableProviders + } + }, children); + } + +} + +var Web3Provider$1 = { + Consumer: Web3Store.Consumer, + Provider: Web3Provider +}; + +export { Accordion, Account, AccountModal, Button, Checkbox, CopyTextTooltip, FAQPageTemplate, FAQSection, FilterCheckboxCard, Footer, FooterColumn, Header, HeaderTongue, LabeledCheckbox, LoginOption, Logo, LogoNavbar, Modal, ModalBody, ModalDialogue, ModalFooter, ModalHeader, ModalTitle, NetworkIndicator, PageTemplate, RangeSliderWithInputs, ShortenTextTooltip, StyledNavTab, StyledTabs, SwitchTabs, TooltipIconButton, UnitsInput, Web3Provider$1 as Web3Provider, Web3Store, WithSpinner, WrongNetworkModal, colors, defaultWeb3State, doneThumbsUp as doneThumbsUpImg, fonts, footerTongue as footerTongueImg, globalConstants, headerTongueImg, logoBlackAndBlue, logoBlueIcon, logoFullWhite, maxSupportedNumber, metaMaskIconImg, minSupportedNumber, nameService as nameServiceImg, niftyIconImg, removeEmptySpaces, rifCom as rifComImg, rifDir as rifDirImg, rifGat as rifGatImg, rifMar as rifMarImg, rifPay as rifPayImg, rifSto as rifStoImg, rskLogo, shortenString, storage as storageImg, theme, tickWide as tickWideImg, validatedNumber }; +//# sourceMappingURL=index.modern.js.map diff --git a/dist/index.modern.js.map b/dist/index.modern.js.map new file mode 100644 index 00000000..c755684c --- /dev/null +++ b/dist/index.modern.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.modern.js","sources":["../src/components/atoms/Button.tsx","../src/theme/theme.ts","../src/components/atoms/Checkbox.tsx","../src/assets/images/icons/nifty.png","../src/assets/images/icons/rifCom.png","../src/assets/images/icons/rifDir.png","../src/assets/images/icons/rifGat.png","../src/assets/images/icons/rifMar.png","../src/assets/images/icons/rifPay.png","../src/assets/images/icons/rifSto.png","../src/models/ProviderInfo.ts","../src/components/atoms/LoginOption.tsx","../src/components/atoms/Logo.tsx","../src/components/atoms/LogoNavbar.tsx","../src/components/atoms/StyledNavTab.tsx","../src/components/atoms/NetworkIndicator.tsx","../src/components/atoms/modal/Modal.tsx","../src/components/atoms/modal/ModalHeader.tsx","../src/components/atoms/modal/ModalTitle.tsx","../src/components/atoms/modal/ModalFooter.tsx","../src/components/atoms/modal/ModalBody.tsx","../src/components/hoc/WithSpinner.tsx","../src/components/molecules/Accordion.tsx","../src/components/molecules/AccountModal.tsx","../src/components/molecules/CopyTextTooltip.tsx","../src/components/molecules/FAQSection.tsx","../src/components/molecules/LabeledCheckbox.tsx","../src/components/molecules/FilterCheckboxCard.tsx","../src/utils.ts","../src/components/molecules/FooterColumn.tsx","../src/components/molecules/ModalDialogue.tsx","../src/components/molecules/UnitsInput.tsx","../src/components/molecules/RangeSliderWithInputs.tsx","../src/components/molecules/ShortenTextTooltip.tsx","../src/components/molecules/StyledTabs.tsx","../src/components/molecules/SwitchTabs.tsx","../src/components/molecules/TooltipIconButton.tsx","../src/components/molecules/WrongNetworkModal.tsx","../src/components/organisms/Footer.tsx","../src/models/Enums.ts","../node_modules/babel-plugin-transform-async-to-promises/helpers.js","../src/services/Web3Service.ts","../src/components/organisms/Account.tsx","../src/components/organisms/Header/HeaderDesktop.tsx","../src/components/organisms/Header/HeaderMobile.tsx","../src/components/organisms/Header/Header.tsx","../src/components/organisms/Header/HeaderTongue.tsx","../src/components/templates/FAQPageTemplate.tsx","../src/components/templates/PageTemplate.tsx","../src/providers/Web3Provider.tsx"],"sourcesContent":["import React, { FC } from 'react'\nimport { Button as MUIButton, ButtonProps as MUIButtonProps } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\n\nexport interface ButtonProps extends MUIButtonProps {\n block?: boolean\n shadow?: boolean\n rounded?: boolean\n}\n\nconst useStyles = makeStyles(() => ({\n block: {\n width: '100%',\n },\n noShadow: {\n boxShadow: 'none',\n },\n rounded: {\n borderRadius: 50,\n },\n}))\n\nconst Button: FC = ({\n className = '', block, shadow, rounded, children, ...rest\n}) => {\n const classes = useStyles()\n\n return (\n \n {children}\n \n )\n}\n\nexport default Button\n","import { createMuiTheme } from '@material-ui/core/styles'\nimport '../assets/css/fonts/rubik.css'\n\nexport const colors = {\n black: '#000000',\n primary: '#008FF7',\n darkBlue: '#197DC6',\n gray1: '#F8F7F7',\n gray2: '#E5E5E5',\n gray3: '#C4C4C4',\n gray4: '#919191',\n gray5: '#4D4C4C',\n gray6: '#15171B',\n transparent: '#FFFFFF00',\n white: '#FFFFFF',\n}\n\nexport const fonts = {\n family: 'Rubik',\n size: {\n tiny: 10,\n small: 12,\n normal: 14,\n medium: 16,\n subtitleSmall: 18,\n subtitleBig: 22,\n },\n weight: {\n light: 300,\n regular: 400,\n medium: 500,\n bold: 700,\n },\n}\n\nexport const globalConstants = {\n headerHeight: 8,\n}\n\nconst theme = createMuiTheme({\n palette: {\n primary: {\n main: colors.primary,\n },\n secondary: {\n main: colors.gray4,\n },\n },\n typography: {\n fontFamily: fonts.family,\n button: {\n textTransform: 'none',\n },\n fontWeightLight: fonts.weight.light,\n fontWeightRegular: fonts.weight.regular,\n fontWeightMedium: fonts.weight.medium,\n fontWeightBold: fonts.weight.bold,\n body1: {\n fontWeight: fonts.weight.light,\n },\n },\n props: {},\n overrides: {\n MuiButton: {\n root: {\n fontWeight: fonts.weight.light,\n },\n },\n MuiFormControlLabel: {\n root: {\n color: colors.gray3,\n },\n },\n MuiSlider: {\n rail: {\n color: colors.gray3,\n height: 4,\n opacity: 1,\n },\n root: {\n width: '100%',\n color: colors.primary,\n height: 4,\n },\n track: {\n height: 4,\n },\n thumb: {\n marginLeft: -4,\n height: 14,\n width: 14,\n },\n },\n MuiTextField: {\n root: {\n color: colors.gray3,\n '&:hover': {\n color: colors.gray2,\n },\n },\n },\n },\n})\n\nexport default theme\n","import React, { FC, useState } from 'react'\nimport {\n Checkbox as MUICheckbox,\n CheckboxProps as MUICheckboxProps,\n makeStyles,\n createStyles,\n} from '@material-ui/core'\nimport { CheckBoxOutlineBlankSharp, CheckBoxSharp } from '@material-ui/icons'\nimport { colors } from '../../theme'\n\nexport type CheckboxProps = MUICheckboxProps;\n\nconst useStyles = makeStyles(() => createStyles({\n unCheckedIcon: {\n color: colors.gray4,\n },\n checkedIcon: {\n color: colors.primary,\n },\n}))\n\nconst Checkbox: FC = (props) => {\n const classes = useStyles()\n const { checked } = props\n const [isChecked, setIsChecked] = useState(!!checked)\n\n const handleChange = (event: React.ChangeEvent,\n newChecked: boolean): void => {\n setIsChecked(newChecked)\n const { onChange } = props\n\n if (onChange) onChange(event, newChecked)\n }\n\n return (\n \n }\n icon={\n \n }\n {...props}\n checked={isChecked}\n onChange={handleChange}\n />\n )\n}\n\nexport default Checkbox\n","/* loaded by smart-asset */\nexport default require(\"./nifty~RMIWdZeg.png\")","/* loaded by smart-asset */\nexport default require(\"./rifCom~udwpaCym.png\")","/* loaded by smart-asset */\nexport default require(\"./rifDir~bottaDNJ.png\")","/* loaded by smart-asset */\nexport default require(\"./rifGat~balFpEzC.png\")","/* loaded by smart-asset */\nexport default require(\"./rifMar~IDqKMWpK.png\")","/* loaded by smart-asset */\nexport default require(\"./rifPay~bdtOAceT.png\")","/* loaded by smart-asset */\nexport default require(\"./rifSto~fMRetflo.png\")","import { metaMaskIconImg, niftyIconImg } from '../assets/images'\n\nexport default interface ProviderInfo {\n name: string\n eProvider: EProvider\n iconImg?: string\n}\n\nexport enum EProvider {\n METAMASK = 'Metamask',\n NIFTY = 'Nifty',\n LEDGER = 'Ledger',\n TREZOR = 'Trezor',\n TRUST = 'Trust',\n LOCAL = 'Localhost',\n GO_WALLET = 'GoWallet',\n ALPHA_WALLET = 'AlphaWallet',\n STATUS = 'status',\n CIPHER = 'cipher',\n COINBASE = 'coinbase',\n MIST = 'mist',\n PARITY = 'parity',\n INFURA = 'infura'\n}\n\nexport const getProviderInfo = (eProvider: EProvider): ProviderInfo => {\n switch (eProvider) {\n case EProvider.METAMASK:\n return {\n name: 'MetaMask',\n eProvider,\n iconImg: metaMaskIconImg,\n }\n case EProvider.NIFTY:\n return {\n name: 'Nifty',\n eProvider,\n iconImg: niftyIconImg,\n }\n case EProvider.LEDGER:\n return {\n name: 'Ledger',\n eProvider,\n }\n case EProvider.TREZOR:\n return {\n name: 'Trezor',\n eProvider,\n }\n case EProvider.TRUST:\n return {\n name: 'Trust',\n eProvider,\n }\n case EProvider.GO_WALLET:\n return {\n name: 'Go Wallet',\n eProvider,\n }\n case EProvider.ALPHA_WALLET:\n return {\n name: 'Alpha Wallet',\n eProvider,\n }\n case EProvider.STATUS:\n return {\n name: 'Status',\n eProvider,\n }\n case EProvider.COINBASE:\n return {\n name: 'Coinbase',\n eProvider,\n }\n case EProvider.MIST:\n return {\n name: 'Mist',\n eProvider,\n }\n case EProvider.PARITY:\n return {\n name: 'Parity',\n eProvider,\n }\n case EProvider.INFURA:\n return {\n name: 'Infura',\n eProvider,\n }\n case EProvider.LOCAL:\n return {\n name: 'Localhost',\n eProvider,\n }\n default: {\n throw new Error(\n `EProvider not implemented or unknown. Chosen provider ${eProvider}`,\n )\n }\n }\n}\n","import React, { FC } from 'react'\nimport { makeStyles, Theme, Tooltip } from '@material-ui/core'\nimport Button from './Button'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport { niftyIconImg } from '../../assets/images'\n\nexport interface LoginOptionProps {\n className?: string\n onClick?: () => void\n providerInfo?: ProviderInfo\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n padding: 5,\n margin: 5,\n width: '100%',\n },\n content: {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n maxHeight: theme.spacing(5),\n justifyContent: 'center',\n },\n imageWrapper: {\n maxHeight: theme.spacing(4),\n marginRight: theme.spacing(2),\n },\n}))\n\n/**\n * If not providerInfo is received, we assume there's no provider available and so suggest to install Nifty wallet\n * Same happens when no onClick is provided. We open the Nifty page on a new tab\n */\nconst LoginOption: FC = ({\n className = '',\n onClick,\n providerInfo,\n ...rest\n}) => {\n const classes = useStyles()\n\n const providerContent = (\n
\n {\n providerInfo?.iconImg\n && (\n \n )\n }\n {providerInfo?.name}\n
\n )\n\n const handleOnClick = () => {\n if (onClick) {\n return onClick()\n }\n return window.open('https://www.poa.network/for-users/nifty-wallet/getting-started', '_blank')\n }\n\n return (\n \n {/* only with Nifty we display the Tooltip because atm we can't check if MetaMask is also enabled */}\n {!!providerInfo && providerInfo.eProvider === EProvider.NIFTY\n && (\n \n {providerContent}\n \n )}\n {!!providerInfo && providerInfo.eProvider !== EProvider.NIFTY\n && providerContent}\n {!providerInfo\n && (\n
\n \n Install Nifty wallet\n
\n )}\n \n )\n}\n\nexport default LoginOption\n","import React, { FC } from 'react'\nimport { logoFullWhite } from '../../assets/images'\n\ninterface LogoProps extends React.Props {\n alt?: string\n}\n\nconst Logo: FC = ({ alt = 'RIF OS logo', ...rest }) => {alt}\n\nexport default Logo\n","import React, { FC } from 'react'\nimport { logoFullWhite } from '../../assets/images'\n\ninterface LogoProps extends React.Props {\n alt?: string\n height?: string | number\n style?: React.CSSProperties\n}\n\nconst LogoNavbar: FC = ({ alt = 'navbar logo', height = '44px', ...rest }) => (\n \n)\nexport default LogoNavbar\n","import React, { FC } from 'react'\nimport { Theme, makeStyles } from '@material-ui/core/styles'\nimport Tab from '@material-ui/core/Tab'\nimport { NavLink } from 'react-router-dom'\nimport { colors } from '../../theme'\n\nexport interface StyledNavTabProps {\n label: string\n to: string\n value: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n textTransform: 'none',\n color: colors.gray5,\n fontWeight: theme.typography.fontWeightRegular,\n fontSize: theme.typography.pxToRem(15),\n marginRight: theme.spacing(1),\n '&:focus': {\n opacity: 1,\n },\n },\n selected: {\n fontWeight: theme.typography.fontWeightMedium,\n borderBottom: '2px solid #000000',\n },\n}))\n\nconst StyledNavTab: FC = (props: StyledNavTabProps) => {\n const classes = useStyles()\n return \n}\n\nexport default StyledNavTab\n","import React, { FC } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport CheckCircleOutlineOutlinedIcon from '@material-ui/icons/CheckCircleOutlineOutlined'\nimport ErrorIcon from '@material-ui/icons/Error'\nimport WarningIcon from '@material-ui/icons/Warning'\nimport { green, yellow } from '@material-ui/core/colors'\n\nexport interface NetworkIndicatorProps {\n iconClassName?: string\n currentNetworkId?: number\n requiredNetworkId?: number\n onCorrectNetworkMessage?: string\n onNetworkMismatchMessage?: string\n noNetworkMessage?: string\n}\n\nconst defaultonCorrectNetworkMessage = 'You are on the right network'\nconst deaulftonNetworkMismatchMessage = 'You are on the wrong network'\nconst defaultNoNetworkMessage = 'You are not connected to any network'\n\nexport enum NetworkStatus {\n NO_NETWORK = 1,\n NETWORK_MISSMATCH = 2,\n CORRECT_NETWORK = 3\n}\n\nconst getNetworkStatus = (currentNetworkId, requiredNetworkId): NetworkStatus => {\n if (!currentNetworkId) return NetworkStatus.NO_NETWORK\n\n if (currentNetworkId === requiredNetworkId) return NetworkStatus.CORRECT_NETWORK\n return NetworkStatus.NETWORK_MISSMATCH\n}\n\nconst NetworkIndicator: FC = ({\n iconClassName = '',\n currentNetworkId, requiredNetworkId, onCorrectNetworkMessage,\n onNetworkMismatchMessage, noNetworkMessage,\n}) => {\n const networkStatus = getNetworkStatus(currentNetworkId, requiredNetworkId)\n\n const iconPerNetworkStatus = new Map()\n iconPerNetworkStatus.set(NetworkStatus.NO_NETWORK, (\n \n \n \n ))\n iconPerNetworkStatus.set(NetworkStatus.NETWORK_MISSMATCH, (\n \n \n \n ))\n iconPerNetworkStatus.set(NetworkStatus.CORRECT_NETWORK, (\n \n \n \n ))\n\n return (\n iconPerNetworkStatus.get(networkStatus)\n )\n}\n\nexport default NetworkIndicator\n","import React, { FC } from 'react'\nimport { Modal as MUIModal, ModalProps as MUIModalProps } from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport type ModalProps = MUIModalProps;\n\nconst useStyles = makeStyles((theme: Theme) => ({\n paper: {\n backgroundColor: theme.palette.background.paper,\n border: `2px solid ${colors.primary}`,\n boxShadow: theme.shadows[5],\n left: '50%',\n minWidth: 400,\n padding: theme.spacing(2, 4, 3),\n position: 'absolute',\n top: '50%',\n transform: 'translate(-50%, -50%)',\n },\n}))\n\nconst Modal: FC = ({ children, ...rest }) => {\n const classes = useStyles()\n\n return (\n \n
\n {children}\n
\n
\n )\n}\n\nexport default Modal\n","import React, { FC } from 'react'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport interface ModalHeaderProps {\n className?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n borderBottom: `1px solid ${colors.gray2}`,\n color: colors.primary,\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n },\n}))\n\nconst ModalHeader: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalHeader\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\n\nexport interface ModalTitleProps {\n className?: string\n}\n\nconst ModalTitle: FC = ({ children, ...rest }) => (\n \n {children}\n \n)\n\nexport default ModalTitle\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport interface ModalFooterProps {\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n borderTop: `1px solid ${colors.gray2}`,\n display: 'flex',\n justifyContent: 'center',\n paddingTop: theme.spacing(1),\n width: '100%',\n },\n}))\n\nconst ModalFooter: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalFooter\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\n\nexport interface ModalBodyProps {\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n padding: theme.spacing(3, 0),\n width: '100%',\n },\n}))\n\nconst ModalBody: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalBody\n","import React from 'react'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { logoBlueIcon } from '../../assets/images'\n\nconst useStyles = makeStyles(() => ({\n '@keyframes spin': {\n '0%': { transform: 'rotate(0deg)' },\n '100%': { transform: 'rotate(360deg)' },\n },\n root: {\n position: 'relative',\n },\n overlay: {\n position: 'absolute',\n zIndex: 2,\n height: '100%',\n width: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n background: '#FFFFFF55',\n },\n spinner: {\n display: 'inline-block',\n zIndex: 3,\n width: '50px',\n height: '50px',\n border: 'none',\n animation: '$spin 2s ease-in-out infinite',\n },\n}))\n\nconst WithSpinner = (WrappedComponent: React.ElementType) => {\n const Spinner = ({ isLoading, ...props }) => {\n const classes = useStyles()\n\n return (\n
\n {\n isLoading\n && (\n
\n \"logo\"\n
\n )\n }\n \n
\n )\n }\n return Spinner\n}\n\nexport default WithSpinner\n","import React, { FC, useState } from 'react'\nimport { Accordion as MUIAccordion, AccordionProps as MUIAccordionProps } from '@material-ui/core'\nimport Typography from '@material-ui/core/Typography'\nimport AccordionDetails from '@material-ui/core/AccordionDetails'\nimport AccordionSummary from '@material-ui/core/AccordionSummary'\nimport { makeStyles, Theme, createStyles } from '@material-ui/core/styles'\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore'\nimport { colors } from '../../theme'\n\ninterface AccordionProps extends MUIAccordionProps {\n id: string\n title?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n root: {\n boxShadow: 'none',\n color: colors.gray4,\n width: '100%',\n },\n heading: {\n color: colors.gray4,\n fontSize: theme.typography.pxToRem(15),\n fontWeight: theme.typography.fontWeightRegular,\n width: '100%',\n },\n accordionSummary: {\n borderBottom: `1px solid ${colors.gray2}`,\n },\n}))\n\nconst Accordion: FC = ({\n children, expanded, id, title,\n}) => {\n const classes = useStyles()\n const [isExpanded, setIsExpanded] = useState(!!expanded)\n\n const onChange = (): void => setIsExpanded(!isExpanded)\n\n return (\n \n }\n aria-controls={`panel-${id}-content`}\n id={id}\n >\n {title}\n \n \n {children}\n \n \n )\n}\n\nexport default Accordion\n","import React, { FC } from 'react'\nimport Web3 from 'web3'\nimport {\n Button, LoginOption, Modal, ModalBody, ModalFooter, ModalHeader, ModalTitle,\n} from '../atoms'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport NetworkInfo from '../../models/NetworkInfo'\n\nexport interface AccountModalProps {\n web3?: Web3\n networkInfo?: NetworkInfo\n setProvider?: (provider: EProvider, onProviderSet?:\n (account?: string) => void) => Promise\n availableProviders?: ProviderInfo[]\n onClose?: () => void\n onProviderSet?: (account) => void\n open: boolean\n}\n\nconst AccountModal: FC = ({\n setProvider,\n availableProviders,\n open,\n onClose,\n onProviderSet,\n}) => (\n \n \n \n Connect a wallet to get started\n \n \n {\n availableProviders && availableProviders.length && availableProviders.map(\n (providerInfo) => (\n => {\n if (setProvider) await setProvider(providerInfo.eProvider, onProviderSet)\n }}\n />\n ),\n )\n }\n {!availableProviders\n && (\n // TODO: Create LoginOptionTemplate to extract this\n // empty LoginOption means suggest to install Nifty wallet\n \n )}\n \n \n \n Close\n \n \n \n \n)\n\nexport default AccountModal\n","import React, { FC, useState } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport { makeStyles } from '@material-ui/core/styles'\nimport FileCopyIcon from '@material-ui/icons/FileCopy'\nimport Typography from '@material-ui/core/Typography'\n\nexport interface CopyTextTooltipProps {\n displayElement: React.ReactElement\n fullText: string\n}\n\nconst useStyles = makeStyles(() => ({\n tooltipTitle: {\n display: 'flex',\n alignItems: 'center',\n },\n}))\n\nconst CopyTextTooltip: FC = ({ displayElement, fullText }) => {\n const [isCopied, setIsCopied] = useState(false)\n\n const classes = useStyles()\n\n const tooltipContent = (\n
\n \n \n {fullText}\n \n
\n )\n\n return (\n Copied! : tooltipContent}\n onClick={() => {\n navigator.clipboard.writeText(fullText)\n .then(() => { setIsCopied(true) })\n }}\n onClose={() => {\n setIsCopied(false)\n }}\n >\n {displayElement}\n \n )\n}\n\nexport default CopyTextTooltip\n","import React, { FC, useState } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Accordion from '@material-ui/core/Accordion'\nimport AccordionDetails from '@material-ui/core/AccordionDetails'\nimport AccordionSummary from '@material-ui/core/AccordionSummary'\nimport Typography from '@material-ui/core/Typography'\nimport AddIcon from '@material-ui/icons/Add'\nimport RemoveIcon from '@material-ui/icons/Remove'\nimport { colors, fonts } from '../../theme'\n\nexport interface FAQSectionProps {\n answer: string\n initiallyExpanded?: boolean\n question: string\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n boxShadow: 'none',\n color: colors.gray4,\n width: '100%',\n },\n heading: {\n display: 'flex',\n justifyContent: 'center',\n color: colors.gray5,\n fontSize: fonts.size.subtitleSmall,\n width: '100%',\n },\n headingExpanded: {\n color: colors.primary,\n },\n headingCollapsed: {\n fontWeight: fonts.weight.regular,\n },\n panelDetails: {\n display: 'flex',\n justifyContent: 'center',\n },\n answerContainer: {\n [theme.breakpoints.up('md')]: {\n maxWidth: '80%',\n },\n },\n answerText: {\n color: colors.gray5,\n },\n}))\n\nconst FAQSection: FC = ({\n className = '', initiallyExpanded, question, answer,\n}) => {\n const classes = useStyles()\n const [isExpanded, setIsExpanded] = useState(!!initiallyExpanded)\n\n const onChange = (): void => setIsExpanded(!isExpanded)\n\n return (\n \n : }\n >\n {question}\n \n \n
\n {answer}\n
\n
\n
\n )\n}\n\nexport default FAQSection\n","import React, { FC } from 'react'\nimport { FormControlLabel } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Checkbox, { CheckboxProps } from '../atoms/Checkbox'\nimport { colors } from '../../theme'\n\nexport interface LabeledCheckboxProps extends CheckboxProps {\n labelText: string\n labelClassName?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n color: colors.gray4,\n width: '100%',\n },\n}))\n\nconst LabeledCheckbox: FC = ({ labelText, labelClassName = '', ...rest }) => {\n const classes = useStyles()\n return (\n \n }\n />\n\n )\n}\n\nexport default LabeledCheckbox\n","import React, { FC } from 'react'\nimport LabeledCheckbox, { LabeledCheckboxProps } from './LabeledCheckbox'\n\nexport interface FilterCheckboxCardProps {\n className?: string\n items: LabeledCheckboxProps[]\n onClick?: (event: React.MouseEvent) => void\n}\n\nconst FilterCheckboxCard: FC = ({ className = '', onClick, items }) => (\n
\n {items.map((item: LabeledCheckboxProps, i) => (\n \n ))}\n
\n)\n\nexport default FilterCheckboxCard\n","const shortenString = (\n str: string,\n largerThan = 16,\n charsShownCount = 6,\n): string => (str.length > largerThan\n ? `${str.substr(0, charsShownCount)}...${str.substr(str.length - 4)}`\n : str)\n\nconst removeEmptySpaces = (str: string): string => str.replace(/\\s/g, '')\n\nconst maxSupportedNumber = 99999999999999\nconst minSupportedNumber = 0.000001\n\nconst validatedNumber = (num: number): number => {\n if (num > 0) {\n if (num > maxSupportedNumber) return maxSupportedNumber\n\n if (num < minSupportedNumber) return minSupportedNumber\n }\n\n if (num < 0) {\n if (num < -maxSupportedNumber) return -maxSupportedNumber\n\n if (num > -minSupportedNumber) return -minSupportedNumber\n }\n return num\n}\n\nexport {\n shortenString,\n removeEmptySpaces,\n maxSupportedNumber,\n minSupportedNumber,\n validatedNumber,\n}\n","import React, { FC } from 'react'\nimport { NavLinkProps, NavLink } from 'react-router-dom'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../theme'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FooterColumnProps {\n className?: string\n links: FooterLinkProps[]\n title: string\n}\n\nexport interface FooterLinkProps extends NavLinkProps {\n isExternal?: boolean\n title: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n },\n footerLink: {\n color: colors.gray4,\n fontWeight: fonts.weight.light,\n textDecoration: 'none',\n '&:hover': {\n fontWeight: fonts.weight.regular,\n },\n },\n footerTitle: {\n fontSize: fonts.size.subtitleBig,\n textAlign: 'center',\n },\n}))\n\nconst FooterColumn: FC = ({ title, links, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {title}\n {\n links.map((link: FooterLinkProps) => {\n const key = removeEmptySpaces(link.title)\n\n if (link.isExternal) {\n const href = (link.to || '#').toString()\n return (\n \n {link.title}\n \n )\n }\n return (\n \n {link.title}\n \n )\n })\n }\n
\n )\n}\n\nexport default FooterColumn\n","import React, { FC } from 'react'\nimport {\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n ModalTitle,\n} from '../atoms'\nimport { ModalProps } from '../atoms/modal/Modal'\n\nexport interface ModalDialogueProps extends ModalProps {\n title: string\n footer?: React.ReactElement\n}\n\nconst ModalDialogue: FC = ({\n title,\n footer,\n children,\n ...props\n}) => (\n \n \n \n {title}\n \n {children}\n {footer}\n \n \n)\n\nexport default ModalDialogue\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Input, { InputProps } from '@material-ui/core/Input'\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../theme'\n\nexport interface UnitsInputProps extends InputProps {\n handleOnChange: (event: React.ChangeEvent) => void\n handleOnBlur?: () => void\n maxValue?: number\n minValue?: number\n step?: number\n units?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n color: colors.gray4,\n display: 'flex',\n },\n input: {\n color: colors.gray4,\n paddingLeft: theme.spacing(0.1),\n textAlign: 'center',\n '&::before': {\n borderBottom: `1px solid ${colors.gray4}`,\n },\n },\n inputContainer: {\n paddingRight: '0 !important',\n },\n units: {\n color: colors.gray4,\n display: 'flex',\n fontSize: fonts.size.tiny,\n },\n unitsContainer: {\n alignSelf: 'center',\n color: colors.gray4,\n display: 'flex',\n fontSize: fonts.size.normal,\n paddingLeft: '0 !important',\n },\n}))\n\nconst UnitsInput: FC = ({\n maxValue,\n minValue,\n units,\n value,\n step = 1,\n handleOnBlur,\n handleOnChange,\n ...rest\n}) => {\n const classes = useStyles()\n\n return (\n \n \n \n \n \n \n \n {units}\n \n \n \n \n )\n}\n\nexport default UnitsInput\n","import Slider, { SliderProps } from '@material-ui/core/Slider'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport UnitsInput from './UnitsInput'\nimport { validatedNumber } from '../../utils'\nimport { fonts } from '../../theme'\n\nexport interface RangeSliderWithInputsProps extends SliderProps {\n values: {\n start: number\n end: number\n }\n unit?: string\n handleChange: ({ min, max }) => void\n className?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n width: '100%',\n },\n inputsContainer: {\n alignSelf: 'center',\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n },\n toContainer: {\n alignSelf: 'center',\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n fontWeight: fonts.weight.regular,\n },\n}))\n\nconst RangeSliderWithInputs: FC = ({\n values: {\n start: startValue, end: endValue,\n }, unit, handleChange, className, ...rest\n}) => {\n const classes = useStyles()\n\n const maxValue = rest.max || endValue\n const minValue = rest.min || startValue\n const step = rest.step || 1\n\n const handleStartInputChange = (\n event: React.ChangeEvent,\n ): void => {\n const newStartValue = validatedNumber(Number(event.target.value)) || minValue\n handleChange({ min: newStartValue, max: endValue })\n }\n\n const handleEndInputChange = (\n event: React.ChangeEvent,\n ): void => {\n const newEndValue = validatedNumber(Number(event.target.value)) || endValue\n handleChange({ min: startValue, max: newEndValue })\n }\n\n const handleSliderChange = (\n _: React.ChangeEvent<{}>, newSliderValue: number | number[],\n ): void => {\n handleChange({ min: newSliderValue[0], max: newSliderValue[1] })\n }\n\n const handleStartValueBlur = (): void => {\n if (startValue < minValue) {\n handleChange({ min: minValue, max: endValue })\n } else if (startValue > endValue) {\n handleChange({ min: endValue, max: endValue })\n }\n }\n\n const handleEndValueBlur = (): void => {\n if (endValue < startValue) {\n handleChange({ min: minValue, max: startValue })\n } else if (endValue > maxValue) {\n handleChange({ min: minValue, max: maxValue })\n }\n }\n\n const getCommonInputValues = (): {} => ({\n maxValue,\n minValue,\n step,\n units: unit,\n })\n\n return (\n
\n \n
\n \n \n to\n \n \n
\n
\n )\n}\n\nexport default RangeSliderWithInputs\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport CopyTextTooltip from './CopyTextTooltip'\nimport { shortenString } from '../../utils'\n\nexport interface ShortenTextTooltipProps {\n value: string\n maxLength?: number\n charsShownCount?: number\n}\n\nconst ShortenTextTooltip: FC = ({ value, maxLength = 20, charsShownCount }) => (\n \n {\n value.length > maxLength\n && (\n {shortenString(value, maxLength, charsShownCount || maxLength - 5)}}\n fullText={value}\n />\n )\n }\n {\n value.length <= maxLength\n && value\n }\n \n)\n\nexport default ShortenTextTooltip\n","import React, { FC } from 'react'\nimport Tabs, { TabsProps } from '@material-ui/core/Tabs'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { colors } from '../../theme'\n\nexport interface StyledTabsProps {\n value: string\n onChange: (event: React.ChangeEvent<{}>, newValue: string) => void\n}\n\nconst useStyles = makeStyles({\n indicator: {\n display: 'flex',\n justifyContent: 'center',\n backgroundColor: 'transparent',\n },\n root: {\n borderBottom: `1px solid ${colors.gray3}`,\n },\n})\n\nconst StyledTabs: FC = (props: TabsProps) => {\n const { children } = props\n const classes = useStyles()\n return (\n \n {children}\n \n )\n}\n\nexport default StyledTabs\n","import { Tab as MUITab, Tabs as MUITabs } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React, { FC } from 'react'\nimport { colors, fonts } from '../../theme'\n\nexport interface SwitchTabsProps {\n label1: string\n label2: string\n value?: 0 | 1\n onChange: (event: React.ChangeEvent<{}>, value: number) => void\n}\n\nconst a11yProps = (index: number): {} => ({\n id: `full-width-tab-${index}`,\n 'aria-controls': `full-width-tabpanel-${index}`,\n})\n\nconst useStyles = makeStyles(() => ({\n root: {\n backgroundColor: colors.white,\n minHeight: 20,\n width: '100%',\n border: `${colors.primary} solid 1px`,\n borderRadius: 50,\n overflow: 'hidden',\n },\n tabContainer: {\n minHeight: 20,\n width: '100%',\n },\n tab: {\n '&:hover': {\n color: colors.primary,\n },\n borderRadius: 50,\n color: colors.gray3,\n fontWeight: fonts.weight.light,\n maxWidth: '50%',\n minHeight: '100%',\n minWidth: '50%',\n outlineStyle: 'none',\n padding: 0,\n textTransform: 'capitalize',\n zIndex: 1,\n '&:focus': {\n outlineStyle: 'none',\n },\n },\n // shows the transition between tabs\n tabIndicator: {\n backgroundColor: colors.primary,\n borderRadius: 50,\n height: '100%',\n },\n tabSelected: {\n // the '!important' overrides the on hover functionality when it's active\n backgroundColor: `${colors.primary} !important`,\n color: `${colors.white} !important`,\n },\n}))\n\nconst SwitchTabs: FC = ({\n label1, label2, value: controlledValue, onChange,\n}) => {\n const classes = useStyles()\n\n const handleChange = (\n event: React.ChangeEvent<{}>, newValue: number,\n ): void => {\n onChange(event, newValue)\n }\n\n return (\n
\n \n \n \n \n
\n )\n}\n\nexport default SwitchTabs\n","import React, { FC } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport IconButton, { IconButtonProps } from '@material-ui/core/IconButton'\n\nexport interface TooltipIconButtonProps {\n tooltipTitle: string\n iconButtonProps: IconButtonProps\n icon: React.ReactNode\n}\n\nconst TooltipIconButton: FC = ({\n tooltipTitle,\n iconButtonProps,\n icon,\n}) => (\n \n \n \n {icon}\n \n \n\n \n)\n\nexport default TooltipIconButton\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport Box from '@material-ui/core/Box'\nimport Grid from '@material-ui/core/Grid'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../theme'\nimport ModalDialogue from './ModalDialogue'\n\nexport interface WrongNetworkModalProps {\n open: boolean\n currentNetworkName?: string\n requiredNetworkName: string\n onClose: () => void\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n boxContainer: {\n border: `1px solid ${colors.primary}`,\n padding: theme.spacing(5),\n marginTop: theme.spacing(3),\n },\n loaderContainer: {\n display: 'flex',\n justifyContent: 'center',\n },\n}))\n\nconst WrongNetworkModal: FC = ({\n open, currentNetworkName = 'Private network', requiredNetworkName, onClose,\n}) => {\n const classes = useStyles()\n return (\n \n \n \n This dApp only works on the\n {' '}\n {requiredNetworkName}\n .\n You are currently on\n {' '}\n {currentNetworkName}\n .\n \n \n \n \n \n \n Waiting for the right network...\n \n Switch networks on your wallet\n \n \n \n \n \n )\n}\nexport default WrongNetworkModal\n","import React, { FC, HTMLAttributes } from 'react'\nimport { Grid } from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport FooterColumn, { FooterColumnProps } from '../molecules/FooterColumn'\nimport { colors, fonts } from '../../theme'\nimport { logoBlackAndBlue } from '../../assets/images'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FooterProps extends HTMLAttributes {\n className?: string\n copyrightText: string\n linksColumns: FooterColumnProps[]\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n copyright: {\n display: 'flex',\n justifyContent: 'center',\n },\n copyrightContent: {\n color: colors.gray4,\n fontSize: fonts.size.tiny,\n },\n footerContainer: {\n backgroundColor: colors.gray2,\n display: 'flex',\n justifyContent: 'center',\n paddingBottom: theme.spacing(2),\n width: '100%',\n },\n footerContent: {\n marginTop: theme.spacing(2),\n maxWidth: '80%',\n width: '100%',\n },\n linksColumn: {\n marginBottom: theme.spacing(1),\n },\n logoColumn: {\n display: 'flex',\n justifyContent: 'center',\n padding: theme.spacing(5),\n },\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n paddingTop: theme.spacing(4),\n width: '100%',\n },\n tongue: {\n backgroundColor: colors.gray2,\n borderTopLeftRadius: '50% 80%',\n borderTopRightRadius: '50% 80%',\n height: theme.spacing(10),\n width: '100%',\n },\n}))\n\nconst Footer: FC = ({\n className = '', copyrightText, linksColumns, ...rest\n}) => {\n const classes = useStyles()\n\n return (\n
\n
\n
\n
\n \n \n \"logo\"\n \n {\n linksColumns.map((linkColumn: FooterColumnProps) => (\n \n \n \n ))\n }\n \n
\n \n {copyrightText}\n \n
\n
\n
\n
\n )\n}\n\nexport default Footer\n","export enum ConnectionStatus {\n LoggedIn = 0,\n LoggedOut = 1,\n WalletLocked = 2,\n WrongNetwork = 3\n}\n\nexport default ConnectionStatus\n","// A type of promise-like that resolves synchronously and supports only one observer\nexport const _Pact = /*#__PURE__*/(function() {\n\tfunction _Pact() {}\n\t_Pact.prototype.then = function(onFulfilled, onRejected) {\n\t\tconst result = new _Pact();\n\t\tconst state = this.s;\n\t\tif (state) {\n\t\t\tconst callback = state & 1 ? onFulfilled : onRejected;\n\t\t\tif (callback) {\n\t\t\t\ttry {\n\t\t\t\t\t_settle(result, 1, callback(this.v));\n\t\t\t\t} catch (e) {\n\t\t\t\t\t_settle(result, 2, e);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\tthis.o = function(_this) {\n\t\t\ttry {\n\t\t\t\tconst value = _this.v;\n\t\t\t\tif (_this.s & 1) {\n\t\t\t\t\t_settle(result, 1, onFulfilled ? onFulfilled(value) : value);\n\t\t\t\t} else if (onRejected) {\n\t\t\t\t\t_settle(result, 1, onRejected(value));\n\t\t\t\t} else {\n\t\t\t\t\t_settle(result, 2, value);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(result, 2, e);\n\t\t\t}\n\t\t};\n\t\treturn result;\n\t}\n\treturn _Pact;\n})();\n\n// Settles a pact synchronously\nexport function _settle(pact, state, value) {\n\tif (!pact.s) {\n\t\tif (value instanceof _Pact) {\n\t\t\tif (value.s) {\n\t\t\t\tif (state & 1) {\n\t\t\t\t\tstate = value.s;\n\t\t\t\t}\n\t\t\t\tvalue = value.v;\n\t\t\t} else {\n\t\t\t\tvalue.o = _settle.bind(null, pact, state);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (value && value.then) {\n\t\t\tvalue.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));\n\t\t\treturn;\n\t\t}\n\t\tpact.s = state;\n\t\tpact.v = value;\n\t\tconst observer = pact.o;\n\t\tif (observer) {\n\t\t\tobserver(pact);\n\t\t}\n\t}\n}\n\nexport function _isSettledPact(thenable) {\n\treturn thenable instanceof _Pact && thenable.s & 1;\n}\n\n// Converts argument to a function that always returns a Promise\nexport function _async(f) {\n\treturn function() {\n\t\tfor (var args = [], i = 0; i < arguments.length; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\t\ttry {\n\t\t\treturn Promise.resolve(f.apply(this, args));\n\t\t} catch(e) {\n\t\t\treturn Promise.reject(e);\n\t\t}\n\t}\n}\n\n// Awaits on a value that may or may not be a Promise (equivalent to the await keyword in ES2015, with continuations passed explicitly)\nexport function _await(value, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(value) : value;\n\t}\n\tif (!value || !value.then) {\n\t\tvalue = Promise.resolve(value);\n\t}\n\treturn then ? value.then(then) : value;\n}\n\n// Awaits on a value that may or may not be a Promise, then ignores it\nexport function _awaitIgnored(value, direct) {\n\tif (!direct) {\n\t\treturn value && value.then ? value.then(_empty) : Promise.resolve();\n\t}\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continue(value, then) {\n\treturn value && value.then ? value.then(then) : then(value);\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continueIgnored(value) {\n\tif (value && value.then) {\n\t\treturn value.then(_empty);\n\t}\n}\n\n// Asynchronously iterate through an object that has a length property, passing the index as the first argument to the callback (even as the length property changes)\nexport function _forTo(array, body, check) {\n\tvar i = -1, pact, reject;\n\tfunction _cycle(result) {\n\t\ttry {\n\t\t\twhile (++i < array.length && (!check || !check())) {\n\t\t\t\tresult = body(i);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pact) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t} else {\n\t\t\t\tpact = result;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t}\n\t}\n\t_cycle();\n\treturn pact;\n}\n\n// Asynchronously iterate through an object's properties (including properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forIn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tkeys.push(key);\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\n// Asynchronously iterate through an object's own properties (excluding properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forOwn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tif (Object.prototype.hasOwnProperty.call(target, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\nexport const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\"))) : \"@@iterator\";\n\n// Asynchronously iterate through an object's values\n// Uses for...of if the runtime supports it, otherwise iterates until length on a copy\nexport function _forOf(target, body, check) {\n\tif (typeof target[_iteratorSymbol] === \"function\") {\n\t\tvar iterator = target[_iteratorSymbol](), step, pact, reject;\n\t\tfunction _cycle(result) {\n\t\t\ttry {\n\t\t\t\twhile (!(step = iterator.next()).done && (!check || !check())) {\n\t\t\t\t\tresult = body(step.value);\n\t\t\t\t\tif (result && result.then) {\n\t\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pact) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t} else {\n\t\t\t\t\tpact = result;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t\t}\n\t\t}\n\t\t_cycle();\n\t\tif (iterator.return) {\n\t\t\tvar _fixup = function(value) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!step.done) {\n\t\t\t\t\t\titerator.return();\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (pact && pact.then) {\n\t\t\t\treturn pact.then(_fixup, function(e) {\n\t\t\t\t\tthrow _fixup(e);\n\t\t\t\t});\n\t\t\t}\n\t\t\t_fixup();\n\t\t}\n\t\treturn pact;\n\t}\n\t// No support for Symbol.iterator\n\tif (!(\"length\" in target)) {\n\t\tthrow new TypeError(\"Object is not iterable\");\n\t}\n\t// Handle live collections properly\n\tvar values = [];\n\tfor (var i = 0; i < target.length; i++) {\n\t\tvalues.push(target[i]);\n\t}\n\treturn _forTo(values, function(i) { return body(values[i]); }, check);\n}\n\nexport const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\"))) : \"@@asyncIterator\";\n\n// Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\nexport function _forAwaitOf(target, body, check) {\n\tif (typeof target[_asyncIteratorSymbol] === \"function\") {\n\t\tvar pact = new _Pact();\n\t\tvar iterator = target[_asyncIteratorSymbol]();\n\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\treturn pact;\n\t\tfunction _resumeAfterBody(result) {\n\t\t\tif (check && check()) {\n\t\t\t\treturn _settle(pact, 1, iterator.return ? iterator.return().then(function() { return result; }) : result);\n\t\t\t}\n\t\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\t}\n\t\tfunction _resumeAfterNext(step) {\n\t\t\tif (step.done) {\n\t\t\t\t_settle(pact, 1);\n\t\t\t} else {\n\t\t\t\tPromise.resolve(body(step.value)).then(_resumeAfterBody).then(void 0, _reject);\n\t\t\t}\n\t\t}\n\t\tfunction _reject(error) {\n\t\t\t_settle(pact, 2, iterator.return ? iterator.return().then(function() { return error; }) : error);\n\t\t}\n\t}\n\treturn Promise.resolve(_forOf(target, function(value) { return Promise.resolve(value).then(body); }, check));\n}\n\n// Asynchronously implement a generic for loop\nexport function _for(test, update, body) {\n\tvar stage;\n\tfor (;;) {\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t\tif (shouldContinue.then) {\n\t\t\tstage = 0;\n\t\t\tbreak;\n\t\t}\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.s;\n\t\t\t} else {\n\t\t\t\tstage = 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (update) {\n\t\t\tvar updateValue = update();\n\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\tstage = 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tvar pact = new _Pact();\n\tvar reject = _settle.bind(null, pact, 2);\n\t(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tdo {\n\t\t\tif (update) {\n\t\t\t\tupdateValue = update();\n\t\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\t\tupdateValue.then(_resumeAfterUpdate).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshouldContinue = test();\n\t\t\tif (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t}\n\t\t} while (!result || !result.then);\n\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterBody(result);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n\tfunction _resumeAfterUpdate() {\n\t\tif (shouldContinue = test()) {\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterTest(shouldContinue);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a do ... while loop\nexport function _do(body, test) {\n\tvar awaitBody;\n\tdo {\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t} else {\n\t\t\t\tawaitBody = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t} while (!shouldContinue.then);\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : shouldContinue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tfor (;;) {\n\t\t\tshouldContinue = test();\n\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t}\n\t\t\tif (!shouldContinue) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\tresult = result.v;\n\t\t\t\t} else {\n\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tdo {\n\t\t\t\tresult = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshouldContinue = test();\n\t\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t\t}\n\t\t\t\tif (!shouldContinue) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} while (!shouldContinue.then);\n\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a switch statement\nexport function _switch(discriminant, cases) {\n\tvar dispatchIndex = -1;\n\tvar awaitBody;\n\touter: {\n\t\tfor (var i = 0; i < cases.length; i++) {\n\t\t\tvar test = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvar testValue = test();\n\t\t\t\tif (testValue && testValue.then) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tif (testValue === discriminant) {\n\t\t\t\t\tdispatchIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Found the default case, set it as the pending dispatch case\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tif (dispatchIndex !== -1) {\n\t\t\tdo {\n\t\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\t\twhile (!body) {\n\t\t\t\t\tdispatchIndex++;\n\t\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t\t}\n\t\t\t\tvar result = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tawaitBody = true;\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\t\tdispatchIndex++;\n\t\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t\treturn result;\n\t\t}\n\t}\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterTest(value) {\n\t\tfor (;;) {\n\t\t\tif (value === discriminant) {\n\t\t\t\tdispatchIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (++i === cases.length) {\n\t\t\t\tif (dispatchIndex !== -1) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvalue = test();\n\t\t\t\tif (value && value.then) {\n\t\t\t\t\tvalue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tdo {\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tvar result = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tdispatchIndex++;\n\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterBody(result) {\n\t\tfor (;;) {\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tif (!fallthroughCheck || fallthroughCheck()) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdispatchIndex++;\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _call(body, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(body()) : body();\n\t}\n\ttry {\n\t\tvar result = Promise.resolve(body());\n\t\treturn then ? result.then(then) : result;\n\t} catch (e) {\n\t\treturn Promise.reject(e);\n\t}\n}\n\n// Asynchronously call a function and swallow the result\nexport function _callIgnored(body, direct) {\n\treturn _call(body, _empty, direct);\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _invoke(body, then) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(then);\n\t}\n\treturn then(result);\n}\n\n// Asynchronously call a function and swallow the result\nexport function _invokeIgnored(body) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(_empty);\n\t}\n}\n\n// Asynchronously call a function and send errors to recovery continuation\nexport function _catch(body, recover) {\n\ttry {\n\t\tvar result = body();\n\t} catch(e) {\n\t\treturn recover(e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(void 0, recover);\n\t}\n\treturn result;\n}\n\n// Asynchronously await a promise and pass the result to a finally continuation\nexport function _finallyRethrows(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer(true, e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n\t}\n\treturn finalizer(false, result);\n}\n\n// Asynchronously await a promise and invoke a finally continuation that always overrides the result\nexport function _finally(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer();\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer, finalizer);\n\t}\n\treturn finalizer();\n}\n\n// Rethrow or return a value from a finally continuation\nexport function _rethrow(thrown, value) {\n\tif (thrown)\n\t\tthrow value;\n\treturn value;\n}\n\n// Empty function to implement break and other control flow that ignores asynchronous results\nexport function _empty() {\n}\n\n// Sentinel value for early returns in generators \nexport const _earlyReturn = /*#__PURE__*/ {};\n\n// Asynchronously call a function and send errors to recovery continuation, skipping early returns\nexport function _catchInGenerator(body, recover) {\n\treturn _catch(body, function(e) {\n\t\tif (e === _earlyReturn) {\n\t\t\tthrow e;\n\t\t}\n\t\treturn recover(e);\n\t});\n}\n\n// Asynchronous generator class; accepts the entrypoint of the generator, to which it passes itself when the generator should start\nexport const _AsyncGenerator = /*#__PURE__*/(function() {\n\tfunction _AsyncGenerator(entry) {\n\t\tthis._entry = entry;\n\t\tthis._pact = null;\n\t\tthis._resolve = null;\n\t\tthis._return = null;\n\t\tthis._promise = null;\n\t}\n\n\tfunction _wrapReturnedValue(value) {\n\t\treturn { value: value, done: true };\n\t}\n\tfunction _wrapYieldedValue(value) {\n\t\treturn { value: value, done: false };\n\t}\n\n\t_AsyncGenerator.prototype._yield = function(value) {\n\t\t// Yield the value to the pending next call\n\t\tthis._resolve(value && value.then ? value.then(_wrapYieldedValue) : _wrapYieldedValue(value));\n\t\t// Return a pact for an upcoming next/return/throw call\n\t\treturn this._pact = new _Pact();\n\t};\n\t_AsyncGenerator.prototype.next = function(value) {\n\t\t// Advance the generator, starting it if it has yet to be started\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tconst _entry = _this._entry;\n\t\t\t\tif (_entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the next call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Start the generator\n\t\t\t\t_this._entry = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\tfunction returnValue(value) {\n\t\t\t\t\t_this._resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t_this._resolve = null;\n\t\t\t\t}\n\t\t\t\tvar result = _entry(_this);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tresult.then(returnValue, function(error) {\n\t\t\t\t\t\tif (error === _earlyReturn) {\n\t\t\t\t\t\t\treturnValue(_this._return);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst pact = new _Pact();\n\t\t\t\t\t\t\t_this._resolve(pact);\n\t\t\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t\t\t_this._resolve = null;\n\t\t\t\t\t\t\t_resolve(pact, 2, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturnValue(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Generator is started and a yield expression is pending, settle it\n\t\t\t\t_this._pact = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\t_settle(_pact, 1, value);\n\t\t\t}\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.return = function(value) {\n\t\t// Early return from the generator if started, otherwise abandons the generator\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the return call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return the specified value\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t}\n\t\t\t// Settle the yield expression with a rejected \"early return\" value\n\t\t\t_this._return = value;\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, _earlyReturn);\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.throw = function(error) {\n\t\t// Inject an exception into the pending yield expression\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve, reject) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the throw call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return a rejected Promise containing the error\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t\t// Settle the yield expression with the value as a rejection\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, error);\n\t\t});\n\t};\n\n\t_AsyncGenerator.prototype[_asyncIteratorSymbol] = function() {\n\t\treturn this;\n\t};\n\t\n\treturn _AsyncGenerator;\n})();\n","import Web3 from 'web3'\nimport NetworkInfo from '../models/NetworkInfo'\nimport networksData from '../data/networks.json'\nimport ProviderInfo, {\n EProvider,\n getProviderInfo,\n} from '../models/ProviderInfo'\nimport ConnectionStatus from '../models/Enums'\n\ndeclare global {\n interface Window {\n ethereum: any // FIXME: This should be properly typed as per metamask\n web3: Web3\n }\n}\n\nexport function getWeb3(\n provider: EProvider = EProvider.METAMASK,\n): Promise {\n return new Promise((resolve, reject) => {\n switch (provider) {\n // Injected Web3 wallet like MetaMask or Nifty\n case EProvider.NIFTY:\n case EProvider.METAMASK: {\n // New MetaMask\n if (window.ethereum) {\n const web3 = new Web3(window.ethereum)\n window.ethereum\n .enable()\n .then(() => resolve(web3))\n .catch(reject)\n } else if (window.web3) {\n // Older versions of MetaMask or other\n resolve(new Web3(window.web3.currentProvider))\n } else reject(new Error('No injected web3 found'))\n break\n }\n\n // Localhost\n case EProvider.LOCAL: {\n const localhostProvider = new Web3.providers.HttpProvider(\n \"'http://127.0.0.1:4444'\",\n )\n resolve(new Web3(localhostProvider))\n break\n }\n\n // Unknown & not implemented\n default: {\n reject(\n new Error(\n `Provider not implemented or unknown. Chosen provider ${provider}`,\n ),\n )\n break\n }\n }\n })\n}\n\nexport const getNetworkInfo = (\n networkId: number,\n chainId?: number,\n): NetworkInfo | undefined => networksData.find((n) => (chainId\n ? n.networkId === networkId && n.chainId === chainId\n : n.networkId === networkId)) as NetworkInfo\n\nexport const getNetworkInfoFromWeb3 = async (\n web3: Web3,\n): Promise => {\n // set networkId and chainId\n let networkId: number | undefined\n let chainId: number | undefined\n try {\n networkId = await web3.eth.net.getId()\n\n if (networkId) {\n chainId = await web3.eth.getChainId()\n }\n } catch (error) {}\n let networkInfo: NetworkInfo | undefined\n\n if (networkId) {\n try {\n networkInfo = getNetworkInfo(networkId, chainId)\n } catch (error) {}\n }\n return networkInfo\n}\n\nexport const getAvailableProviders = (): ProviderInfo[] | undefined => {\n const result: ProviderInfo[] = []\n\n if (!window.web3) return undefined\n const currentProvider = window.web3.currentProvider as any\n\n if (currentProvider.isMetaMask) {\n // Nifty is also MetaMask\n result.push(\n currentProvider.isNiftyWallet\n ? getProviderInfo(EProvider.NIFTY)\n : getProviderInfo(EProvider.METAMASK),\n )\n }\n\n if (currentProvider.isTrust) result.push(getProviderInfo(EProvider.TRUST))\n\n if (currentProvider.isGoWallet) result.push(getProviderInfo(EProvider.GO_WALLET))\n\n if (currentProvider.isAlphaWallet) result.push(getProviderInfo(EProvider.ALPHA_WALLET))\n\n if (currentProvider.isStatus) result.push(getProviderInfo(EProvider.STATUS))\n\n if (currentProvider.isToshi) result.push(getProviderInfo(EProvider.COINBASE))\n\n // eslint-disable-next-line no-underscore-dangle\n if (typeof (window as any).__CIPHER__ !== 'undefined') result.push(getProviderInfo(EProvider.CIPHER))\n\n if (currentProvider.constructor.name === 'EthereumProvider') result.push(getProviderInfo(EProvider.MIST))\n\n if (currentProvider.constructor.name === 'Web3FrameProvider') result.push(getProviderInfo(EProvider.PARITY))\n\n if (currentProvider.host && currentProvider.host.indexOf('infura') !== -1) result.push(getProviderInfo(EProvider.INFURA))\n\n if (currentProvider.host && currentProvider.host.indexOf('localhost') !== -1) result.push(getProviderInfo(EProvider.LOCAL))\n\n return result\n}\n\nexport const getConnectionStatus = (\n web3?: Web3,\n requiredNetworkId?: number,\n currentNetworkId?: number,\n account?: string,\n): ConnectionStatus => {\n if (!web3) return ConnectionStatus.LoggedOut\n\n if (currentNetworkId !== requiredNetworkId) {\n return ConnectionStatus.WrongNetwork\n }\n\n if (account) {\n return ConnectionStatus.LoggedIn\n }\n return ConnectionStatus.WalletLocked\n}\n","import React, { FC, useState, useEffect } from 'react'\nimport Web3 from 'web3'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Popover from '@material-ui/core/Popover'\nimport Typography from '@material-ui/core/Typography'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport { shortenString } from '../../utils'\nimport { Button, NetworkIndicator } from '../atoms'\nimport { colors, fonts } from '../../theme'\nimport { AccountModal, WrongNetworkModal } from '../molecules'\nimport ConnectionStatus from '../../models/Enums'\nimport { getConnectionStatus } from '../../services/Web3Service'\nimport NetworkInfo from '../../models/NetworkInfo'\n\nexport interface AccountProps {\n requiredNetworkName: string\n setProvider?: (provider: EProvider) => Promise\n web3?: Web3\n networkInfo?: NetworkInfo\n account?: string\n availableProviders?: ProviderInfo[]\n requiredNetworkId?: number\n onCorrectNetworkMessage?: string\n onNetworkMismatchMessage?: string\n noNetworkMessage?: string\n modalInitiallyOpened?: boolean\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n accountText: {\n fontSize: fonts.size.tiny,\n textAlign: 'center',\n },\n button: {\n border: `1px solid ${colors.white}`,\n '&:hover': {\n border: `1px solid ${colors.transparent}`,\n },\n },\n networkIndicator: {\n marginRight: theme.spacing(1),\n },\n rightNetwork: {\n padding: theme.spacing(2),\n },\n}))\n\nconst Account: FC = (props) => {\n const {\n web3,\n networkInfo,\n account,\n setProvider,\n availableProviders,\n requiredNetworkId,\n onCorrectNetworkMessage,\n onNetworkMismatchMessage,\n noNetworkMessage,\n requiredNetworkName,\n modalInitiallyOpened = false,\n } = props\n const classes = useStyles()\n\n const [accountModalOpen, setAccountModalOpen] = useState(modalInitiallyOpened)\n const handleAccountModalClose = (): void => setAccountModalOpen(false)\n const handleAccountModalOpen = (): void => setAccountModalOpen(true)\n const [wrongNetModalOpen, setWrongNetModalOpen] = useState(false)\n const openWrongNetModal = (): void => setWrongNetModalOpen(true)\n const closeWrongNetModal = (): void => setWrongNetModalOpen(false)\n const connectionStatus: ConnectionStatus = getConnectionStatus(web3, requiredNetworkId, networkInfo?.networkId, account)\n\n // TODO: extract popover functionallity into new component\n const [anchorEl, setAnchorEl] = React.useState(null)\n\n const popoverOpen = Boolean(anchorEl)\n const id = popoverOpen ? 'right-net-popover' : undefined\n\n const handlePopoverClose = () => {\n setAnchorEl(null)\n }\n\n useEffect(() => {\n if (connectionStatus === ConnectionStatus.WrongNetwork) {\n openWrongNetModal()\n } else {\n closeWrongNetModal()\n handlePopoverClose()\n }\n }, [connectionStatus])\n\n const accountText = (): string => {\n if (connectionStatus === ConnectionStatus.LoggedOut) return 'Connect wallet'\n\n if (connectionStatus === ConnectionStatus.WrongNetwork) return 'Wrong Network'\n\n if (account) {\n // means connectionStatus === ConnectionStatus.LoggedIn\n return shortenString(account)\n }\n return 'Unlock your wallet'\n }\n\n const onAccountClicked = (event: React.MouseEvent): void | null => {\n if (connectionStatus === ConnectionStatus.WrongNetwork) return openWrongNetModal()\n\n if (connectionStatus === ConnectionStatus.LoggedOut) return handleAccountModalOpen()\n\n if (connectionStatus === ConnectionStatus.LoggedIn) return setAnchorEl(event.currentTarget)\n return null\n }\n\n return (\n \n \n {/* TODO: extract molecule */}\n \n \n {`You are successfully connected to ${networkInfo?.name}.`}\n \n \n \n \n \n )\n}\n\nexport default Account\n","import React, { FC } from 'react'\nimport {\n AppBar, Grid, ListItemIcon, Toolbar,\n} from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { NavLink } from 'react-router-dom'\nimport Typography from '@material-ui/core/Typography'\nimport { ActionHeaderItemProps, HeaderProps, NavItemProps } from './HeaderProps'\nimport { LogoNavbar } from '../../atoms'\nimport { colors, fonts, globalConstants } from '../../../theme'\nimport { removeEmptySpaces } from '../../../utils'\n\nconst useStyles = makeStyles((theme: Theme) => ({\n activeNavlink: {\n color: `${colors.white} !important`,\n fontWeight: fonts.weight.medium,\n },\n navLink: {\n alignItems: 'center',\n color: colors.white,\n display: 'flex',\n paddingLeft: theme.spacing(5),\n paddingRight: theme.spacing(5),\n textAlign: 'center',\n textDecoration: 'none',\n '&:hover': {\n color: colors.gray5,\n textDecoration: 'none',\n },\n },\n navLinkContainer: {\n display: 'flex',\n },\n root: {\n boxShadow: 'none',\n // this height needs to be equal to the marginTop of PageTemplate\n height: theme.spacing(globalConstants.headerHeight),\n },\n}))\n\nconst HeaderDesktop: FC = ({\n hreflogo, itemsStart, itemsEnd, login,\n}) => {\n const classes = useStyles()\n const Login = login\n\n return (\n \n \n \n \n \n \n \n \n \n {\n !!itemsStart.length\n && itemsStart.map((navItem: NavItemProps) => (\n \n \n {navItem.title}\n \n \n ))\n }\n \n \n {\n !!itemsEnd?.length\n && itemsEnd.map(({ icon, ...rest }: ActionHeaderItemProps) => (\n \n {icon}\n \n ))\n }\n \n \n \n \n \n \n \n )\n}\n\nexport default HeaderDesktop\n","import React, { FC, useState } from 'react'\nimport {\n AppBar,\n Divider,\n Drawer, Toolbar,\n IconButton, List, ListItem,\n ListItemText, ListItemIcon, Grid,\n} from '@material-ui/core'\nimport { NavLink } from 'react-router-dom'\nimport MenuIcon from '@material-ui/icons/Menu'\nimport ChevronLeftIcon from '@material-ui/icons/ChevronLeft'\nimport { Theme, createStyles, makeStyles } from '@material-ui/core/styles'\nimport { ActionHeaderItemProps, HeaderProps, NavItemProps } from './HeaderProps'\nimport { colors, globalConstants } from '../../../theme'\nimport { LogoNavbar } from '../../atoms'\nimport { removeEmptySpaces } from '../../../utils'\n\nconst drawerWidth = 240\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n drawerHeader: {\n display: 'flex',\n alignItems: 'center',\n padding: theme.spacing(0, 1),\n // necessary for content to be below app bar\n ...theme.mixins.toolbar,\n justifyContent: 'flex-end',\n },\n drawerPaper: {\n width: drawerWidth,\n },\n mobileAppBar: {\n boxShadow: 'none',\n // this height needs to be equal to the marginTop of PageTemplate\n height: theme.spacing(globalConstants.headerHeight),\n transition: theme.transitions.create(['margin', 'width'], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n },\n mobileAppBarShift: {\n width: `calc(100% - ${drawerWidth}px)`,\n marginLeft: drawerWidth,\n transition: theme.transitions.create(['margin', 'width'], {\n easing: theme.transitions.easing.easeOut,\n duration: theme.transitions.duration.enteringScreen,\n }),\n },\n mobileNavLink: {\n alignItems: 'center',\n color: colors.gray4,\n display: 'flex',\n textDecoration: 'none',\n width: '100%',\n '&:hover': {\n color: colors.gray5,\n textDecoration: 'none',\n },\n },\n mobileNavLinkActive: {\n color: `${colors.primary} !important`,\n },\n}))\n\nconst HeaderMobile: FC = ({\n hreflogo, itemsStart, itemsEnd, login: Login,\n}) => {\n const classes = useStyles()\n const [open, setOpen] = useState(false)\n\n const toggleDrawer = (isOpen: boolean) => (\n event: React.KeyboardEvent | React.MouseEvent,\n ): void => {\n if (\n event.type === 'keydown'\n && ((event as React.KeyboardEvent).key === 'Tab'\n || (event as React.KeyboardEvent).key === 'Shift')\n ) {\n return\n }\n setOpen(isOpen)\n }\n\n return (\n \n \n \n {!open && (\n \n \n \n \n \n \n \n \n \n \n \n \n {\n !!itemsEnd?.length\n && itemsEnd.map(({ icon, ...rest }: ActionHeaderItemProps) => (\n \n {icon}\n \n ))\n }\n \n \n \n \n \n )}\n \n \n \n
\n \n \n \n
\n \n \n {\n !!itemsStart.length\n && itemsStart.map((headerItem: NavItemProps) => (\n \n \n \n {headerItem.icon}\n \n \n \n \n ))\n }\n \n \n
\n\n )\n}\n\nexport default HeaderMobile\n","import React, { FC } from 'react'\nimport Hidden from '@material-ui/core/Hidden'\nimport { HeaderProps } from './HeaderProps'\nimport HeaderDesktop from './HeaderDesktop'\nimport HeaderMobile from './HeaderMobile'\n\nconst Header: FC = (props) => (\n \n \n \n \n \n \n \n \n)\n\nexport default Header\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../../theme'\nimport { headerTongueImg } from '../../../assets/images'\n\nexport interface HeaderTongueProps {\n description: string\n titleLine1: string\n titleLine2: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n textContainer: {\n alignItems: 'center',\n backgroundColor: colors.primary,\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n },\n textContent: {\n color: colors.white,\n display: 'flex',\n flexDirection: 'column',\n textAlign: 'center',\n [theme.breakpoints.down('sm')]: {\n maxWidth: '90%',\n },\n [theme.breakpoints.up('md')]: {\n maxWidth: '65%',\n },\n [theme.breakpoints.up('xl')]: {\n maxWidth: '55%',\n },\n },\n titleContent: {\n marginBottom: theme.spacing(1),\n fontSize: theme.spacing(5),\n fontWeight: fonts.weight.regular,\n },\n tongueImg: {\n width: '100%',\n },\n}))\n\nconst HeaderTongue: FC = (\n { description, titleLine1, titleLine2 },\n) => {\n const classes = useStyles()\n\n return (\n \n
\n
\n \n {titleLine1}\n
\n {' '}\n {titleLine2}\n \n {description}\n
\n
\n \n
\n )\n}\n\nexport default HeaderTongue\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport FAQSection, { FAQSectionProps } from '../molecules/FAQSection'\nimport { colors } from '../../theme'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FAQPageTemplateProps {\n className?: string\n mainTitle: string\n questionsAndAnswers: FAQSectionProps[]\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n marginTop: theme.spacing(3),\n },\n container: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n [theme.breakpoints.up('md')]: {\n maxWidth: '80%',\n },\n },\n grayBackground: {\n backgroundColor: colors.gray1,\n },\n mainTitle: {\n fontSize: theme.typography.pxToRem(50),\n margin: theme.spacing(2, 0),\n },\n questionsSection: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n marginTop: theme.spacing(2),\n },\n}))\n\nconst FAQPageTemplate: FC = ({ className = '', mainTitle, questionsAndAnswers }) => {\n const classes = useStyles()\n return (\n
\n
\n {mainTitle}\n
\n {\n questionsAndAnswers.map((qAndA: FAQSectionProps, i) => (\n \n ))\n }\n
\n
\n
\n )\n}\n\nexport default FAQPageTemplate\n","import React, { FC, HTMLAttributes } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { globalConstants } from '../../theme'\n\nexport type PageTemplateProps = HTMLAttributes;\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n // as the header has fixed position, we need to match its height\n marginTop: theme.spacing(globalConstants.headerHeight),\n width: '100%',\n },\n}))\n\nconst PageTemplate: FC = ({ children, className = '', ...props }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default PageTemplate\n","import React, {\n Component, createContext, ReactNode,\n} from 'react'\nimport Web3 from 'web3'\nimport {\n getWeb3, getNetworkInfoFromWeb3, getAvailableProviders,\n} from '../services/Web3Service'\nimport NetworkInfo from '../models/NetworkInfo'\nimport ProviderInfo, { EProvider } from '../models/ProviderInfo'\n\nexport interface Web3ProviderProps {\n state: {\n provider?: EProvider\n web3?: Web3\n account?: string\n networkInfo?: NetworkInfo\n requiredNetworkId?: number\n }\n actions: {\n setProvider?: (\n provider: EProvider,\n onStateChanged?: (account?: string) => void\n ) => Promise\n onConnectedNetworkChange?: () => void\n onConnectedAccountChange?: () => void\n }\n requiredNetworkId?: number\n requiredChainId?: number\n availableProviders?: ProviderInfo[]\n}\n\nexport const defaultWeb3State: Web3ProviderState = {\n provider: undefined,\n web3: undefined,\n account: undefined,\n networkInfo: undefined,\n}\n\nexport const Web3Store = createContext({\n state: defaultWeb3State,\n actions: {\n setProvider: (): Promise => Promise.resolve(),\n onConnectedNetworkChange: (): any => 0,\n onConnectedAccountChange: (): any => 0,\n },\n requiredNetworkId: undefined,\n requiredChainId: undefined,\n})\n\ninterface Web3ProviderState {\n provider?: EProvider\n web3?: Web3\n account?: string\n networkInfo?: NetworkInfo\n}\n\nconst getAccountFromEthAccounts = (accounts: string[] | string): string | undefined => {\n let account: string\n\n if (Array.isArray(accounts)) [account] = accounts\n else account = accounts\n return account\n}\n\n/**\n * The provider will not read the account when a requiredNetworkId was provided\n * and it does not match the networkId of current networkInfo, same applies to\n * chainId. Nothing happens if the requiredNetworkId was not specified\n * @param requiredNetworkId given on the props of the provider\n * @param requiredChainId given on the props of the provider\n * @param networkInfo obtained from the wallet\n */\nconst shouldReadAccount = (\n requiredNetworkId?: number,\n requiredChainId?: number,\n networkInfo?: NetworkInfo,\n): boolean => {\n // the consumer did not provide enough information to validate the network, so we do not check\n if (!requiredNetworkId) return true\n\n if (requiredNetworkId === networkInfo?.networkId) {\n // only when chainId is provided we compare it\n if (requiredChainId) return requiredChainId === networkInfo?.chainId\n return true\n }\n return false\n}\n\nclass Web3Provider extends Component {\n private readonly requiredNetworkId?: number\n\n private readonly requiredChainId?: number\n\n private availableProviders?: ProviderInfo[]\n\n constructor(props: Web3ProviderProps) {\n super(props)\n this.state = defaultWeb3State\n this.requiredNetworkId = props.requiredNetworkId\n this.requiredChainId = props.requiredChainId\n this.onConnectedNetworkChange = props.actions.onConnectedNetworkChange\n this.onConnectedAccountChange = props.actions.onConnectedAccountChange\n this.setProvider = this.setProvider.bind(this)\n this.initialize()\n }\n\n private readonly onConnectedNetworkChange?: () => void\n\n private readonly onConnectedAccountChange?: () => void\n\n public async setProvider(provider: EProvider,\n onStateChanged?: (account?: string) => void): Promise {\n const web3 = await getWeb3(provider)\n const accounts = await web3.eth.getAccounts()\n const networkInfo = await getNetworkInfoFromWeb3(web3)\n // only validate requiredNetworkId and requiredChainId when are provided\n const shouldSetAccount = shouldReadAccount(this.requiredNetworkId, this.requiredChainId, networkInfo)\n\n const account = shouldSetAccount\n ? getAccountFromEthAccounts(accounts)\n : undefined\n\n this.setState(\n {\n web3,\n provider,\n account,\n networkInfo,\n },\n () => (onStateChanged && onStateChanged(account)),\n )\n }\n\n private initialize(): void {\n if (!window.ethereum) {\n return\n }\n this.availableProviders = getAvailableProviders()\n\n window.ethereum.autoRefreshOnNetworkChange = false\n // handle on networkChange\n window.ethereum.on('networkChanged', async (_netId) => {\n const { networkInfo } = this.state\n\n if (!networkInfo) return // wallet is not connected\n const { provider } = this.state\n const web3 = await getWeb3(provider)\n const accounts = await web3.eth.getAccounts()\n const newNetworkInfo = await getNetworkInfoFromWeb3(web3)\n\n // we do not want to set the account if we know it is the wrong network\n const shouldSetAccount = shouldReadAccount(\n this.requiredNetworkId,\n this.requiredChainId,\n newNetworkInfo,\n )\n const account = shouldSetAccount\n ? getAccountFromEthAccounts(accounts)\n : undefined\n\n this.setState(\n {\n networkInfo: newNetworkInfo,\n account,\n },\n () => this.onConnectedNetworkChange && this.onConnectedNetworkChange(),\n )\n })\n // handle on accountsChanged\n window.ethereum.on('accountsChanged', (accounts: string | string[]) => {\n const { networkInfo } = this.state\n\n if (!networkInfo) return // wallet is not connected\n // we only care about this change if it is on the right network\n // or if we can not validate the required network\n const shouldSetAccount = shouldReadAccount(\n this.requiredNetworkId, this.requiredChainId, networkInfo,\n )\n\n if (shouldSetAccount) {\n const account = getAccountFromEthAccounts(accounts)\n\n if (account) {\n this.setState({\n account,\n },\n () => this.onConnectedAccountChange\n && this.onConnectedAccountChange())\n }\n }\n })\n }\n\n public render(): ReactNode {\n const {\n provider,\n web3,\n account,\n networkInfo,\n } = this.state\n const {\n setProvider,\n onConnectedNetworkChange,\n onConnectedAccountChange,\n availableProviders,\n } = this\n\n const { children } = this.props\n\n return (\n \n {children}\n \n )\n }\n}\n\nexport default { Consumer: Web3Store.Consumer, Provider: Web3Provider }\n"],"names":["useStyles","makeStyles","block","width","noShadow","boxShadow","rounded","borderRadius","Button","className","shadow","children","rest","classes","React","MUIButton","trim","colors","black","primary","darkBlue","gray1","gray2","gray3","gray4","gray5","gray6","transparent","white","fonts","family","size","tiny","small","normal","medium","subtitleSmall","subtitleBig","weight","light","regular","bold","globalConstants","headerHeight","theme","createMuiTheme","palette","main","secondary","typography","fontFamily","button","textTransform","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","body1","fontWeight","props","overrides","MuiButton","root","MuiFormControlLabel","color","MuiSlider","rail","height","opacity","track","thumb","marginLeft","MuiTextField","createStyles","unCheckedIcon","checkedIcon","Checkbox","checked","isChecked","setIsChecked","useState","handleChange","event","newChecked","onChange","MUICheckbox","CheckBoxSharp","icon","CheckBoxOutlineBlankSharp","require","EProvider","getProviderInfo","eProvider","METAMASK","name","iconImg","metaMaskIconImg","NIFTY","niftyIconImg","LEDGER","TREZOR","TRUST","GO_WALLET","ALPHA_WALLET","STATUS","COINBASE","MIST","PARITY","INFURA","LOCAL","Error","padding","margin","content","display","alignItems","maxHeight","spacing","justifyContent","imageWrapper","marginRight","LoginOption","onClick","providerInfo","providerContent","src","alt","handleOnClick","window","open","variant","Tooltip","arrow","title","Logo","logoFullWhite","LogoNavbar","fontSize","pxToRem","selected","borderBottom","StyledNavTab","Tab","component","NavLink","disableRipple","defaultonCorrectNetworkMessage","deaulftonNetworkMismatchMessage","defaultNoNetworkMessage","NetworkStatus","getNetworkStatus","currentNetworkId","requiredNetworkId","NO_NETWORK","CORRECT_NETWORK","NETWORK_MISSMATCH","NetworkIndicator","iconClassName","onCorrectNetworkMessage","onNetworkMismatchMessage","noNetworkMessage","networkStatus","iconPerNetworkStatus","Map","set","WarningIcon","style","yellow","ErrorIcon","CheckCircleOutlineOutlinedIcon","green","get","paper","backgroundColor","background","border","shadows","left","minWidth","position","top","transform","Modal","MUIModal","ModalHeader","ModalTitle","Typography","borderTop","paddingTop","ModalFooter","ModalBody","overlay","zIndex","spinner","animation","WithSpinner","WrappedComponent","Spinner","isLoading","logoBlueIcon","heading","accordionSummary","Accordion","expanded","id","isExpanded","setIsExpanded","MUIAccordion","AccordionSummary","expandIcon","ExpandMoreIcon","AccordionDetails","AccountModal","setProvider","availableProviders","onClose","onProviderSet","Fragment","length","map","key","tooltipTitle","CopyTextTooltip","displayElement","fullText","isCopied","setIsCopied","tooltipContent","FileCopyIcon","interactive","navigator","clipboard","writeText","then","headingExpanded","headingCollapsed","panelDetails","answerContainer","breakpoints","up","maxWidth","answerText","FAQSection","initiallyExpanded","question","answer","RemoveIcon","AddIcon","LabeledCheckbox","labelText","labelClassName","FormControlLabel","label","control","FilterCheckboxCard","items","item","i","shortenString","str","largerThan","charsShownCount","substr","removeEmptySpaces","replace","maxSupportedNumber","minSupportedNumber","validatedNumber","num","flexDirection","footerLink","textDecoration","footerTitle","textAlign","FooterColumn","links","link","isExternal","href","to","toString","target","ModalDialogue","footer","input","paddingLeft","inputContainer","paddingRight","units","unitsContainer","alignSelf","UnitsInput","maxValue","minValue","value","step","handleOnBlur","handleOnChange","Grid","container","xs","Input","onBlur","type","fullWidth","inputProps","min","max","inputsContainer","toContainer","RangeSliderWithInputs","values","start","startValue","end","endValue","unit","handleStartInputChange","newStartValue","Number","handleEndInputChange","newEndValue","handleSliderChange","_","newSliderValue","handleStartValueBlur","handleEndValueBlur","getCommonInputValues","Slider","ShortenTextTooltip","maxLength","indicator","StyledTabs","Tabs","a11yProps","index","minHeight","overflow","tabContainer","tab","outlineStyle","tabIndicator","tabSelected","SwitchTabs","label1","label2","controlledValue","newValue","MUITabs","TabIndicatorProps","MUITab","TooltipIconButton","iconButtonProps","IconButton","boxContainer","marginTop","loaderContainer","WrongNetworkModal","currentNetworkName","requiredNetworkName","gutterBottom","align","Box","sm","CircularProgress","copyright","copyrightContent","footerContainer","paddingBottom","footerContent","linksColumn","marginBottom","logoColumn","tongue","borderTopLeftRadius","borderTopRightRadius","Footer","copyrightText","linksColumns","direction","md","lg","logoBlackAndBlue","linkColumn","ConnectionStatus","getWeb3","provider","Promise","resolve","reject","ethereum","web3","Web3","enable","catch","currentProvider","localhostProvider","providers","HttpProvider","getNetworkInfo","networkId","chainId","networksData","find","n","getNetworkInfoFromWeb3","networkInfo","error","eth","net","getId","getChainId","getAvailableProviders","result","undefined","isMetaMask","push","isNiftyWallet","isTrust","isGoWallet","isAlphaWallet","isStatus","isToshi","__CIPHER__","CIPHER","constructor","host","indexOf","getConnectionStatus","account","LoggedOut","WrongNetwork","LoggedIn","WalletLocked","accountText","networkIndicator","rightNetwork","Account","modalInitiallyOpened","accountModalOpen","setAccountModalOpen","handleAccountModalClose","handleAccountModalOpen","wrongNetModalOpen","setWrongNetModalOpen","openWrongNetModal","closeWrongNetModal","connectionStatus","anchorEl","setAnchorEl","popoverOpen","Boolean","handlePopoverClose","useEffect","onAccountClicked","currentTarget","Popover","anchorOrigin","vertical","horizontal","transformOrigin","activeNavlink","navLink","navLinkContainer","HeaderDesktop","hreflogo","itemsStart","itemsEnd","login","Login","AppBar","Toolbar","justify","navItem","activeClassName","alignContent","ListItemIcon","drawerWidth","drawerHeader","mixins","toolbar","drawerPaper","mobileAppBar","transition","transitions","create","easing","sharp","duration","leavingScreen","mobileAppBarShift","easeOut","enteringScreen","mobileNavLink","mobileNavLinkActive","HeaderMobile","setOpen","toggleDrawer","isOpen","role","onKeyDown","MenuIcon","Drawer","anchor","ChevronLeftIcon","Divider","List","headerItem","ListItem","ListItemText","Header","Hidden","smDown","mdUp","textContainer","textContent","down","titleContent","tongueImg","HeaderTongue","description","titleLine1","titleLine2","headerTongueImg","grayBackground","mainTitle","questionsSection","FAQPageTemplate","questionsAndAnswers","qAndA","PageTemplate","defaultWeb3State","Web3Store","createContext","state","actions","onConnectedNetworkChange","onConnectedAccountChange","requiredChainId","getAccountFromEthAccounts","accounts","Array","isArray","shouldReadAccount","Web3Provider","Component","bind","initialize","onStateChanged","getAccounts","shouldSetAccount","setState","autoRefreshOnNetworkChange","on","_netId","newNetworkInfo","render","Provider","Consumer"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SC5iBeC,QACdC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"} \ No newline at end of file diff --git a/dist/logoBlackAndBlue~bjZFbjOq.svg b/dist/logoBlackAndBlue~bjZFbjOq.svg new file mode 100644 index 00000000..f212e0df --- /dev/null +++ b/dist/logoBlackAndBlue~bjZFbjOq.svg @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dist/logoBlueIcon~qRLrrgXR.svg b/dist/logoBlueIcon~qRLrrgXR.svg new file mode 100644 index 00000000..3869ac7d --- /dev/null +++ b/dist/logoBlueIcon~qRLrrgXR.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dist/logoFullWhite~lLumzPXG.svg b/dist/logoFullWhite~lLumzPXG.svg new file mode 100644 index 00000000..cc38f2ed --- /dev/null +++ b/dist/logoFullWhite~lLumzPXG.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + diff --git a/dist/metaMask~bnTqJLxK.svg b/dist/metaMask~bnTqJLxK.svg new file mode 100644 index 00000000..5276c2cb --- /dev/null +++ b/dist/metaMask~bnTqJLxK.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/models/Enums.d.ts b/dist/models/Enums.d.ts new file mode 100644 index 00000000..211d779f --- /dev/null +++ b/dist/models/Enums.d.ts @@ -0,0 +1,7 @@ +export declare enum ConnectionStatus { + LoggedIn = 0, + LoggedOut = 1, + WalletLocked = 2, + WrongNetwork = 3 +} +export default ConnectionStatus; diff --git a/dist/models/NetworkInfo.d.ts b/dist/models/NetworkInfo.d.ts new file mode 100644 index 00000000..5160e45b --- /dev/null +++ b/dist/models/NetworkInfo.d.ts @@ -0,0 +1,16 @@ +export default interface NetworkInfo { + name: string; + chainId?: number; + shortName: string; + chain: string; + network: string; + networkId: number; + nativeCurrency: { + name: string; + symbol: string; + decimals: number; + }; + rpc: string[]; + faucets: string[]; + infoURL: string; +} diff --git a/dist/models/ProviderInfo.d.ts b/dist/models/ProviderInfo.d.ts new file mode 100644 index 00000000..fc5d671b --- /dev/null +++ b/dist/models/ProviderInfo.d.ts @@ -0,0 +1,22 @@ +export default interface ProviderInfo { + name: string; + eProvider: EProvider; + iconImg?: string; +} +export declare enum EProvider { + METAMASK = "Metamask", + NIFTY = "Nifty", + LEDGER = "Ledger", + TREZOR = "Trezor", + TRUST = "Trust", + LOCAL = "Localhost", + GO_WALLET = "GoWallet", + ALPHA_WALLET = "AlphaWallet", + STATUS = "status", + CIPHER = "cipher", + COINBASE = "coinbase", + MIST = "mist", + PARITY = "parity", + INFURA = "infura" +} +export declare const getProviderInfo: (eProvider: EProvider) => ProviderInfo; diff --git a/dist/nameService~UWbtQqmT.svg b/dist/nameService~UWbtQqmT.svg new file mode 100644 index 00000000..a346b7ff --- /dev/null +++ b/dist/nameService~UWbtQqmT.svg @@ -0,0 +1 @@ +name3 \ No newline at end of file diff --git a/dist/nifty~RMIWdZeg.png b/dist/nifty~RMIWdZeg.png new file mode 100644 index 0000000000000000000000000000000000000000..377ea26252b8d260f38ebb85d3c76ae14ec4f381 GIT binary patch literal 5009 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 CPK#y$ literal 0 HcmV?d00001 diff --git a/dist/providers/Web3Provider.d.ts b/dist/providers/Web3Provider.d.ts new file mode 100644 index 00000000..04d21599 --- /dev/null +++ b/dist/providers/Web3Provider.d.ts @@ -0,0 +1,45 @@ +import React, { Component, ReactNode } from 'react'; +import Web3 from 'web3'; +import NetworkInfo from '../models/NetworkInfo'; +import ProviderInfo, { EProvider } from '../models/ProviderInfo'; +export interface Web3ProviderProps { + state: { + provider?: EProvider; + web3?: Web3; + account?: string; + networkInfo?: NetworkInfo; + requiredNetworkId?: number; + }; + actions: { + setProvider?: (provider: EProvider, onStateChanged?: (account?: string) => void) => Promise; + onConnectedNetworkChange?: () => void; + onConnectedAccountChange?: () => void; + }; + requiredNetworkId?: number; + requiredChainId?: number; + availableProviders?: ProviderInfo[]; +} +export declare const defaultWeb3State: Web3ProviderState; +export declare const Web3Store: React.Context; +interface Web3ProviderState { + provider?: EProvider; + web3?: Web3; + account?: string; + networkInfo?: NetworkInfo; +} +declare class Web3Provider extends Component { + private readonly requiredNetworkId?; + private readonly requiredChainId?; + private availableProviders?; + constructor(props: Web3ProviderProps); + private readonly onConnectedNetworkChange?; + private readonly onConnectedAccountChange?; + setProvider(provider: EProvider, onStateChanged?: (account?: string) => void): Promise; + private initialize; + render(): ReactNode; +} +declare const _default: { + Consumer: React.Consumer; + Provider: typeof Web3Provider; +}; +export default _default; diff --git a/dist/providers/index.d.ts b/dist/providers/index.d.ts new file mode 100644 index 00000000..d99dde79 --- /dev/null +++ b/dist/providers/index.d.ts @@ -0,0 +1,2 @@ +import Web3Provider, { Web3Store, defaultWeb3State } from './Web3Provider'; +export { Web3Provider, Web3Store, defaultWeb3State }; diff --git a/dist/rifCom~udwpaCym.png b/dist/rifCom~udwpaCym.png new file mode 100644 index 0000000000000000000000000000000000000000..0ccacdbe83075cf9b3806546993e489f8f5e7ef1 GIT binary patch literal 1642 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 N7N%%q^(FV%{{fpY%qRc= literal 0 HcmV?d00001 diff --git a/dist/rifGat~balFpEzC.png b/dist/rifGat~balFpEzC.png new file mode 100644 index 0000000000000000000000000000000000000000..5f0aa71d8f2b38593917e92f5270e3b4e99d9dba GIT binary patch literal 1687 zcmb`H`7_%I1IE9Ok|u+8NzqQrvWO$9RSE0bhB&II3hTbvI6@rTt}t}#T2#|CVKq_u zI<_U6x}s=aD$zPpq)Mk{9ZMWB(vmcyj#&F2><>Hh96vwvnR$w@dAX{9PlEvfP;qy2 zzJAm(NA>{8ALVfZa{&P4evNl>x|V+36{YKrc0ydRK_K84%`X4|jPx^U+|=1eW6)7t zh`j@AZ)vH_helC8z%1io?$MNR8giVaZRHsDx$L{(SX*>)SvW){-#HRwtY=^fNsP*? z7PA^jZ@M35IY_fU+stN}!?x~JFq;UvG}FpfthKeJt!8s3yOan#g*C-#bI9Z+Ooues z&WrUaEy2%0`fLhr2v@OVvYn`rr}AA327d$>a)Q}%@TcbB8qiH@+U38_xO#W(Z{SCk zy^BVFF_XVihqsWFs`mwW&;lbfZEzpowE6cC#oy#!MA{p)`mv6cYWc7gwWISv2VXA2 z(j7zd*D9b;QC5z~Xvl+M*xqkq=uz+H`^a}Pwy~P>q_mnsikuQ0&i4ip!iS!IQgf2j z;rcqAMh&x}xV@#9oqekPd%$XUT279R(wy`83TCH0HlXNTXKw>SH zFgV-`ljEp&(4Cdp>hf)yp1d7u_LRZK2CAqkC16Jh;`tM+&#~|yO2_eTf$0DMQUAws z0JTaB02Ep7&X+O2R0*lUNf@-&;Ng7yb7&_-E8=9Rarvb`u9d`NYLgPqwDJ&>^=MNj z(_QDK#}sxk4+T;iP@YtdW+k<_k<;Rvet;WZD}P_&Qm5C^YG7PEQJBAuSW5^LE@wLg z#Lu3w&5HAyjmhz*&9;jl9z3+MJhZeOc*7egx-esO?{y)(NBYNUJWCtE+OH{t>N$BYmPH!5Ovm9l_c+y4x-N(=18mV~_~D#a4)u-s8v3@86YE zG~)64XI=>B;0@02rJPL!?Lc1?ta`_@FGrHdupNsgi|Ecyz0G7t(Jp6Y*+-z_`lz9X z8#HQ~JM9CRh_%|rzd9+4-q>{=sm%fvD3A8vI?Hr>j~L$k?L=9F_9kI*B=DSO=j`P` z$RG2my>T-2_o#ryfz~Vfx$dl=Xj*A8=u!~$xi9rs&O!0-L+MMj9>FIa&r?TBlt&u* zh=SA~**Gn@-sH-4u_3kN2Aq)d8lTOXU$ZtLwoJH1T2WMwwFnMC>ft!^uZRhmjDf+??O=hkT zwC8pVr?6qm%__l47I{RM+iRyO>D~1PJ1aUnTk3YQ`GHCs9WUkG{p%(JwI)S#rgf_h zk@FvUHA^?5BIv1kcM5Fd+klKPei1QsfuL5HnS6=w{qytl=KmWO)oXJog9Y28uSd|Q zOs{^M-p~Ofe@}1RR}fEpZdDa`JxP{O%#@IlAd}Oa$29>zoI{1S%*gR zyO-=8_FU-t(~v}cn#owLZ*UCtc8R2!W{FQIJ$cSpuWc;PNMx)J-%7hFL~=Z*R^Pq_ zdyKj`uT)x*u_XB)1mN$3ND)OPt?T%*&@jT*IRoF8CaWDR31zIRuy@7p!R__j`sec= zWexn6<&@7~1=g|?_C4!||F4G9sD6{Z4^~FC958kYnIUUU2=MQX!l4@>Uuv(eHzSh2 zN*iA+_zw%8r7mTZbyz?Z{1mdSWx7_Z>sA;?o zdF~PBMW?*MM_KbR!MkTSGX+AG?FXodVS+4K-r~F`&iOZ&`?H0>{^k0|FJrm7P?Ttx lioU;rs0!^cllwQ4Dea4zTH(5nW{%Dca7TMNGf)w?{{~m6DR=+? literal 0 HcmV?d00001 diff --git a/dist/rifMar~IDqKMWpK.png b/dist/rifMar~IDqKMWpK.png new file mode 100644 index 0000000000000000000000000000000000000000..f691edb9a29455d9d52d505306e05480377e4d5c GIT binary patch literal 1940 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 X`rEQ~x^QIl00000NkvXXu0mjfeRrki literal 0 HcmV?d00001 diff --git a/dist/rifSto~fMRetflo.png b/dist/rifSto~fMRetflo.png new file mode 100644 index 0000000000000000000000000000000000000000..e4d7348dec4d36df2b4fa97f6f63807cd922846a GIT binary patch literal 1321 zcmeAS@N?(olHy`uVBq!ia0vp^DM0Ma!2~2ZtF}I1U|?*_baoCX4sv%=@N{)HGqf}_ z(>2mFWMI&kSUT~%wo9PMar@7089f@CH*A>EBAPVihK6ybhG+7W_}S*?_eh%B$Gz`W ziB7e4?d*-`{>QZKRFtNYsy26aQuDmedsa?7vvY2>-S_JEmUpZ5G(PrB+q$YsVYc>+ zjTsge#@6C%Di3w{GpyBEl_q(3^5n-MTfRrz`0aUDloe|Cef?EkHCxZW52fAxcl>!%aO$al``HQ|Ca=W>24A~{_eXfoj!dky z%)NPLQ`oNl&qDP^=C-OEL-(+DO9UQbkxXvk`1{33qu4&S<;65n(NEQNpVUuyuT$H6 zP)p5wiAV5);47&s=S^ABJ#Wgy#H%m=-`^Ki6@OywJAUV{i*xsHb3Ut9BbxjB@qumo z`40YOc)qi!u1=oqo{Rppt=nufBHAx^Z<=^zZ3U7>RNaBwBeQWPM1Z0 zJi9w@>Nm?>%|B+(3%>W=0r7fS z-XZ5zV_Po0I(J#o=Btdep||?{)uPkCaW2d=%Um3A%|~LD_2Yvai6^H1ee}k!wp6nw zz4n9hNfCxEdk@YFtbIL$E7f<#6Ge^-uMQr}WZgWmu`K@ZO%4;=Wx8>cc&L@p}&sh@3l~V5eoiE%cpP$26&*njIHUgr@^Tm z8TLHA=h)LWAJ)&yCvBLNTFZH=ce(ha)V1%-oMb=idKM5j&$dZi`_%NJ$fK1TQf*}_I}RIn zv(M)_R3h8iZd5}ceC<;s3(@5Vk^$(qxff4qE~H2dur{v|T+_!P5ANDH}OstLZYr5XP-LzKi12DTWc)I$ztaD0e F0s!PgMQ#89 literal 0 HcmV?d00001 diff --git a/dist/rskLogo~bdMEZSPk.svg b/dist/rskLogo~bdMEZSPk.svg new file mode 100644 index 00000000..8eab6198 --- /dev/null +++ b/dist/rskLogo~bdMEZSPk.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + diff --git a/dist/services/Web3Service.d.ts b/dist/services/Web3Service.d.ts new file mode 100644 index 00000000..bc0c21f8 --- /dev/null +++ b/dist/services/Web3Service.d.ts @@ -0,0 +1,15 @@ +import Web3 from 'web3'; +import NetworkInfo from '../models/NetworkInfo'; +import ProviderInfo, { EProvider } from '../models/ProviderInfo'; +import ConnectionStatus from '../models/Enums'; +declare global { + interface Window { + ethereum: any; + web3: Web3; + } +} +export declare function getWeb3(provider?: EProvider): Promise; +export declare const getNetworkInfo: (networkId: number, chainId?: number | undefined) => NetworkInfo | undefined; +export declare const getNetworkInfoFromWeb3: (web3: Web3) => Promise; +export declare const getAvailableProviders: () => ProviderInfo[] | undefined; +export declare const getConnectionStatus: (web3?: Web3 | undefined, requiredNetworkId?: number | undefined, currentNetworkId?: number | undefined, account?: string | undefined) => ConnectionStatus; diff --git a/dist/services/index.d.ts b/dist/services/index.d.ts new file mode 100644 index 00000000..18894d8b --- /dev/null +++ b/dist/services/index.d.ts @@ -0,0 +1,5 @@ +import { getWeb3 } from './Web3Service'; +declare const _default: { + getWeb3: typeof getWeb3; +}; +export default _default; diff --git a/dist/storage~fCGkZtHN.svg b/dist/storage~fCGkZtHN.svg new file mode 100644 index 00000000..6231c1b2 --- /dev/null +++ b/dist/storage~fCGkZtHN.svg @@ -0,0 +1 @@ +storage3 \ No newline at end of file diff --git a/dist/theme/index.d.ts b/dist/theme/index.d.ts new file mode 100644 index 00000000..8d5dab77 --- /dev/null +++ b/dist/theme/index.d.ts @@ -0,0 +1,2 @@ +import theme, { colors, fonts, globalConstants } from './theme'; +export { colors, fonts, globalConstants, theme, }; diff --git a/dist/theme/theme.d.ts b/dist/theme/theme.d.ts new file mode 100644 index 00000000..844493cb --- /dev/null +++ b/dist/theme/theme.d.ts @@ -0,0 +1,36 @@ +import '../assets/css/fonts/rubik.css'; +export declare const colors: { + black: string; + primary: string; + darkBlue: string; + gray1: string; + gray2: string; + gray3: string; + gray4: string; + gray5: string; + gray6: string; + transparent: string; + white: string; +}; +export declare const fonts: { + family: string; + size: { + tiny: number; + small: number; + normal: number; + medium: number; + subtitleSmall: number; + subtitleBig: number; + }; + weight: { + light: number; + regular: number; + medium: number; + bold: number; + }; +}; +export declare const globalConstants: { + headerHeight: number; +}; +declare const theme: import("@material-ui/core/styles").Theme; +export default theme; diff --git a/dist/tickWide~bmvsBAER.svg b/dist/tickWide~bmvsBAER.svg new file mode 100644 index 00000000..bf4eb921 --- /dev/null +++ b/dist/tickWide~bmvsBAER.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/utils.d.ts b/dist/utils.d.ts new file mode 100644 index 00000000..70f56849 --- /dev/null +++ b/dist/utils.d.ts @@ -0,0 +1,6 @@ +declare const shortenString: (str: string, largerThan?: number, charsShownCount?: number) => string; +declare const removeEmptySpaces: (str: string) => string; +declare const maxSupportedNumber = 99999999999999; +declare const minSupportedNumber = 0.000001; +declare const validatedNumber: (num: number) => number; +export { shortenString, removeEmptySpaces, maxSupportedNumber, minSupportedNumber, validatedNumber, }; diff --git a/package-lock.json b/package-lock.json index a3f89cf7..fda0e3b4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@rsksmart/rif-ui", - "version": "0.2.1", + "version": "0.3.4", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -7108,9 +7108,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001045", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001045.tgz", - "integrity": "sha512-Y8o2Iz1KPcD6FjySbk1sPpvJqchgxk/iow0DABpGyzA1UeQAuxh63Xh0Enj5/BrsYbXtCN32JmR4ZxQTCQ6E6A==", + "version": "1.0.30001156", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001156.tgz", + "integrity": "sha512-z7qztybA2eFZTB6Z3yvaQBIoJpQtsewRD74adw2UbRWwsRq3jIPvgrQGawBMbfafekQaD21FWuXNcywtTDGGCw==", "dev": true }, "capture-exit": { @@ -26183,7 +26183,7 @@ }, "react": { "version": "16.13.1", - "resolved": false, + "resolved": "", "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", "dev": true, "requires": { @@ -26539,7 +26539,7 @@ }, "react-dom": { "version": "16.13.1", - "resolved": false, + "resolved": "", "integrity": "sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==", "dev": true, "requires": { diff --git a/package.json b/package.json index de41952a..1c8e07b7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@rsksmart/rif-ui", - "version": "0.3.3", + "version": "0.3.4", "description": "Exposes common components to be re used in RIF projects", "keywords": [ "RIF", @@ -85,5 +85,6 @@ "last 1 firefox version", "last 1 safari version" ] - } -} \ No newline at end of file + }, + "dependencies": {} +} From 26089fd5e5864a6ec89cfb3656d12255ec97e03c Mon Sep 17 00:00:00 2001 From: Juraj Piar Date: Sat, 7 Nov 2020 12:05:58 +0000 Subject: [PATCH 06/11] fix: moves dependencies ahead devDeps --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 1c8e07b7..c610bf9c 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "test:watch": "react-scripts test --env=jsdom", "predeploy": "cd example && npm install && npm run build" }, + "dependencies": {}, "devDependencies": { "@material-ui/core": "^4.11.0", "@material-ui/icons": "^4.9.1", @@ -85,6 +86,5 @@ "last 1 firefox version", "last 1 safari version" ] - }, - "dependencies": {} + } } From 046b94ceb17bd72c89fb3d2e988148da4afcc7ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alvaro=20Fari=C3=B1a?= Date: Mon, 9 Nov 2020 12:29:02 -0300 Subject: [PATCH 07/11] fix: header styles, app project and deletes unnecesary deps entry --- dist/components/atoms/Logo.d.ts | 5 +- dist/index.js | 35 ++- dist/index.js.map | 2 +- dist/index.modern.js | 297 +++++++----------- dist/index.modern.js.map | 2 +- dist/logoBlackAndBlue~bjZFbjOq.svg | 76 ----- dist/logoFullWhite~lLumzPXG.svg | 46 --- example/src/App.js | 2 +- package.json | 1 - .../organisms/Header/HeaderDesktop.tsx | 53 ++-- .../organisms/Header/HeaderMobile.tsx | 24 +- .../organisms/Header/HeaderProps.ts | 4 +- 12 files changed, 188 insertions(+), 359 deletions(-) delete mode 100644 dist/logoBlackAndBlue~bjZFbjOq.svg delete mode 100644 dist/logoFullWhite~lLumzPXG.svg diff --git a/dist/components/atoms/Logo.d.ts b/dist/components/atoms/Logo.d.ts index a994f1f6..800c51c4 100644 --- a/dist/components/atoms/Logo.d.ts +++ b/dist/components/atoms/Logo.d.ts @@ -1,6 +1,3 @@ import React, { FC } from 'react'; -interface LogoProps extends React.Props { - alt?: string; -} -declare const Logo: FC; +declare const Logo: FC>; export default Logo; diff --git a/dist/index.js b/dist/index.js index 1b70811d..e8671c19 100644 --- a/dist/index.js +++ b/dist/index.js @@ -224,11 +224,11 @@ var rifSto = require("./rifSto~fMRetflo.png"); var storage = require("./storage~fCGkZtHN.svg"); -var logoBlackAndBlue = require("./logoBlackAndBlue~bjZFbjOq.svg"); +var logoBlackAndBlue = require("./logoBlackAndBlue~YbWCBYrQ.svg"); var logoBlueIcon = require("./logoBlueIcon~qRLrrgXR.svg"); -var logoFullWhite = require("./logoFullWhite~lLumzPXG.svg"); +var logoFullWhite = require("./logoFullWhite~geFkQihC.svg"); var rskLogo = require("./rskLogo~bdMEZSPk.svg"); @@ -2678,10 +2678,17 @@ const getNetworkInfoFromWeb3 = function (web3) { return Promise.reject(e); } }; + +const getWeb3Provider = () => { + if (window.ethereum) return window.ethereum; + if (window.web3) return window.web3.currentProvider; + return undefined; +}; + const getAvailableProviders = () => { const result = []; - if (!window.web3) return undefined; - const currentProvider = window.web3.currentProvider; + const currentProvider = getWeb3Provider(); + if (!currentProvider) return undefined; if (currentProvider.isMetaMask) { result.push(currentProvider.isNiftyWallet ? getProviderInfo(EProvider.NIFTY) : getProviderInfo(EProvider.METAMASK)); @@ -2890,7 +2897,7 @@ const HeaderDesktop = ({ xs: 6, container: true, justify: "flex-start" - }, !!itemsStart.length && itemsStart.map(navItem => React__default.createElement(Typography, { + }, !!(itemsStart === null || itemsStart === void 0 ? void 0 : itemsStart.length) && itemsStart.map(navItem => React__default.createElement(Typography, { className: classes.navLinkContainer, key: `hi-${removeEmptySpaces(navItem.title)}` }, React__default.createElement(reactRouterDom.NavLink, Object.assign({ @@ -2898,7 +2905,7 @@ const HeaderDesktop = ({ activeClassName: classes.activeNavlink }, navItem), navItem.title)))), React__default.createElement(core.Grid, { item: true, - xs: 4, + xs: 3, container: true, justify: "flex-end", alignContent: "center" @@ -2910,9 +2917,10 @@ const HeaderDesktop = ({ }, rest), icon))), React__default.createElement(core.Grid, { item: true, container: true, - xs: 1, + xs: 2, + justify: "flex-end", alignContent: "center" - }, React__default.createElement(Login, null))))); + }, React__default.createElement("div", null, React__default.createElement(Login, null)))))); }; const drawerWidth = 240; @@ -2993,7 +3001,7 @@ const HeaderMobile = ({ onClick: toggleDrawer(true) }, React__default.createElement(MenuIcon, null))), React__default.createElement(core.Grid, { item: true, - xs: 6 + xs: 3 }, React__default.createElement(reactRouterDom.NavLink, { to: hreflogo }, React__default.createElement(LogoNavbar, null))), React__default.createElement(core.Grid, { @@ -3009,8 +3017,11 @@ const HeaderMobile = ({ key: icon.key }, rest), icon))), React__default.createElement(core.Grid, { item: true, - xs: 1 - }, React__default.createElement(Login, null))))), React__default.createElement(core.Drawer, { + xs: 4, + container: true, + justify: "flex-end", + alignContent: "center" + }, React__default.createElement("div", null, React__default.createElement(Login, null)))))), React__default.createElement(core.Drawer, { anchor: "left", open: open, onClose: toggleDrawer(false), @@ -3022,7 +3033,7 @@ const HeaderMobile = ({ className: classes.drawerHeader }, React__default.createElement(core.IconButton, { onClick: toggleDrawer(false) - }, React__default.createElement(ChevronLeftIcon, null))), React__default.createElement(core.Divider, null), React__default.createElement(core.List, null, !!itemsStart.length && itemsStart.map(headerItem => React__default.createElement(core.ListItem, { + }, React__default.createElement(ChevronLeftIcon, null))), React__default.createElement(core.Divider, null), React__default.createElement(core.List, null, !!(itemsStart === null || itemsStart === void 0 ? void 0 : itemsStart.length) && itemsStart.map(headerItem => React__default.createElement(core.ListItem, { button: true, key: `him-${removeEmptySpaces(headerItem.title)}` }, React__default.createElement(reactRouterDom.NavLink, { diff --git a/dist/index.js.map b/dist/index.js.map index 2d7dd97d..9e17c8b7 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["../src/components/atoms/Button.tsx","../src/theme/theme.ts","../src/components/atoms/Checkbox.tsx","../src/assets/images/icons/nifty.png","../src/assets/images/icons/rifCom.png","../src/assets/images/icons/rifDir.png","../src/assets/images/icons/rifGat.png","../src/assets/images/icons/rifMar.png","../src/assets/images/icons/rifPay.png","../src/assets/images/icons/rifSto.png","../src/models/ProviderInfo.ts","../src/components/atoms/LoginOption.tsx","../src/components/atoms/Logo.tsx","../src/components/atoms/LogoNavbar.tsx","../src/components/atoms/StyledNavTab.tsx","../src/components/atoms/NetworkIndicator.tsx","../src/components/atoms/modal/Modal.tsx","../src/components/atoms/modal/ModalHeader.tsx","../src/components/atoms/modal/ModalTitle.tsx","../src/components/atoms/modal/ModalFooter.tsx","../src/components/atoms/modal/ModalBody.tsx","../src/components/hoc/WithSpinner.tsx","../src/components/molecules/Accordion.tsx","../src/components/molecules/AccountModal.tsx","../src/components/molecules/CopyTextTooltip.tsx","../src/components/molecules/FAQSection.tsx","../src/components/molecules/LabeledCheckbox.tsx","../src/components/molecules/FilterCheckboxCard.tsx","../src/utils.ts","../src/components/molecules/FooterColumn.tsx","../src/components/molecules/ModalDialogue.tsx","../src/components/molecules/UnitsInput.tsx","../src/components/molecules/RangeSliderWithInputs.tsx","../src/components/molecules/ShortenTextTooltip.tsx","../src/components/molecules/StyledTabs.tsx","../src/components/molecules/SwitchTabs.tsx","../src/components/molecules/TooltipIconButton.tsx","../src/components/molecules/WrongNetworkModal.tsx","../src/components/organisms/Footer.tsx","../src/models/Enums.ts","../node_modules/babel-plugin-transform-async-to-promises/helpers.js","../src/services/Web3Service.ts","../src/components/organisms/Account.tsx","../src/components/organisms/Header/HeaderDesktop.tsx","../src/components/organisms/Header/HeaderMobile.tsx","../src/components/organisms/Header/Header.tsx","../src/components/organisms/Header/HeaderTongue.tsx","../src/components/templates/FAQPageTemplate.tsx","../src/components/templates/PageTemplate.tsx","../src/providers/Web3Provider.tsx"],"sourcesContent":["import React, { FC } from 'react'\nimport { Button as MUIButton, ButtonProps as MUIButtonProps } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\n\nexport interface ButtonProps extends MUIButtonProps {\n block?: boolean\n shadow?: boolean\n rounded?: boolean\n}\n\nconst useStyles = makeStyles(() => ({\n block: {\n width: '100%',\n },\n noShadow: {\n boxShadow: 'none',\n },\n rounded: {\n borderRadius: 50,\n },\n}))\n\nconst Button: FC = ({\n className = '', block, shadow, rounded, children, ...rest\n}) => {\n const classes = useStyles()\n\n return (\n \n {children}\n \n )\n}\n\nexport default Button\n","import { createMuiTheme } from '@material-ui/core/styles'\nimport '../assets/css/fonts/rubik.css'\n\nexport const colors = {\n black: '#000000',\n primary: '#008FF7',\n darkBlue: '#197DC6',\n gray1: '#F8F7F7',\n gray2: '#E5E5E5',\n gray3: '#C4C4C4',\n gray4: '#919191',\n gray5: '#4D4C4C',\n gray6: '#15171B',\n transparent: '#FFFFFF00',\n white: '#FFFFFF',\n}\n\nexport const fonts = {\n family: 'Rubik',\n size: {\n tiny: 10,\n small: 12,\n normal: 14,\n medium: 16,\n subtitleSmall: 18,\n subtitleBig: 22,\n },\n weight: {\n light: 300,\n regular: 400,\n medium: 500,\n bold: 700,\n },\n}\n\nexport const globalConstants = {\n headerHeight: 8,\n}\n\nconst theme = createMuiTheme({\n palette: {\n primary: {\n main: colors.primary,\n },\n secondary: {\n main: colors.gray4,\n },\n },\n typography: {\n fontFamily: fonts.family,\n button: {\n textTransform: 'none',\n },\n fontWeightLight: fonts.weight.light,\n fontWeightRegular: fonts.weight.regular,\n fontWeightMedium: fonts.weight.medium,\n fontWeightBold: fonts.weight.bold,\n body1: {\n fontWeight: fonts.weight.light,\n },\n },\n props: {},\n overrides: {\n MuiButton: {\n root: {\n fontWeight: fonts.weight.light,\n },\n },\n MuiFormControlLabel: {\n root: {\n color: colors.gray3,\n },\n },\n MuiSlider: {\n rail: {\n color: colors.gray3,\n height: 4,\n opacity: 1,\n },\n root: {\n width: '100%',\n color: colors.primary,\n height: 4,\n },\n track: {\n height: 4,\n },\n thumb: {\n marginLeft: -4,\n height: 14,\n width: 14,\n },\n },\n MuiTextField: {\n root: {\n color: colors.gray3,\n '&:hover': {\n color: colors.gray2,\n },\n },\n },\n },\n})\n\nexport default theme\n","import React, { FC, useState } from 'react'\nimport {\n Checkbox as MUICheckbox,\n CheckboxProps as MUICheckboxProps,\n makeStyles,\n createStyles,\n} from '@material-ui/core'\nimport { CheckBoxOutlineBlankSharp, CheckBoxSharp } from '@material-ui/icons'\nimport { colors } from '../../theme'\n\nexport type CheckboxProps = MUICheckboxProps;\n\nconst useStyles = makeStyles(() => createStyles({\n unCheckedIcon: {\n color: colors.gray4,\n },\n checkedIcon: {\n color: colors.primary,\n },\n}))\n\nconst Checkbox: FC = (props) => {\n const classes = useStyles()\n const { checked } = props\n const [isChecked, setIsChecked] = useState(!!checked)\n\n const handleChange = (event: React.ChangeEvent,\n newChecked: boolean): void => {\n setIsChecked(newChecked)\n const { onChange } = props\n\n if (onChange) onChange(event, newChecked)\n }\n\n return (\n \n }\n icon={\n \n }\n {...props}\n checked={isChecked}\n onChange={handleChange}\n />\n )\n}\n\nexport default Checkbox\n","/* loaded by smart-asset */\nexport default require(\"./nifty~RMIWdZeg.png\")","/* loaded by smart-asset */\nexport default require(\"./rifCom~udwpaCym.png\")","/* loaded by smart-asset */\nexport default require(\"./rifDir~bottaDNJ.png\")","/* loaded by smart-asset */\nexport default require(\"./rifGat~balFpEzC.png\")","/* loaded by smart-asset */\nexport default require(\"./rifMar~IDqKMWpK.png\")","/* loaded by smart-asset */\nexport default require(\"./rifPay~bdtOAceT.png\")","/* loaded by smart-asset */\nexport default require(\"./rifSto~fMRetflo.png\")","import { metaMaskIconImg, niftyIconImg } from '../assets/images'\n\nexport default interface ProviderInfo {\n name: string\n eProvider: EProvider\n iconImg?: string\n}\n\nexport enum EProvider {\n METAMASK = 'Metamask',\n NIFTY = 'Nifty',\n LEDGER = 'Ledger',\n TREZOR = 'Trezor',\n TRUST = 'Trust',\n LOCAL = 'Localhost',\n GO_WALLET = 'GoWallet',\n ALPHA_WALLET = 'AlphaWallet',\n STATUS = 'status',\n CIPHER = 'cipher',\n COINBASE = 'coinbase',\n MIST = 'mist',\n PARITY = 'parity',\n INFURA = 'infura'\n}\n\nexport const getProviderInfo = (eProvider: EProvider): ProviderInfo => {\n switch (eProvider) {\n case EProvider.METAMASK:\n return {\n name: 'MetaMask',\n eProvider,\n iconImg: metaMaskIconImg,\n }\n case EProvider.NIFTY:\n return {\n name: 'Nifty',\n eProvider,\n iconImg: niftyIconImg,\n }\n case EProvider.LEDGER:\n return {\n name: 'Ledger',\n eProvider,\n }\n case EProvider.TREZOR:\n return {\n name: 'Trezor',\n eProvider,\n }\n case EProvider.TRUST:\n return {\n name: 'Trust',\n eProvider,\n }\n case EProvider.GO_WALLET:\n return {\n name: 'Go Wallet',\n eProvider,\n }\n case EProvider.ALPHA_WALLET:\n return {\n name: 'Alpha Wallet',\n eProvider,\n }\n case EProvider.STATUS:\n return {\n name: 'Status',\n eProvider,\n }\n case EProvider.COINBASE:\n return {\n name: 'Coinbase',\n eProvider,\n }\n case EProvider.MIST:\n return {\n name: 'Mist',\n eProvider,\n }\n case EProvider.PARITY:\n return {\n name: 'Parity',\n eProvider,\n }\n case EProvider.INFURA:\n return {\n name: 'Infura',\n eProvider,\n }\n case EProvider.LOCAL:\n return {\n name: 'Localhost',\n eProvider,\n }\n default: {\n throw new Error(\n `EProvider not implemented or unknown. Chosen provider ${eProvider}`,\n )\n }\n }\n}\n","import React, { FC } from 'react'\nimport { makeStyles, Theme, Tooltip } from '@material-ui/core'\nimport Button from './Button'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport { niftyIconImg } from '../../assets/images'\n\nexport interface LoginOptionProps {\n className?: string\n onClick?: () => void\n providerInfo?: ProviderInfo\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n padding: 5,\n margin: 5,\n width: '100%',\n },\n content: {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n maxHeight: theme.spacing(5),\n justifyContent: 'center',\n },\n imageWrapper: {\n maxHeight: theme.spacing(4),\n marginRight: theme.spacing(2),\n },\n}))\n\n/**\n * If not providerInfo is received, we assume there's no provider available and so suggest to install Nifty wallet\n * Same happens when no onClick is provided. We open the Nifty page on a new tab\n */\nconst LoginOption: FC = ({\n className = '',\n onClick,\n providerInfo,\n ...rest\n}) => {\n const classes = useStyles()\n\n const providerContent = (\n
\n {\n providerInfo?.iconImg\n && (\n \n )\n }\n {providerInfo?.name}\n
\n )\n\n const handleOnClick = () => {\n if (onClick) {\n return onClick()\n }\n return window.open('https://www.poa.network/for-users/nifty-wallet/getting-started', '_blank')\n }\n\n return (\n \n {/* only with Nifty we display the Tooltip because atm we can't check if MetaMask is also enabled */}\n {!!providerInfo && providerInfo.eProvider === EProvider.NIFTY\n && (\n \n {providerContent}\n \n )}\n {!!providerInfo && providerInfo.eProvider !== EProvider.NIFTY\n && providerContent}\n {!providerInfo\n && (\n
\n \n Install Nifty wallet\n
\n )}\n \n )\n}\n\nexport default LoginOption\n","import React, { FC } from 'react'\nimport { logoFullWhite } from '../../assets/images'\n\ninterface LogoProps extends React.Props {\n alt?: string\n}\n\nconst Logo: FC = ({ alt = 'RIF OS logo', ...rest }) => {alt}\n\nexport default Logo\n","import React, { FC } from 'react'\nimport { logoFullWhite } from '../../assets/images'\n\ninterface LogoProps extends React.Props {\n alt?: string\n height?: string | number\n style?: React.CSSProperties\n}\n\nconst LogoNavbar: FC = ({ alt = 'navbar logo', height = '44px', ...rest }) => (\n \n)\nexport default LogoNavbar\n","import React, { FC } from 'react'\nimport { Theme, makeStyles } from '@material-ui/core/styles'\nimport Tab from '@material-ui/core/Tab'\nimport { NavLink } from 'react-router-dom'\nimport { colors } from '../../theme'\n\nexport interface StyledNavTabProps {\n label: string\n to: string\n value: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n textTransform: 'none',\n color: colors.gray5,\n fontWeight: theme.typography.fontWeightRegular,\n fontSize: theme.typography.pxToRem(15),\n marginRight: theme.spacing(1),\n '&:focus': {\n opacity: 1,\n },\n },\n selected: {\n fontWeight: theme.typography.fontWeightMedium,\n borderBottom: '2px solid #000000',\n },\n}))\n\nconst StyledNavTab: FC = (props: StyledNavTabProps) => {\n const classes = useStyles()\n return \n}\n\nexport default StyledNavTab\n","import React, { FC } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport CheckCircleOutlineOutlinedIcon from '@material-ui/icons/CheckCircleOutlineOutlined'\nimport ErrorIcon from '@material-ui/icons/Error'\nimport WarningIcon from '@material-ui/icons/Warning'\nimport { green, yellow } from '@material-ui/core/colors'\n\nexport interface NetworkIndicatorProps {\n iconClassName?: string\n currentNetworkId?: number\n requiredNetworkId?: number\n onCorrectNetworkMessage?: string\n onNetworkMismatchMessage?: string\n noNetworkMessage?: string\n}\n\nconst defaultonCorrectNetworkMessage = 'You are on the right network'\nconst deaulftonNetworkMismatchMessage = 'You are on the wrong network'\nconst defaultNoNetworkMessage = 'You are not connected to any network'\n\nexport enum NetworkStatus {\n NO_NETWORK = 1,\n NETWORK_MISSMATCH = 2,\n CORRECT_NETWORK = 3\n}\n\nconst getNetworkStatus = (currentNetworkId, requiredNetworkId): NetworkStatus => {\n if (!currentNetworkId) return NetworkStatus.NO_NETWORK\n\n if (currentNetworkId === requiredNetworkId) return NetworkStatus.CORRECT_NETWORK\n return NetworkStatus.NETWORK_MISSMATCH\n}\n\nconst NetworkIndicator: FC = ({\n iconClassName = '',\n currentNetworkId, requiredNetworkId, onCorrectNetworkMessage,\n onNetworkMismatchMessage, noNetworkMessage,\n}) => {\n const networkStatus = getNetworkStatus(currentNetworkId, requiredNetworkId)\n\n const iconPerNetworkStatus = new Map()\n iconPerNetworkStatus.set(NetworkStatus.NO_NETWORK, (\n \n \n \n ))\n iconPerNetworkStatus.set(NetworkStatus.NETWORK_MISSMATCH, (\n \n \n \n ))\n iconPerNetworkStatus.set(NetworkStatus.CORRECT_NETWORK, (\n \n \n \n ))\n\n return (\n iconPerNetworkStatus.get(networkStatus)\n )\n}\n\nexport default NetworkIndicator\n","import React, { FC } from 'react'\nimport { Modal as MUIModal, ModalProps as MUIModalProps } from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport type ModalProps = MUIModalProps;\n\nconst useStyles = makeStyles((theme: Theme) => ({\n paper: {\n backgroundColor: theme.palette.background.paper,\n border: `2px solid ${colors.primary}`,\n boxShadow: theme.shadows[5],\n left: '50%',\n minWidth: 400,\n padding: theme.spacing(2, 4, 3),\n position: 'absolute',\n top: '50%',\n transform: 'translate(-50%, -50%)',\n },\n}))\n\nconst Modal: FC = ({ children, ...rest }) => {\n const classes = useStyles()\n\n return (\n \n
\n {children}\n
\n
\n )\n}\n\nexport default Modal\n","import React, { FC } from 'react'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport interface ModalHeaderProps {\n className?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n borderBottom: `1px solid ${colors.gray2}`,\n color: colors.primary,\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n },\n}))\n\nconst ModalHeader: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalHeader\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\n\nexport interface ModalTitleProps {\n className?: string\n}\n\nconst ModalTitle: FC = ({ children, ...rest }) => (\n \n {children}\n \n)\n\nexport default ModalTitle\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport interface ModalFooterProps {\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n borderTop: `1px solid ${colors.gray2}`,\n display: 'flex',\n justifyContent: 'center',\n paddingTop: theme.spacing(1),\n width: '100%',\n },\n}))\n\nconst ModalFooter: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalFooter\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\n\nexport interface ModalBodyProps {\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n padding: theme.spacing(3, 0),\n width: '100%',\n },\n}))\n\nconst ModalBody: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalBody\n","import React from 'react'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { logoBlueIcon } from '../../assets/images'\n\nconst useStyles = makeStyles(() => ({\n '@keyframes spin': {\n '0%': { transform: 'rotate(0deg)' },\n '100%': { transform: 'rotate(360deg)' },\n },\n root: {\n position: 'relative',\n },\n overlay: {\n position: 'absolute',\n zIndex: 2,\n height: '100%',\n width: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n background: '#FFFFFF55',\n },\n spinner: {\n display: 'inline-block',\n zIndex: 3,\n width: '50px',\n height: '50px',\n border: 'none',\n animation: '$spin 2s ease-in-out infinite',\n },\n}))\n\nconst WithSpinner = (WrappedComponent: React.ElementType) => {\n const Spinner = ({ isLoading, ...props }) => {\n const classes = useStyles()\n\n return (\n
\n {\n isLoading\n && (\n
\n \"logo\"\n
\n )\n }\n \n
\n )\n }\n return Spinner\n}\n\nexport default WithSpinner\n","import React, { FC, useState } from 'react'\nimport { Accordion as MUIAccordion, AccordionProps as MUIAccordionProps } from '@material-ui/core'\nimport Typography from '@material-ui/core/Typography'\nimport AccordionDetails from '@material-ui/core/AccordionDetails'\nimport AccordionSummary from '@material-ui/core/AccordionSummary'\nimport { makeStyles, Theme, createStyles } from '@material-ui/core/styles'\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore'\nimport { colors } from '../../theme'\n\ninterface AccordionProps extends MUIAccordionProps {\n id: string\n title?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n root: {\n boxShadow: 'none',\n color: colors.gray4,\n width: '100%',\n },\n heading: {\n color: colors.gray4,\n fontSize: theme.typography.pxToRem(15),\n fontWeight: theme.typography.fontWeightRegular,\n width: '100%',\n },\n accordionSummary: {\n borderBottom: `1px solid ${colors.gray2}`,\n },\n}))\n\nconst Accordion: FC = ({\n children, expanded, id, title,\n}) => {\n const classes = useStyles()\n const [isExpanded, setIsExpanded] = useState(!!expanded)\n\n const onChange = (): void => setIsExpanded(!isExpanded)\n\n return (\n \n }\n aria-controls={`panel-${id}-content`}\n id={id}\n >\n {title}\n \n \n {children}\n \n \n )\n}\n\nexport default Accordion\n","import React, { FC } from 'react'\nimport Web3 from 'web3'\nimport {\n Button, LoginOption, Modal, ModalBody, ModalFooter, ModalHeader, ModalTitle,\n} from '../atoms'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport NetworkInfo from '../../models/NetworkInfo'\n\nexport interface AccountModalProps {\n web3?: Web3\n networkInfo?: NetworkInfo\n setProvider?: (provider: EProvider, onProviderSet?:\n (account?: string) => void) => Promise\n availableProviders?: ProviderInfo[]\n onClose?: () => void\n onProviderSet?: (account) => void\n open: boolean\n}\n\nconst AccountModal: FC = ({\n setProvider,\n availableProviders,\n open,\n onClose,\n onProviderSet,\n}) => (\n \n \n \n Connect a wallet to get started\n \n \n {\n availableProviders && availableProviders.length && availableProviders.map(\n (providerInfo) => (\n => {\n if (setProvider) await setProvider(providerInfo.eProvider, onProviderSet)\n }}\n />\n ),\n )\n }\n {!availableProviders\n && (\n // TODO: Create LoginOptionTemplate to extract this\n // empty LoginOption means suggest to install Nifty wallet\n \n )}\n \n \n \n Close\n \n \n \n \n)\n\nexport default AccountModal\n","import React, { FC, useState } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport { makeStyles } from '@material-ui/core/styles'\nimport FileCopyIcon from '@material-ui/icons/FileCopy'\nimport Typography from '@material-ui/core/Typography'\n\nexport interface CopyTextTooltipProps {\n displayElement: React.ReactElement\n fullText: string\n}\n\nconst useStyles = makeStyles(() => ({\n tooltipTitle: {\n display: 'flex',\n alignItems: 'center',\n },\n}))\n\nconst CopyTextTooltip: FC = ({ displayElement, fullText }) => {\n const [isCopied, setIsCopied] = useState(false)\n\n const classes = useStyles()\n\n const tooltipContent = (\n
\n \n \n {fullText}\n \n
\n )\n\n return (\n Copied!
: tooltipContent}\n onClick={() => {\n navigator.clipboard.writeText(fullText)\n .then(() => { setIsCopied(true) })\n }}\n onClose={() => {\n setIsCopied(false)\n }}\n >\n {displayElement}\n \n )\n}\n\nexport default CopyTextTooltip\n","import React, { FC, useState } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Accordion from '@material-ui/core/Accordion'\nimport AccordionDetails from '@material-ui/core/AccordionDetails'\nimport AccordionSummary from '@material-ui/core/AccordionSummary'\nimport Typography from '@material-ui/core/Typography'\nimport AddIcon from '@material-ui/icons/Add'\nimport RemoveIcon from '@material-ui/icons/Remove'\nimport { colors, fonts } from '../../theme'\n\nexport interface FAQSectionProps {\n answer: string\n initiallyExpanded?: boolean\n question: string\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n boxShadow: 'none',\n color: colors.gray4,\n width: '100%',\n },\n heading: {\n display: 'flex',\n justifyContent: 'center',\n color: colors.gray5,\n fontSize: fonts.size.subtitleSmall,\n width: '100%',\n },\n headingExpanded: {\n color: colors.primary,\n },\n headingCollapsed: {\n fontWeight: fonts.weight.regular,\n },\n panelDetails: {\n display: 'flex',\n justifyContent: 'center',\n },\n answerContainer: {\n [theme.breakpoints.up('md')]: {\n maxWidth: '80%',\n },\n },\n answerText: {\n color: colors.gray5,\n },\n}))\n\nconst FAQSection: FC = ({\n className = '', initiallyExpanded, question, answer,\n}) => {\n const classes = useStyles()\n const [isExpanded, setIsExpanded] = useState(!!initiallyExpanded)\n\n const onChange = (): void => setIsExpanded(!isExpanded)\n\n return (\n \n : }\n >\n {question}\n \n \n
\n {answer}\n
\n
\n
\n )\n}\n\nexport default FAQSection\n","import React, { FC } from 'react'\nimport { FormControlLabel } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Checkbox, { CheckboxProps } from '../atoms/Checkbox'\nimport { colors } from '../../theme'\n\nexport interface LabeledCheckboxProps extends CheckboxProps {\n labelText: string\n labelClassName?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n color: colors.gray4,\n width: '100%',\n },\n}))\n\nconst LabeledCheckbox: FC = ({ labelText, labelClassName = '', ...rest }) => {\n const classes = useStyles()\n return (\n \n }\n />\n\n )\n}\n\nexport default LabeledCheckbox\n","import React, { FC } from 'react'\nimport LabeledCheckbox, { LabeledCheckboxProps } from './LabeledCheckbox'\n\nexport interface FilterCheckboxCardProps {\n className?: string\n items: LabeledCheckboxProps[]\n onClick?: (event: React.MouseEvent) => void\n}\n\nconst FilterCheckboxCard: FC = ({ className = '', onClick, items }) => (\n
\n {items.map((item: LabeledCheckboxProps, i) => (\n \n ))}\n
\n)\n\nexport default FilterCheckboxCard\n","const shortenString = (\n str: string,\n largerThan = 16,\n charsShownCount = 6,\n): string => (str.length > largerThan\n ? `${str.substr(0, charsShownCount)}...${str.substr(str.length - 4)}`\n : str)\n\nconst removeEmptySpaces = (str: string): string => str.replace(/\\s/g, '')\n\nconst maxSupportedNumber = 99999999999999\nconst minSupportedNumber = 0.000001\n\nconst validatedNumber = (num: number): number => {\n if (num > 0) {\n if (num > maxSupportedNumber) return maxSupportedNumber\n\n if (num < minSupportedNumber) return minSupportedNumber\n }\n\n if (num < 0) {\n if (num < -maxSupportedNumber) return -maxSupportedNumber\n\n if (num > -minSupportedNumber) return -minSupportedNumber\n }\n return num\n}\n\nexport {\n shortenString,\n removeEmptySpaces,\n maxSupportedNumber,\n minSupportedNumber,\n validatedNumber,\n}\n","import React, { FC } from 'react'\nimport { NavLinkProps, NavLink } from 'react-router-dom'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../theme'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FooterColumnProps {\n className?: string\n links: FooterLinkProps[]\n title: string\n}\n\nexport interface FooterLinkProps extends NavLinkProps {\n isExternal?: boolean\n title: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n },\n footerLink: {\n color: colors.gray4,\n fontWeight: fonts.weight.light,\n textDecoration: 'none',\n '&:hover': {\n fontWeight: fonts.weight.regular,\n },\n },\n footerTitle: {\n fontSize: fonts.size.subtitleBig,\n textAlign: 'center',\n },\n}))\n\nconst FooterColumn: FC = ({ title, links, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {title}\n {\n links.map((link: FooterLinkProps) => {\n const key = removeEmptySpaces(link.title)\n\n if (link.isExternal) {\n const href = (link.to || '#').toString()\n return (\n \n {link.title}\n \n )\n }\n return (\n \n {link.title}\n \n )\n })\n }\n
\n )\n}\n\nexport default FooterColumn\n","import React, { FC } from 'react'\nimport {\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n ModalTitle,\n} from '../atoms'\nimport { ModalProps } from '../atoms/modal/Modal'\n\nexport interface ModalDialogueProps extends ModalProps {\n title: string\n footer?: React.ReactElement\n}\n\nconst ModalDialogue: FC = ({\n title,\n footer,\n children,\n ...props\n}) => (\n \n \n \n {title}\n \n {children}\n {footer}\n \n \n)\n\nexport default ModalDialogue\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Input, { InputProps } from '@material-ui/core/Input'\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../theme'\n\nexport interface UnitsInputProps extends InputProps {\n handleOnChange: (event: React.ChangeEvent) => void\n handleOnBlur?: () => void\n maxValue?: number\n minValue?: number\n step?: number\n units?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n color: colors.gray4,\n display: 'flex',\n },\n input: {\n color: colors.gray4,\n paddingLeft: theme.spacing(0.1),\n textAlign: 'center',\n '&::before': {\n borderBottom: `1px solid ${colors.gray4}`,\n },\n },\n inputContainer: {\n paddingRight: '0 !important',\n },\n units: {\n color: colors.gray4,\n display: 'flex',\n fontSize: fonts.size.tiny,\n },\n unitsContainer: {\n alignSelf: 'center',\n color: colors.gray4,\n display: 'flex',\n fontSize: fonts.size.normal,\n paddingLeft: '0 !important',\n },\n}))\n\nconst UnitsInput: FC = ({\n maxValue,\n minValue,\n units,\n value,\n step = 1,\n handleOnBlur,\n handleOnChange,\n ...rest\n}) => {\n const classes = useStyles()\n\n return (\n \n \n \n \n \n \n \n {units}\n \n \n \n \n )\n}\n\nexport default UnitsInput\n","import Slider, { SliderProps } from '@material-ui/core/Slider'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport UnitsInput from './UnitsInput'\nimport { validatedNumber } from '../../utils'\nimport { fonts } from '../../theme'\n\nexport interface RangeSliderWithInputsProps extends SliderProps {\n values: {\n start: number\n end: number\n }\n unit?: string\n handleChange: ({ min, max }) => void\n className?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n width: '100%',\n },\n inputsContainer: {\n alignSelf: 'center',\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n },\n toContainer: {\n alignSelf: 'center',\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n fontWeight: fonts.weight.regular,\n },\n}))\n\nconst RangeSliderWithInputs: FC = ({\n values: {\n start: startValue, end: endValue,\n }, unit, handleChange, className, ...rest\n}) => {\n const classes = useStyles()\n\n const maxValue = rest.max || endValue\n const minValue = rest.min || startValue\n const step = rest.step || 1\n\n const handleStartInputChange = (\n event: React.ChangeEvent,\n ): void => {\n const newStartValue = validatedNumber(Number(event.target.value)) || minValue\n handleChange({ min: newStartValue, max: endValue })\n }\n\n const handleEndInputChange = (\n event: React.ChangeEvent,\n ): void => {\n const newEndValue = validatedNumber(Number(event.target.value)) || endValue\n handleChange({ min: startValue, max: newEndValue })\n }\n\n const handleSliderChange = (\n _: React.ChangeEvent<{}>, newSliderValue: number | number[],\n ): void => {\n handleChange({ min: newSliderValue[0], max: newSliderValue[1] })\n }\n\n const handleStartValueBlur = (): void => {\n if (startValue < minValue) {\n handleChange({ min: minValue, max: endValue })\n } else if (startValue > endValue) {\n handleChange({ min: endValue, max: endValue })\n }\n }\n\n const handleEndValueBlur = (): void => {\n if (endValue < startValue) {\n handleChange({ min: minValue, max: startValue })\n } else if (endValue > maxValue) {\n handleChange({ min: minValue, max: maxValue })\n }\n }\n\n const getCommonInputValues = (): {} => ({\n maxValue,\n minValue,\n step,\n units: unit,\n })\n\n return (\n
\n \n
\n \n \n to\n \n \n
\n
\n )\n}\n\nexport default RangeSliderWithInputs\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport CopyTextTooltip from './CopyTextTooltip'\nimport { shortenString } from '../../utils'\n\nexport interface ShortenTextTooltipProps {\n value: string\n maxLength?: number\n charsShownCount?: number\n}\n\nconst ShortenTextTooltip: FC = ({ value, maxLength = 20, charsShownCount }) => (\n \n {\n value.length > maxLength\n && (\n {shortenString(value, maxLength, charsShownCount || maxLength - 5)}}\n fullText={value}\n />\n )\n }\n {\n value.length <= maxLength\n && value\n }\n \n)\n\nexport default ShortenTextTooltip\n","import React, { FC } from 'react'\nimport Tabs, { TabsProps } from '@material-ui/core/Tabs'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { colors } from '../../theme'\n\nexport interface StyledTabsProps {\n value: string\n onChange: (event: React.ChangeEvent<{}>, newValue: string) => void\n}\n\nconst useStyles = makeStyles({\n indicator: {\n display: 'flex',\n justifyContent: 'center',\n backgroundColor: 'transparent',\n },\n root: {\n borderBottom: `1px solid ${colors.gray3}`,\n },\n})\n\nconst StyledTabs: FC = (props: TabsProps) => {\n const { children } = props\n const classes = useStyles()\n return (\n \n {children}\n \n )\n}\n\nexport default StyledTabs\n","import { Tab as MUITab, Tabs as MUITabs } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React, { FC } from 'react'\nimport { colors, fonts } from '../../theme'\n\nexport interface SwitchTabsProps {\n label1: string\n label2: string\n value?: 0 | 1\n onChange: (event: React.ChangeEvent<{}>, value: number) => void\n}\n\nconst a11yProps = (index: number): {} => ({\n id: `full-width-tab-${index}`,\n 'aria-controls': `full-width-tabpanel-${index}`,\n})\n\nconst useStyles = makeStyles(() => ({\n root: {\n backgroundColor: colors.white,\n minHeight: 20,\n width: '100%',\n border: `${colors.primary} solid 1px`,\n borderRadius: 50,\n overflow: 'hidden',\n },\n tabContainer: {\n minHeight: 20,\n width: '100%',\n },\n tab: {\n '&:hover': {\n color: colors.primary,\n },\n borderRadius: 50,\n color: colors.gray3,\n fontWeight: fonts.weight.light,\n maxWidth: '50%',\n minHeight: '100%',\n minWidth: '50%',\n outlineStyle: 'none',\n padding: 0,\n textTransform: 'capitalize',\n zIndex: 1,\n '&:focus': {\n outlineStyle: 'none',\n },\n },\n // shows the transition between tabs\n tabIndicator: {\n backgroundColor: colors.primary,\n borderRadius: 50,\n height: '100%',\n },\n tabSelected: {\n // the '!important' overrides the on hover functionality when it's active\n backgroundColor: `${colors.primary} !important`,\n color: `${colors.white} !important`,\n },\n}))\n\nconst SwitchTabs: FC = ({\n label1, label2, value: controlledValue, onChange,\n}) => {\n const classes = useStyles()\n\n const handleChange = (\n event: React.ChangeEvent<{}>, newValue: number,\n ): void => {\n onChange(event, newValue)\n }\n\n return (\n
\n \n \n \n \n
\n )\n}\n\nexport default SwitchTabs\n","import React, { FC } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport IconButton, { IconButtonProps } from '@material-ui/core/IconButton'\n\nexport interface TooltipIconButtonProps {\n tooltipTitle: string\n iconButtonProps: IconButtonProps\n icon: React.ReactNode\n}\n\nconst TooltipIconButton: FC = ({\n tooltipTitle,\n iconButtonProps,\n icon,\n}) => (\n \n \n \n {icon}\n \n \n\n \n)\n\nexport default TooltipIconButton\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport Box from '@material-ui/core/Box'\nimport Grid from '@material-ui/core/Grid'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../theme'\nimport ModalDialogue from './ModalDialogue'\n\nexport interface WrongNetworkModalProps {\n open: boolean\n currentNetworkName?: string\n requiredNetworkName: string\n onClose: () => void\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n boxContainer: {\n border: `1px solid ${colors.primary}`,\n padding: theme.spacing(5),\n marginTop: theme.spacing(3),\n },\n loaderContainer: {\n display: 'flex',\n justifyContent: 'center',\n },\n}))\n\nconst WrongNetworkModal: FC = ({\n open, currentNetworkName = 'Private network', requiredNetworkName, onClose,\n}) => {\n const classes = useStyles()\n return (\n \n \n \n This dApp only works on the\n {' '}\n {requiredNetworkName}\n .\n You are currently on\n {' '}\n {currentNetworkName}\n .\n \n \n \n \n \n \n Waiting for the right network...\n \n Switch networks on your wallet\n \n \n \n \n \n )\n}\nexport default WrongNetworkModal\n","import React, { FC, HTMLAttributes } from 'react'\nimport { Grid } from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport FooterColumn, { FooterColumnProps } from '../molecules/FooterColumn'\nimport { colors, fonts } from '../../theme'\nimport { logoBlackAndBlue } from '../../assets/images'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FooterProps extends HTMLAttributes {\n className?: string\n copyrightText: string\n linksColumns: FooterColumnProps[]\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n copyright: {\n display: 'flex',\n justifyContent: 'center',\n },\n copyrightContent: {\n color: colors.gray4,\n fontSize: fonts.size.tiny,\n },\n footerContainer: {\n backgroundColor: colors.gray2,\n display: 'flex',\n justifyContent: 'center',\n paddingBottom: theme.spacing(2),\n width: '100%',\n },\n footerContent: {\n marginTop: theme.spacing(2),\n maxWidth: '80%',\n width: '100%',\n },\n linksColumn: {\n marginBottom: theme.spacing(1),\n },\n logoColumn: {\n display: 'flex',\n justifyContent: 'center',\n padding: theme.spacing(5),\n },\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n paddingTop: theme.spacing(4),\n width: '100%',\n },\n tongue: {\n backgroundColor: colors.gray2,\n borderTopLeftRadius: '50% 80%',\n borderTopRightRadius: '50% 80%',\n height: theme.spacing(10),\n width: '100%',\n },\n}))\n\nconst Footer: FC = ({\n className = '', copyrightText, linksColumns, ...rest\n}) => {\n const classes = useStyles()\n\n return (\n
\n
\n
\n
\n \n \n \"logo\"\n \n {\n linksColumns.map((linkColumn: FooterColumnProps) => (\n \n \n \n ))\n }\n \n
\n \n {copyrightText}\n \n
\n
\n
\n
\n )\n}\n\nexport default Footer\n","export enum ConnectionStatus {\n LoggedIn = 0,\n LoggedOut = 1,\n WalletLocked = 2,\n WrongNetwork = 3\n}\n\nexport default ConnectionStatus\n","// A type of promise-like that resolves synchronously and supports only one observer\nexport const _Pact = /*#__PURE__*/(function() {\n\tfunction _Pact() {}\n\t_Pact.prototype.then = function(onFulfilled, onRejected) {\n\t\tconst result = new _Pact();\n\t\tconst state = this.s;\n\t\tif (state) {\n\t\t\tconst callback = state & 1 ? onFulfilled : onRejected;\n\t\t\tif (callback) {\n\t\t\t\ttry {\n\t\t\t\t\t_settle(result, 1, callback(this.v));\n\t\t\t\t} catch (e) {\n\t\t\t\t\t_settle(result, 2, e);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\tthis.o = function(_this) {\n\t\t\ttry {\n\t\t\t\tconst value = _this.v;\n\t\t\t\tif (_this.s & 1) {\n\t\t\t\t\t_settle(result, 1, onFulfilled ? onFulfilled(value) : value);\n\t\t\t\t} else if (onRejected) {\n\t\t\t\t\t_settle(result, 1, onRejected(value));\n\t\t\t\t} else {\n\t\t\t\t\t_settle(result, 2, value);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(result, 2, e);\n\t\t\t}\n\t\t};\n\t\treturn result;\n\t}\n\treturn _Pact;\n})();\n\n// Settles a pact synchronously\nexport function _settle(pact, state, value) {\n\tif (!pact.s) {\n\t\tif (value instanceof _Pact) {\n\t\t\tif (value.s) {\n\t\t\t\tif (state & 1) {\n\t\t\t\t\tstate = value.s;\n\t\t\t\t}\n\t\t\t\tvalue = value.v;\n\t\t\t} else {\n\t\t\t\tvalue.o = _settle.bind(null, pact, state);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (value && value.then) {\n\t\t\tvalue.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));\n\t\t\treturn;\n\t\t}\n\t\tpact.s = state;\n\t\tpact.v = value;\n\t\tconst observer = pact.o;\n\t\tif (observer) {\n\t\t\tobserver(pact);\n\t\t}\n\t}\n}\n\nexport function _isSettledPact(thenable) {\n\treturn thenable instanceof _Pact && thenable.s & 1;\n}\n\n// Converts argument to a function that always returns a Promise\nexport function _async(f) {\n\treturn function() {\n\t\tfor (var args = [], i = 0; i < arguments.length; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\t\ttry {\n\t\t\treturn Promise.resolve(f.apply(this, args));\n\t\t} catch(e) {\n\t\t\treturn Promise.reject(e);\n\t\t}\n\t}\n}\n\n// Awaits on a value that may or may not be a Promise (equivalent to the await keyword in ES2015, with continuations passed explicitly)\nexport function _await(value, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(value) : value;\n\t}\n\tif (!value || !value.then) {\n\t\tvalue = Promise.resolve(value);\n\t}\n\treturn then ? value.then(then) : value;\n}\n\n// Awaits on a value that may or may not be a Promise, then ignores it\nexport function _awaitIgnored(value, direct) {\n\tif (!direct) {\n\t\treturn value && value.then ? value.then(_empty) : Promise.resolve();\n\t}\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continue(value, then) {\n\treturn value && value.then ? value.then(then) : then(value);\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continueIgnored(value) {\n\tif (value && value.then) {\n\t\treturn value.then(_empty);\n\t}\n}\n\n// Asynchronously iterate through an object that has a length property, passing the index as the first argument to the callback (even as the length property changes)\nexport function _forTo(array, body, check) {\n\tvar i = -1, pact, reject;\n\tfunction _cycle(result) {\n\t\ttry {\n\t\t\twhile (++i < array.length && (!check || !check())) {\n\t\t\t\tresult = body(i);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pact) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t} else {\n\t\t\t\tpact = result;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t}\n\t}\n\t_cycle();\n\treturn pact;\n}\n\n// Asynchronously iterate through an object's properties (including properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forIn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tkeys.push(key);\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\n// Asynchronously iterate through an object's own properties (excluding properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forOwn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tif (Object.prototype.hasOwnProperty.call(target, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\nexport const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\"))) : \"@@iterator\";\n\n// Asynchronously iterate through an object's values\n// Uses for...of if the runtime supports it, otherwise iterates until length on a copy\nexport function _forOf(target, body, check) {\n\tif (typeof target[_iteratorSymbol] === \"function\") {\n\t\tvar iterator = target[_iteratorSymbol](), step, pact, reject;\n\t\tfunction _cycle(result) {\n\t\t\ttry {\n\t\t\t\twhile (!(step = iterator.next()).done && (!check || !check())) {\n\t\t\t\t\tresult = body(step.value);\n\t\t\t\t\tif (result && result.then) {\n\t\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pact) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t} else {\n\t\t\t\t\tpact = result;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t\t}\n\t\t}\n\t\t_cycle();\n\t\tif (iterator.return) {\n\t\t\tvar _fixup = function(value) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!step.done) {\n\t\t\t\t\t\titerator.return();\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (pact && pact.then) {\n\t\t\t\treturn pact.then(_fixup, function(e) {\n\t\t\t\t\tthrow _fixup(e);\n\t\t\t\t});\n\t\t\t}\n\t\t\t_fixup();\n\t\t}\n\t\treturn pact;\n\t}\n\t// No support for Symbol.iterator\n\tif (!(\"length\" in target)) {\n\t\tthrow new TypeError(\"Object is not iterable\");\n\t}\n\t// Handle live collections properly\n\tvar values = [];\n\tfor (var i = 0; i < target.length; i++) {\n\t\tvalues.push(target[i]);\n\t}\n\treturn _forTo(values, function(i) { return body(values[i]); }, check);\n}\n\nexport const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\"))) : \"@@asyncIterator\";\n\n// Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\nexport function _forAwaitOf(target, body, check) {\n\tif (typeof target[_asyncIteratorSymbol] === \"function\") {\n\t\tvar pact = new _Pact();\n\t\tvar iterator = target[_asyncIteratorSymbol]();\n\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\treturn pact;\n\t\tfunction _resumeAfterBody(result) {\n\t\t\tif (check && check()) {\n\t\t\t\treturn _settle(pact, 1, iterator.return ? iterator.return().then(function() { return result; }) : result);\n\t\t\t}\n\t\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\t}\n\t\tfunction _resumeAfterNext(step) {\n\t\t\tif (step.done) {\n\t\t\t\t_settle(pact, 1);\n\t\t\t} else {\n\t\t\t\tPromise.resolve(body(step.value)).then(_resumeAfterBody).then(void 0, _reject);\n\t\t\t}\n\t\t}\n\t\tfunction _reject(error) {\n\t\t\t_settle(pact, 2, iterator.return ? iterator.return().then(function() { return error; }) : error);\n\t\t}\n\t}\n\treturn Promise.resolve(_forOf(target, function(value) { return Promise.resolve(value).then(body); }, check));\n}\n\n// Asynchronously implement a generic for loop\nexport function _for(test, update, body) {\n\tvar stage;\n\tfor (;;) {\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t\tif (shouldContinue.then) {\n\t\t\tstage = 0;\n\t\t\tbreak;\n\t\t}\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.s;\n\t\t\t} else {\n\t\t\t\tstage = 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (update) {\n\t\t\tvar updateValue = update();\n\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\tstage = 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tvar pact = new _Pact();\n\tvar reject = _settle.bind(null, pact, 2);\n\t(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tdo {\n\t\t\tif (update) {\n\t\t\t\tupdateValue = update();\n\t\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\t\tupdateValue.then(_resumeAfterUpdate).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshouldContinue = test();\n\t\t\tif (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t}\n\t\t} while (!result || !result.then);\n\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterBody(result);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n\tfunction _resumeAfterUpdate() {\n\t\tif (shouldContinue = test()) {\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterTest(shouldContinue);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a do ... while loop\nexport function _do(body, test) {\n\tvar awaitBody;\n\tdo {\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t} else {\n\t\t\t\tawaitBody = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t} while (!shouldContinue.then);\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : shouldContinue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tfor (;;) {\n\t\t\tshouldContinue = test();\n\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t}\n\t\t\tif (!shouldContinue) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\tresult = result.v;\n\t\t\t\t} else {\n\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tdo {\n\t\t\t\tresult = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshouldContinue = test();\n\t\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t\t}\n\t\t\t\tif (!shouldContinue) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} while (!shouldContinue.then);\n\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a switch statement\nexport function _switch(discriminant, cases) {\n\tvar dispatchIndex = -1;\n\tvar awaitBody;\n\touter: {\n\t\tfor (var i = 0; i < cases.length; i++) {\n\t\t\tvar test = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvar testValue = test();\n\t\t\t\tif (testValue && testValue.then) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tif (testValue === discriminant) {\n\t\t\t\t\tdispatchIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Found the default case, set it as the pending dispatch case\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tif (dispatchIndex !== -1) {\n\t\t\tdo {\n\t\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\t\twhile (!body) {\n\t\t\t\t\tdispatchIndex++;\n\t\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t\t}\n\t\t\t\tvar result = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tawaitBody = true;\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\t\tdispatchIndex++;\n\t\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t\treturn result;\n\t\t}\n\t}\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterTest(value) {\n\t\tfor (;;) {\n\t\t\tif (value === discriminant) {\n\t\t\t\tdispatchIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (++i === cases.length) {\n\t\t\t\tif (dispatchIndex !== -1) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvalue = test();\n\t\t\t\tif (value && value.then) {\n\t\t\t\t\tvalue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tdo {\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tvar result = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tdispatchIndex++;\n\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterBody(result) {\n\t\tfor (;;) {\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tif (!fallthroughCheck || fallthroughCheck()) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdispatchIndex++;\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _call(body, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(body()) : body();\n\t}\n\ttry {\n\t\tvar result = Promise.resolve(body());\n\t\treturn then ? result.then(then) : result;\n\t} catch (e) {\n\t\treturn Promise.reject(e);\n\t}\n}\n\n// Asynchronously call a function and swallow the result\nexport function _callIgnored(body, direct) {\n\treturn _call(body, _empty, direct);\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _invoke(body, then) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(then);\n\t}\n\treturn then(result);\n}\n\n// Asynchronously call a function and swallow the result\nexport function _invokeIgnored(body) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(_empty);\n\t}\n}\n\n// Asynchronously call a function and send errors to recovery continuation\nexport function _catch(body, recover) {\n\ttry {\n\t\tvar result = body();\n\t} catch(e) {\n\t\treturn recover(e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(void 0, recover);\n\t}\n\treturn result;\n}\n\n// Asynchronously await a promise and pass the result to a finally continuation\nexport function _finallyRethrows(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer(true, e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n\t}\n\treturn finalizer(false, result);\n}\n\n// Asynchronously await a promise and invoke a finally continuation that always overrides the result\nexport function _finally(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer();\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer, finalizer);\n\t}\n\treturn finalizer();\n}\n\n// Rethrow or return a value from a finally continuation\nexport function _rethrow(thrown, value) {\n\tif (thrown)\n\t\tthrow value;\n\treturn value;\n}\n\n// Empty function to implement break and other control flow that ignores asynchronous results\nexport function _empty() {\n}\n\n// Sentinel value for early returns in generators \nexport const _earlyReturn = /*#__PURE__*/ {};\n\n// Asynchronously call a function and send errors to recovery continuation, skipping early returns\nexport function _catchInGenerator(body, recover) {\n\treturn _catch(body, function(e) {\n\t\tif (e === _earlyReturn) {\n\t\t\tthrow e;\n\t\t}\n\t\treturn recover(e);\n\t});\n}\n\n// Asynchronous generator class; accepts the entrypoint of the generator, to which it passes itself when the generator should start\nexport const _AsyncGenerator = /*#__PURE__*/(function() {\n\tfunction _AsyncGenerator(entry) {\n\t\tthis._entry = entry;\n\t\tthis._pact = null;\n\t\tthis._resolve = null;\n\t\tthis._return = null;\n\t\tthis._promise = null;\n\t}\n\n\tfunction _wrapReturnedValue(value) {\n\t\treturn { value: value, done: true };\n\t}\n\tfunction _wrapYieldedValue(value) {\n\t\treturn { value: value, done: false };\n\t}\n\n\t_AsyncGenerator.prototype._yield = function(value) {\n\t\t// Yield the value to the pending next call\n\t\tthis._resolve(value && value.then ? value.then(_wrapYieldedValue) : _wrapYieldedValue(value));\n\t\t// Return a pact for an upcoming next/return/throw call\n\t\treturn this._pact = new _Pact();\n\t};\n\t_AsyncGenerator.prototype.next = function(value) {\n\t\t// Advance the generator, starting it if it has yet to be started\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tconst _entry = _this._entry;\n\t\t\t\tif (_entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the next call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Start the generator\n\t\t\t\t_this._entry = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\tfunction returnValue(value) {\n\t\t\t\t\t_this._resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t_this._resolve = null;\n\t\t\t\t}\n\t\t\t\tvar result = _entry(_this);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tresult.then(returnValue, function(error) {\n\t\t\t\t\t\tif (error === _earlyReturn) {\n\t\t\t\t\t\t\treturnValue(_this._return);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst pact = new _Pact();\n\t\t\t\t\t\t\t_this._resolve(pact);\n\t\t\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t\t\t_this._resolve = null;\n\t\t\t\t\t\t\t_resolve(pact, 2, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturnValue(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Generator is started and a yield expression is pending, settle it\n\t\t\t\t_this._pact = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\t_settle(_pact, 1, value);\n\t\t\t}\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.return = function(value) {\n\t\t// Early return from the generator if started, otherwise abandons the generator\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the return call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return the specified value\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t}\n\t\t\t// Settle the yield expression with a rejected \"early return\" value\n\t\t\t_this._return = value;\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, _earlyReturn);\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.throw = function(error) {\n\t\t// Inject an exception into the pending yield expression\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve, reject) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the throw call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return a rejected Promise containing the error\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t\t// Settle the yield expression with the value as a rejection\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, error);\n\t\t});\n\t};\n\n\t_AsyncGenerator.prototype[_asyncIteratorSymbol] = function() {\n\t\treturn this;\n\t};\n\t\n\treturn _AsyncGenerator;\n})();\n","import Web3 from 'web3'\nimport NetworkInfo from '../models/NetworkInfo'\nimport networksData from '../data/networks.json'\nimport ProviderInfo, {\n EProvider,\n getProviderInfo,\n} from '../models/ProviderInfo'\nimport ConnectionStatus from '../models/Enums'\n\ndeclare global {\n interface Window {\n ethereum: any // FIXME: This should be properly typed as per metamask\n web3: Web3\n }\n}\n\nexport function getWeb3(\n provider: EProvider = EProvider.METAMASK,\n): Promise {\n return new Promise((resolve, reject) => {\n switch (provider) {\n // Injected Web3 wallet like MetaMask or Nifty\n case EProvider.NIFTY:\n case EProvider.METAMASK: {\n // New MetaMask\n if (window.ethereum) {\n const web3 = new Web3(window.ethereum)\n window.ethereum\n .enable()\n .then(() => resolve(web3))\n .catch(reject)\n } else if (window.web3) {\n // Older versions of MetaMask or other\n resolve(new Web3(window.web3.currentProvider))\n } else reject(new Error('No injected web3 found'))\n break\n }\n\n // Localhost\n case EProvider.LOCAL: {\n const localhostProvider = new Web3.providers.HttpProvider(\n \"'http://127.0.0.1:4444'\",\n )\n resolve(new Web3(localhostProvider))\n break\n }\n\n // Unknown & not implemented\n default: {\n reject(\n new Error(\n `Provider not implemented or unknown. Chosen provider ${provider}`,\n ),\n )\n break\n }\n }\n })\n}\n\nexport const getNetworkInfo = (\n networkId: number,\n chainId?: number,\n): NetworkInfo | undefined => networksData.find((n) => (chainId\n ? n.networkId === networkId && n.chainId === chainId\n : n.networkId === networkId)) as NetworkInfo\n\nexport const getNetworkInfoFromWeb3 = async (\n web3: Web3,\n): Promise => {\n // set networkId and chainId\n let networkId: number | undefined\n let chainId: number | undefined\n try {\n networkId = await web3.eth.net.getId()\n\n if (networkId) {\n chainId = await web3.eth.getChainId()\n }\n } catch (error) {}\n let networkInfo: NetworkInfo | undefined\n\n if (networkId) {\n try {\n networkInfo = getNetworkInfo(networkId, chainId)\n } catch (error) {}\n }\n return networkInfo\n}\n\nexport const getAvailableProviders = (): ProviderInfo[] | undefined => {\n const result: ProviderInfo[] = []\n\n if (!window.web3) return undefined\n const currentProvider = window.web3.currentProvider as any\n\n if (currentProvider.isMetaMask) {\n // Nifty is also MetaMask\n result.push(\n currentProvider.isNiftyWallet\n ? getProviderInfo(EProvider.NIFTY)\n : getProviderInfo(EProvider.METAMASK),\n )\n }\n\n if (currentProvider.isTrust) result.push(getProviderInfo(EProvider.TRUST))\n\n if (currentProvider.isGoWallet) result.push(getProviderInfo(EProvider.GO_WALLET))\n\n if (currentProvider.isAlphaWallet) result.push(getProviderInfo(EProvider.ALPHA_WALLET))\n\n if (currentProvider.isStatus) result.push(getProviderInfo(EProvider.STATUS))\n\n if (currentProvider.isToshi) result.push(getProviderInfo(EProvider.COINBASE))\n\n // eslint-disable-next-line no-underscore-dangle\n if (typeof (window as any).__CIPHER__ !== 'undefined') result.push(getProviderInfo(EProvider.CIPHER))\n\n if (currentProvider.constructor.name === 'EthereumProvider') result.push(getProviderInfo(EProvider.MIST))\n\n if (currentProvider.constructor.name === 'Web3FrameProvider') result.push(getProviderInfo(EProvider.PARITY))\n\n if (currentProvider.host && currentProvider.host.indexOf('infura') !== -1) result.push(getProviderInfo(EProvider.INFURA))\n\n if (currentProvider.host && currentProvider.host.indexOf('localhost') !== -1) result.push(getProviderInfo(EProvider.LOCAL))\n\n return result\n}\n\nexport const getConnectionStatus = (\n web3?: Web3,\n requiredNetworkId?: number,\n currentNetworkId?: number,\n account?: string,\n): ConnectionStatus => {\n if (!web3) return ConnectionStatus.LoggedOut\n\n if (currentNetworkId !== requiredNetworkId) {\n return ConnectionStatus.WrongNetwork\n }\n\n if (account) {\n return ConnectionStatus.LoggedIn\n }\n return ConnectionStatus.WalletLocked\n}\n","import React, { FC, useState, useEffect } from 'react'\nimport Web3 from 'web3'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Popover from '@material-ui/core/Popover'\nimport Typography from '@material-ui/core/Typography'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport { shortenString } from '../../utils'\nimport { Button, NetworkIndicator } from '../atoms'\nimport { colors, fonts } from '../../theme'\nimport { AccountModal, WrongNetworkModal } from '../molecules'\nimport ConnectionStatus from '../../models/Enums'\nimport { getConnectionStatus } from '../../services/Web3Service'\nimport NetworkInfo from '../../models/NetworkInfo'\n\nexport interface AccountProps {\n requiredNetworkName: string\n setProvider?: (provider: EProvider) => Promise\n web3?: Web3\n networkInfo?: NetworkInfo\n account?: string\n availableProviders?: ProviderInfo[]\n requiredNetworkId?: number\n onCorrectNetworkMessage?: string\n onNetworkMismatchMessage?: string\n noNetworkMessage?: string\n modalInitiallyOpened?: boolean\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n accountText: {\n fontSize: fonts.size.tiny,\n textAlign: 'center',\n },\n button: {\n border: `1px solid ${colors.white}`,\n '&:hover': {\n border: `1px solid ${colors.transparent}`,\n },\n },\n networkIndicator: {\n marginRight: theme.spacing(1),\n },\n rightNetwork: {\n padding: theme.spacing(2),\n },\n}))\n\nconst Account: FC = (props) => {\n const {\n web3,\n networkInfo,\n account,\n setProvider,\n availableProviders,\n requiredNetworkId,\n onCorrectNetworkMessage,\n onNetworkMismatchMessage,\n noNetworkMessage,\n requiredNetworkName,\n modalInitiallyOpened = false,\n } = props\n const classes = useStyles()\n\n const [accountModalOpen, setAccountModalOpen] = useState(modalInitiallyOpened)\n const handleAccountModalClose = (): void => setAccountModalOpen(false)\n const handleAccountModalOpen = (): void => setAccountModalOpen(true)\n const [wrongNetModalOpen, setWrongNetModalOpen] = useState(false)\n const openWrongNetModal = (): void => setWrongNetModalOpen(true)\n const closeWrongNetModal = (): void => setWrongNetModalOpen(false)\n const connectionStatus: ConnectionStatus = getConnectionStatus(web3, requiredNetworkId, networkInfo?.networkId, account)\n\n // TODO: extract popover functionallity into new component\n const [anchorEl, setAnchorEl] = React.useState(null)\n\n const popoverOpen = Boolean(anchorEl)\n const id = popoverOpen ? 'right-net-popover' : undefined\n\n const handlePopoverClose = () => {\n setAnchorEl(null)\n }\n\n useEffect(() => {\n if (connectionStatus === ConnectionStatus.WrongNetwork) {\n openWrongNetModal()\n } else {\n closeWrongNetModal()\n handlePopoverClose()\n }\n }, [connectionStatus])\n\n const accountText = (): string => {\n if (connectionStatus === ConnectionStatus.LoggedOut) return 'Connect wallet'\n\n if (connectionStatus === ConnectionStatus.WrongNetwork) return 'Wrong Network'\n\n if (account) {\n // means connectionStatus === ConnectionStatus.LoggedIn\n return shortenString(account)\n }\n return 'Unlock your wallet'\n }\n\n const onAccountClicked = (event: React.MouseEvent): void | null => {\n if (connectionStatus === ConnectionStatus.WrongNetwork) return openWrongNetModal()\n\n if (connectionStatus === ConnectionStatus.LoggedOut) return handleAccountModalOpen()\n\n if (connectionStatus === ConnectionStatus.LoggedIn) return setAnchorEl(event.currentTarget)\n return null\n }\n\n return (\n \n \n {/* TODO: extract molecule */}\n \n \n {`You are successfully connected to ${networkInfo?.name}.`}\n \n \n \n \n \n )\n}\n\nexport default Account\n","import React, { FC } from 'react'\nimport {\n AppBar, Grid, ListItemIcon, Toolbar,\n} from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { NavLink } from 'react-router-dom'\nimport Typography from '@material-ui/core/Typography'\nimport { ActionHeaderItemProps, HeaderProps, NavItemProps } from './HeaderProps'\nimport { LogoNavbar } from '../../atoms'\nimport { colors, fonts, globalConstants } from '../../../theme'\nimport { removeEmptySpaces } from '../../../utils'\n\nconst useStyles = makeStyles((theme: Theme) => ({\n activeNavlink: {\n color: `${colors.white} !important`,\n fontWeight: fonts.weight.medium,\n },\n navLink: {\n alignItems: 'center',\n color: colors.white,\n display: 'flex',\n paddingLeft: theme.spacing(5),\n paddingRight: theme.spacing(5),\n textAlign: 'center',\n textDecoration: 'none',\n '&:hover': {\n color: colors.gray5,\n textDecoration: 'none',\n },\n },\n navLinkContainer: {\n display: 'flex',\n },\n root: {\n boxShadow: 'none',\n // this height needs to be equal to the marginTop of PageTemplate\n height: theme.spacing(globalConstants.headerHeight),\n },\n}))\n\nconst HeaderDesktop: FC = ({\n hreflogo, itemsStart, itemsEnd, login,\n}) => {\n const classes = useStyles()\n const Login = login\n\n return (\n \n \n \n \n \n \n \n \n \n {\n !!itemsStart.length\n && itemsStart.map((navItem: NavItemProps) => (\n \n \n {navItem.title}\n \n \n ))\n }\n \n \n {\n !!itemsEnd?.length\n && itemsEnd.map(({ icon, ...rest }: ActionHeaderItemProps) => (\n \n {icon}\n \n ))\n }\n \n \n \n \n \n \n \n )\n}\n\nexport default HeaderDesktop\n","import React, { FC, useState } from 'react'\nimport {\n AppBar,\n Divider,\n Drawer, Toolbar,\n IconButton, List, ListItem,\n ListItemText, ListItemIcon, Grid,\n} from '@material-ui/core'\nimport { NavLink } from 'react-router-dom'\nimport MenuIcon from '@material-ui/icons/Menu'\nimport ChevronLeftIcon from '@material-ui/icons/ChevronLeft'\nimport { Theme, createStyles, makeStyles } from '@material-ui/core/styles'\nimport { ActionHeaderItemProps, HeaderProps, NavItemProps } from './HeaderProps'\nimport { colors, globalConstants } from '../../../theme'\nimport { LogoNavbar } from '../../atoms'\nimport { removeEmptySpaces } from '../../../utils'\n\nconst drawerWidth = 240\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n drawerHeader: {\n display: 'flex',\n alignItems: 'center',\n padding: theme.spacing(0, 1),\n // necessary for content to be below app bar\n ...theme.mixins.toolbar,\n justifyContent: 'flex-end',\n },\n drawerPaper: {\n width: drawerWidth,\n },\n mobileAppBar: {\n boxShadow: 'none',\n // this height needs to be equal to the marginTop of PageTemplate\n height: theme.spacing(globalConstants.headerHeight),\n transition: theme.transitions.create(['margin', 'width'], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n },\n mobileAppBarShift: {\n width: `calc(100% - ${drawerWidth}px)`,\n marginLeft: drawerWidth,\n transition: theme.transitions.create(['margin', 'width'], {\n easing: theme.transitions.easing.easeOut,\n duration: theme.transitions.duration.enteringScreen,\n }),\n },\n mobileNavLink: {\n alignItems: 'center',\n color: colors.gray4,\n display: 'flex',\n textDecoration: 'none',\n width: '100%',\n '&:hover': {\n color: colors.gray5,\n textDecoration: 'none',\n },\n },\n mobileNavLinkActive: {\n color: `${colors.primary} !important`,\n },\n}))\n\nconst HeaderMobile: FC = ({\n hreflogo, itemsStart, itemsEnd, login: Login,\n}) => {\n const classes = useStyles()\n const [open, setOpen] = useState(false)\n\n const toggleDrawer = (isOpen: boolean) => (\n event: React.KeyboardEvent | React.MouseEvent,\n ): void => {\n if (\n event.type === 'keydown'\n && ((event as React.KeyboardEvent).key === 'Tab'\n || (event as React.KeyboardEvent).key === 'Shift')\n ) {\n return\n }\n setOpen(isOpen)\n }\n\n return (\n \n \n \n {!open && (\n \n \n \n \n \n \n \n \n \n \n \n \n {\n !!itemsEnd?.length\n && itemsEnd.map(({ icon, ...rest }: ActionHeaderItemProps) => (\n \n {icon}\n \n ))\n }\n \n \n \n \n \n )}\n \n \n \n
\n \n \n \n
\n \n \n {\n !!itemsStart.length\n && itemsStart.map((headerItem: NavItemProps) => (\n \n \n \n {headerItem.icon}\n \n \n \n \n ))\n }\n \n \n
\n\n )\n}\n\nexport default HeaderMobile\n","import React, { FC } from 'react'\nimport Hidden from '@material-ui/core/Hidden'\nimport { HeaderProps } from './HeaderProps'\nimport HeaderDesktop from './HeaderDesktop'\nimport HeaderMobile from './HeaderMobile'\n\nconst Header: FC = (props) => (\n \n \n \n \n \n \n \n \n)\n\nexport default Header\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../../theme'\nimport { headerTongueImg } from '../../../assets/images'\n\nexport interface HeaderTongueProps {\n description: string\n titleLine1: string\n titleLine2: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n textContainer: {\n alignItems: 'center',\n backgroundColor: colors.primary,\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n },\n textContent: {\n color: colors.white,\n display: 'flex',\n flexDirection: 'column',\n textAlign: 'center',\n [theme.breakpoints.down('sm')]: {\n maxWidth: '90%',\n },\n [theme.breakpoints.up('md')]: {\n maxWidth: '65%',\n },\n [theme.breakpoints.up('xl')]: {\n maxWidth: '55%',\n },\n },\n titleContent: {\n marginBottom: theme.spacing(1),\n fontSize: theme.spacing(5),\n fontWeight: fonts.weight.regular,\n },\n tongueImg: {\n width: '100%',\n },\n}))\n\nconst HeaderTongue: FC = (\n { description, titleLine1, titleLine2 },\n) => {\n const classes = useStyles()\n\n return (\n \n
\n
\n \n {titleLine1}\n
\n {' '}\n {titleLine2}\n \n {description}\n
\n
\n \n
\n )\n}\n\nexport default HeaderTongue\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport FAQSection, { FAQSectionProps } from '../molecules/FAQSection'\nimport { colors } from '../../theme'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FAQPageTemplateProps {\n className?: string\n mainTitle: string\n questionsAndAnswers: FAQSectionProps[]\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n marginTop: theme.spacing(3),\n },\n container: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n [theme.breakpoints.up('md')]: {\n maxWidth: '80%',\n },\n },\n grayBackground: {\n backgroundColor: colors.gray1,\n },\n mainTitle: {\n fontSize: theme.typography.pxToRem(50),\n margin: theme.spacing(2, 0),\n },\n questionsSection: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n marginTop: theme.spacing(2),\n },\n}))\n\nconst FAQPageTemplate: FC = ({ className = '', mainTitle, questionsAndAnswers }) => {\n const classes = useStyles()\n return (\n
\n
\n {mainTitle}\n
\n {\n questionsAndAnswers.map((qAndA: FAQSectionProps, i) => (\n \n ))\n }\n
\n
\n
\n )\n}\n\nexport default FAQPageTemplate\n","import React, { FC, HTMLAttributes } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { globalConstants } from '../../theme'\n\nexport type PageTemplateProps = HTMLAttributes;\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n // as the header has fixed position, we need to match its height\n marginTop: theme.spacing(globalConstants.headerHeight),\n width: '100%',\n },\n}))\n\nconst PageTemplate: FC = ({ children, className = '', ...props }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default PageTemplate\n","import React, {\n Component, createContext, ReactNode,\n} from 'react'\nimport Web3 from 'web3'\nimport {\n getWeb3, getNetworkInfoFromWeb3, getAvailableProviders,\n} from '../services/Web3Service'\nimport NetworkInfo from '../models/NetworkInfo'\nimport ProviderInfo, { EProvider } from '../models/ProviderInfo'\n\nexport interface Web3ProviderProps {\n state: {\n provider?: EProvider\n web3?: Web3\n account?: string\n networkInfo?: NetworkInfo\n requiredNetworkId?: number\n }\n actions: {\n setProvider?: (\n provider: EProvider,\n onStateChanged?: (account?: string) => void\n ) => Promise\n onConnectedNetworkChange?: () => void\n onConnectedAccountChange?: () => void\n }\n requiredNetworkId?: number\n requiredChainId?: number\n availableProviders?: ProviderInfo[]\n}\n\nexport const defaultWeb3State: Web3ProviderState = {\n provider: undefined,\n web3: undefined,\n account: undefined,\n networkInfo: undefined,\n}\n\nexport const Web3Store = createContext({\n state: defaultWeb3State,\n actions: {\n setProvider: (): Promise => Promise.resolve(),\n onConnectedNetworkChange: (): any => 0,\n onConnectedAccountChange: (): any => 0,\n },\n requiredNetworkId: undefined,\n requiredChainId: undefined,\n})\n\ninterface Web3ProviderState {\n provider?: EProvider\n web3?: Web3\n account?: string\n networkInfo?: NetworkInfo\n}\n\nconst getAccountFromEthAccounts = (accounts: string[] | string): string | undefined => {\n let account: string\n\n if (Array.isArray(accounts)) [account] = accounts\n else account = accounts\n return account\n}\n\n/**\n * The provider will not read the account when a requiredNetworkId was provided\n * and it does not match the networkId of current networkInfo, same applies to\n * chainId. Nothing happens if the requiredNetworkId was not specified\n * @param requiredNetworkId given on the props of the provider\n * @param requiredChainId given on the props of the provider\n * @param networkInfo obtained from the wallet\n */\nconst shouldReadAccount = (\n requiredNetworkId?: number,\n requiredChainId?: number,\n networkInfo?: NetworkInfo,\n): boolean => {\n // the consumer did not provide enough information to validate the network, so we do not check\n if (!requiredNetworkId) return true\n\n if (requiredNetworkId === networkInfo?.networkId) {\n // only when chainId is provided we compare it\n if (requiredChainId) return requiredChainId === networkInfo?.chainId\n return true\n }\n return false\n}\n\nclass Web3Provider extends Component {\n private readonly requiredNetworkId?: number\n\n private readonly requiredChainId?: number\n\n private availableProviders?: ProviderInfo[]\n\n constructor(props: Web3ProviderProps) {\n super(props)\n this.state = defaultWeb3State\n this.requiredNetworkId = props.requiredNetworkId\n this.requiredChainId = props.requiredChainId\n this.onConnectedNetworkChange = props.actions.onConnectedNetworkChange\n this.onConnectedAccountChange = props.actions.onConnectedAccountChange\n this.setProvider = this.setProvider.bind(this)\n this.initialize()\n }\n\n private readonly onConnectedNetworkChange?: () => void\n\n private readonly onConnectedAccountChange?: () => void\n\n public async setProvider(provider: EProvider,\n onStateChanged?: (account?: string) => void): Promise {\n const web3 = await getWeb3(provider)\n const accounts = await web3.eth.getAccounts()\n const networkInfo = await getNetworkInfoFromWeb3(web3)\n // only validate requiredNetworkId and requiredChainId when are provided\n const shouldSetAccount = shouldReadAccount(this.requiredNetworkId, this.requiredChainId, networkInfo)\n\n const account = shouldSetAccount\n ? getAccountFromEthAccounts(accounts)\n : undefined\n\n this.setState(\n {\n web3,\n provider,\n account,\n networkInfo,\n },\n () => (onStateChanged && onStateChanged(account)),\n )\n }\n\n private initialize(): void {\n if (!window.ethereum) {\n return\n }\n this.availableProviders = getAvailableProviders()\n\n window.ethereum.autoRefreshOnNetworkChange = false\n // handle on networkChange\n window.ethereum.on('networkChanged', async (_netId) => {\n const { networkInfo } = this.state\n\n if (!networkInfo) return // wallet is not connected\n const { provider } = this.state\n const web3 = await getWeb3(provider)\n const accounts = await web3.eth.getAccounts()\n const newNetworkInfo = await getNetworkInfoFromWeb3(web3)\n\n // we do not want to set the account if we know it is the wrong network\n const shouldSetAccount = shouldReadAccount(\n this.requiredNetworkId,\n this.requiredChainId,\n newNetworkInfo,\n )\n const account = shouldSetAccount\n ? getAccountFromEthAccounts(accounts)\n : undefined\n\n this.setState(\n {\n networkInfo: newNetworkInfo,\n account,\n },\n () => this.onConnectedNetworkChange && this.onConnectedNetworkChange(),\n )\n })\n // handle on accountsChanged\n window.ethereum.on('accountsChanged', (accounts: string | string[]) => {\n const { networkInfo } = this.state\n\n if (!networkInfo) return // wallet is not connected\n // we only care about this change if it is on the right network\n // or if we can not validate the required network\n const shouldSetAccount = shouldReadAccount(\n this.requiredNetworkId, this.requiredChainId, networkInfo,\n )\n\n if (shouldSetAccount) {\n const account = getAccountFromEthAccounts(accounts)\n\n if (account) {\n this.setState({\n account,\n },\n () => this.onConnectedAccountChange\n && this.onConnectedAccountChange())\n }\n }\n })\n }\n\n public render(): ReactNode {\n const {\n provider,\n web3,\n account,\n networkInfo,\n } = this.state\n const {\n setProvider,\n onConnectedNetworkChange,\n onConnectedAccountChange,\n availableProviders,\n } = this\n\n const { children } = this.props\n\n return (\n \n {children}\n \n )\n }\n}\n\nexport default { Consumer: Web3Store.Consumer, Provider: Web3Provider }\n"],"names":["useStyles","makeStyles","block","width","noShadow","boxShadow","rounded","borderRadius","Button","className","shadow","children","rest","classes","React","MUIButton","trim","colors","black","primary","darkBlue","gray1","gray2","gray3","gray4","gray5","gray6","transparent","white","fonts","family","size","tiny","small","normal","medium","subtitleSmall","subtitleBig","weight","light","regular","bold","globalConstants","headerHeight","theme","createMuiTheme","palette","main","secondary","typography","fontFamily","button","textTransform","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","body1","fontWeight","props","overrides","MuiButton","root","MuiFormControlLabel","color","MuiSlider","rail","height","opacity","track","thumb","marginLeft","MuiTextField","createStyles","unCheckedIcon","checkedIcon","Checkbox","checked","isChecked","setIsChecked","useState","handleChange","event","newChecked","onChange","MUICheckbox","CheckBoxSharp","icon","CheckBoxOutlineBlankSharp","require","EProvider","getProviderInfo","eProvider","METAMASK","name","iconImg","metaMaskIconImg","NIFTY","niftyIconImg","LEDGER","TREZOR","TRUST","GO_WALLET","ALPHA_WALLET","STATUS","COINBASE","MIST","PARITY","INFURA","LOCAL","Error","padding","margin","content","display","alignItems","maxHeight","spacing","justifyContent","imageWrapper","marginRight","LoginOption","onClick","providerInfo","providerContent","src","alt","handleOnClick","window","open","variant","Tooltip","arrow","title","Logo","logoFullWhite","LogoNavbar","fontSize","pxToRem","selected","borderBottom","StyledNavTab","Tab","component","NavLink","disableRipple","defaultonCorrectNetworkMessage","deaulftonNetworkMismatchMessage","defaultNoNetworkMessage","NetworkStatus","getNetworkStatus","currentNetworkId","requiredNetworkId","NO_NETWORK","CORRECT_NETWORK","NETWORK_MISSMATCH","NetworkIndicator","iconClassName","onCorrectNetworkMessage","onNetworkMismatchMessage","noNetworkMessage","networkStatus","iconPerNetworkStatus","Map","set","WarningIcon","style","yellow","ErrorIcon","CheckCircleOutlineOutlinedIcon","green","get","paper","backgroundColor","background","border","shadows","left","minWidth","position","top","transform","Modal","MUIModal","ModalHeader","ModalTitle","Typography","borderTop","paddingTop","ModalFooter","ModalBody","overlay","zIndex","spinner","animation","WithSpinner","WrappedComponent","Spinner","isLoading","logoBlueIcon","heading","accordionSummary","Accordion","expanded","id","isExpanded","setIsExpanded","MUIAccordion","AccordionSummary","expandIcon","ExpandMoreIcon","AccordionDetails","AccountModal","setProvider","availableProviders","onClose","onProviderSet","Fragment","length","map","key","tooltipTitle","CopyTextTooltip","displayElement","fullText","isCopied","setIsCopied","tooltipContent","FileCopyIcon","interactive","navigator","clipboard","writeText","then","headingExpanded","headingCollapsed","panelDetails","answerContainer","breakpoints","up","maxWidth","answerText","FAQSection","initiallyExpanded","question","answer","RemoveIcon","AddIcon","LabeledCheckbox","labelText","labelClassName","FormControlLabel","label","control","FilterCheckboxCard","items","item","i","shortenString","str","largerThan","charsShownCount","substr","removeEmptySpaces","replace","maxSupportedNumber","minSupportedNumber","validatedNumber","num","flexDirection","footerLink","textDecoration","footerTitle","textAlign","FooterColumn","links","link","isExternal","href","to","toString","target","ModalDialogue","footer","input","paddingLeft","inputContainer","paddingRight","units","unitsContainer","alignSelf","UnitsInput","maxValue","minValue","value","step","handleOnBlur","handleOnChange","Grid","container","xs","Input","onBlur","type","fullWidth","inputProps","min","max","inputsContainer","toContainer","RangeSliderWithInputs","values","start","startValue","end","endValue","unit","handleStartInputChange","newStartValue","Number","handleEndInputChange","newEndValue","handleSliderChange","_","newSliderValue","handleStartValueBlur","handleEndValueBlur","getCommonInputValues","Slider","ShortenTextTooltip","maxLength","indicator","StyledTabs","Tabs","a11yProps","index","minHeight","overflow","tabContainer","tab","outlineStyle","tabIndicator","tabSelected","SwitchTabs","label1","label2","controlledValue","newValue","MUITabs","TabIndicatorProps","MUITab","TooltipIconButton","iconButtonProps","IconButton","boxContainer","marginTop","loaderContainer","WrongNetworkModal","currentNetworkName","requiredNetworkName","gutterBottom","align","Box","sm","CircularProgress","copyright","copyrightContent","footerContainer","paddingBottom","footerContent","linksColumn","marginBottom","logoColumn","tongue","borderTopLeftRadius","borderTopRightRadius","Footer","copyrightText","linksColumns","direction","md","lg","logoBlackAndBlue","linkColumn","ConnectionStatus","getWeb3","provider","Promise","resolve","reject","ethereum","web3","Web3","enable","catch","currentProvider","localhostProvider","providers","HttpProvider","getNetworkInfo","networkId","chainId","networksData","find","n","getNetworkInfoFromWeb3","networkInfo","error","eth","net","getId","getChainId","getAvailableProviders","result","undefined","isMetaMask","push","isNiftyWallet","isTrust","isGoWallet","isAlphaWallet","isStatus","isToshi","__CIPHER__","CIPHER","constructor","host","indexOf","getConnectionStatus","account","LoggedOut","WrongNetwork","LoggedIn","WalletLocked","accountText","networkIndicator","rightNetwork","Account","modalInitiallyOpened","accountModalOpen","setAccountModalOpen","handleAccountModalClose","handleAccountModalOpen","wrongNetModalOpen","setWrongNetModalOpen","openWrongNetModal","closeWrongNetModal","connectionStatus","anchorEl","setAnchorEl","popoverOpen","Boolean","handlePopoverClose","useEffect","onAccountClicked","currentTarget","Popover","anchorOrigin","vertical","horizontal","transformOrigin","activeNavlink","navLink","navLinkContainer","HeaderDesktop","hreflogo","itemsStart","itemsEnd","login","Login","AppBar","Toolbar","justify","navItem","activeClassName","alignContent","ListItemIcon","drawerWidth","drawerHeader","mixins","toolbar","drawerPaper","mobileAppBar","transition","transitions","create","easing","sharp","duration","leavingScreen","mobileAppBarShift","easeOut","enteringScreen","mobileNavLink","mobileNavLinkActive","HeaderMobile","setOpen","toggleDrawer","isOpen","role","onKeyDown","MenuIcon","Drawer","anchor","ChevronLeftIcon","Divider","List","headerItem","ListItem","ListItemText","Header","Hidden","smDown","mdUp","textContainer","textContent","down","titleContent","tongueImg","HeaderTongue","description","titleLine1","titleLine2","headerTongueImg","grayBackground","mainTitle","questionsSection","FAQPageTemplate","questionsAndAnswers","qAndA","PageTemplate","defaultWeb3State","Web3Store","createContext","state","actions","onConnectedNetworkChange","onConnectedAccountChange","requiredChainId","getAccountFromEthAccounts","accounts","Array","isArray","shouldReadAccount","Web3Provider","Component","bind","initialize","onStateChanged","getAccounts","shouldSetAccount","setState","autoRefreshOnNetworkChange","on","_netId","newNetworkInfo","render","Provider","Consumer"],"mappings":"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,OAAO,MAAM,CAAC;AACf,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"} \ No newline at end of file +{"version":3,"file":"index.js","sources":["../src/components/atoms/Button.tsx","../src/theme/theme.ts","../src/components/atoms/Checkbox.tsx","../src/assets/images/icons/nifty.png","../src/assets/images/icons/rifCom.png","../src/assets/images/icons/rifDir.png","../src/assets/images/icons/rifGat.png","../src/assets/images/icons/rifMar.png","../src/assets/images/icons/rifPay.png","../src/assets/images/icons/rifSto.png","../src/models/ProviderInfo.ts","../src/components/atoms/LoginOption.tsx","../src/components/atoms/Logo.tsx","../src/components/atoms/LogoNavbar.tsx","../src/components/atoms/StyledNavTab.tsx","../src/components/atoms/NetworkIndicator.tsx","../src/components/atoms/modal/Modal.tsx","../src/components/atoms/modal/ModalHeader.tsx","../src/components/atoms/modal/ModalTitle.tsx","../src/components/atoms/modal/ModalFooter.tsx","../src/components/atoms/modal/ModalBody.tsx","../src/components/hoc/WithSpinner.tsx","../src/components/molecules/Accordion.tsx","../src/components/molecules/AccountModal.tsx","../src/components/molecules/CopyTextTooltip.tsx","../src/components/molecules/FAQSection.tsx","../src/components/molecules/LabeledCheckbox.tsx","../src/components/molecules/FilterCheckboxCard.tsx","../src/utils.ts","../src/components/molecules/FooterColumn.tsx","../src/components/molecules/ModalDialogue.tsx","../src/components/molecules/UnitsInput.tsx","../src/components/molecules/RangeSliderWithInputs.tsx","../src/components/molecules/ShortenTextTooltip.tsx","../src/components/molecules/StyledTabs.tsx","../src/components/molecules/SwitchTabs.tsx","../src/components/molecules/TooltipIconButton.tsx","../src/components/molecules/WrongNetworkModal.tsx","../src/components/organisms/Footer.tsx","../src/models/Enums.ts","../node_modules/babel-plugin-transform-async-to-promises/helpers.js","../src/services/Web3Service.ts","../src/components/organisms/Account.tsx","../src/components/organisms/Header/HeaderDesktop.tsx","../src/components/organisms/Header/HeaderMobile.tsx","../src/components/organisms/Header/Header.tsx","../src/components/organisms/Header/HeaderTongue.tsx","../src/components/templates/FAQPageTemplate.tsx","../src/components/templates/PageTemplate.tsx","../src/providers/Web3Provider.tsx"],"sourcesContent":["import React, { FC } from 'react'\nimport { Button as MUIButton, ButtonProps as MUIButtonProps } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\n\nexport interface ButtonProps extends MUIButtonProps {\n block?: boolean\n shadow?: boolean\n rounded?: boolean\n}\n\nconst useStyles = makeStyles(() => ({\n block: {\n width: '100%',\n },\n noShadow: {\n boxShadow: 'none',\n },\n rounded: {\n borderRadius: 50,\n },\n}))\n\nconst Button: FC = ({\n className = '', block, shadow, rounded, children, ...rest\n}) => {\n const classes = useStyles()\n\n return (\n \n {children}\n \n )\n}\n\nexport default Button\n","import { createMuiTheme } from '@material-ui/core/styles'\nimport '../assets/css/fonts/rubik.css'\n\nexport const colors = {\n black: '#000000',\n primary: '#008FF7',\n darkBlue: '#197DC6',\n gray1: '#F8F7F7',\n gray2: '#E5E5E5',\n gray3: '#C4C4C4',\n gray4: '#919191',\n gray5: '#4D4C4C',\n gray6: '#15171B',\n transparent: '#FFFFFF00',\n white: '#FFFFFF',\n}\n\nexport const fonts = {\n family: 'Rubik',\n size: {\n tiny: 10,\n small: 12,\n normal: 14,\n medium: 16,\n subtitleSmall: 18,\n subtitleBig: 22,\n },\n weight: {\n light: 300,\n regular: 400,\n medium: 500,\n bold: 700,\n },\n}\n\nexport const globalConstants = {\n headerHeight: 8,\n}\n\nconst theme = createMuiTheme({\n palette: {\n primary: {\n main: colors.primary,\n },\n secondary: {\n main: colors.gray4,\n },\n },\n typography: {\n fontFamily: fonts.family,\n button: {\n textTransform: 'none',\n },\n fontWeightLight: fonts.weight.light,\n fontWeightRegular: fonts.weight.regular,\n fontWeightMedium: fonts.weight.medium,\n fontWeightBold: fonts.weight.bold,\n body1: {\n fontWeight: fonts.weight.light,\n },\n },\n props: {},\n overrides: {\n MuiButton: {\n root: {\n fontWeight: fonts.weight.light,\n },\n },\n MuiFormControlLabel: {\n root: {\n color: colors.gray3,\n },\n },\n MuiSlider: {\n rail: {\n color: colors.gray3,\n height: 4,\n opacity: 1,\n },\n root: {\n width: '100%',\n color: colors.primary,\n height: 4,\n },\n track: {\n height: 4,\n },\n thumb: {\n marginLeft: -4,\n height: 14,\n width: 14,\n },\n },\n MuiTextField: {\n root: {\n color: colors.gray3,\n '&:hover': {\n color: colors.gray2,\n },\n },\n },\n },\n})\n\nexport default theme\n","import React, { FC, useState } from 'react'\nimport {\n Checkbox as MUICheckbox,\n CheckboxProps as MUICheckboxProps,\n makeStyles,\n createStyles,\n} from '@material-ui/core'\nimport { CheckBoxOutlineBlankSharp, CheckBoxSharp } from '@material-ui/icons'\nimport { colors } from '../../theme'\n\nexport type CheckboxProps = MUICheckboxProps;\n\nconst useStyles = makeStyles(() => createStyles({\n unCheckedIcon: {\n color: colors.gray4,\n },\n checkedIcon: {\n color: colors.primary,\n },\n}))\n\nconst Checkbox: FC = (props) => {\n const classes = useStyles()\n const { checked } = props\n const [isChecked, setIsChecked] = useState(!!checked)\n\n const handleChange = (event: React.ChangeEvent,\n newChecked: boolean): void => {\n setIsChecked(newChecked)\n const { onChange } = props\n\n if (onChange) onChange(event, newChecked)\n }\n\n return (\n \n }\n icon={\n \n }\n {...props}\n checked={isChecked}\n onChange={handleChange}\n />\n )\n}\n\nexport default Checkbox\n","/* loaded by smart-asset */\nexport default require(\"./nifty~RMIWdZeg.png\")","/* loaded by smart-asset */\nexport default require(\"./rifCom~udwpaCym.png\")","/* loaded by smart-asset */\nexport default require(\"./rifDir~bottaDNJ.png\")","/* loaded by smart-asset */\nexport default require(\"./rifGat~balFpEzC.png\")","/* loaded by smart-asset */\nexport default require(\"./rifMar~IDqKMWpK.png\")","/* loaded by smart-asset */\nexport default require(\"./rifPay~bdtOAceT.png\")","/* loaded by smart-asset */\nexport default require(\"./rifSto~fMRetflo.png\")","import { metaMaskIconImg, niftyIconImg } from '../assets/images'\n\nexport default interface ProviderInfo {\n name: string\n eProvider: EProvider\n iconImg?: string\n}\n\nexport enum EProvider {\n METAMASK = 'Metamask',\n NIFTY = 'Nifty',\n LEDGER = 'Ledger',\n TREZOR = 'Trezor',\n TRUST = 'Trust',\n LOCAL = 'Localhost',\n GO_WALLET = 'GoWallet',\n ALPHA_WALLET = 'AlphaWallet',\n STATUS = 'status',\n CIPHER = 'cipher',\n COINBASE = 'coinbase',\n MIST = 'mist',\n PARITY = 'parity',\n INFURA = 'infura'\n}\n\nexport const getProviderInfo = (eProvider: EProvider): ProviderInfo => {\n switch (eProvider) {\n case EProvider.METAMASK:\n return {\n name: 'MetaMask',\n eProvider,\n iconImg: metaMaskIconImg,\n }\n case EProvider.NIFTY:\n return {\n name: 'Nifty',\n eProvider,\n iconImg: niftyIconImg,\n }\n case EProvider.LEDGER:\n return {\n name: 'Ledger',\n eProvider,\n }\n case EProvider.TREZOR:\n return {\n name: 'Trezor',\n eProvider,\n }\n case EProvider.TRUST:\n return {\n name: 'Trust',\n eProvider,\n }\n case EProvider.GO_WALLET:\n return {\n name: 'Go Wallet',\n eProvider,\n }\n case EProvider.ALPHA_WALLET:\n return {\n name: 'Alpha Wallet',\n eProvider,\n }\n case EProvider.STATUS:\n return {\n name: 'Status',\n eProvider,\n }\n case EProvider.COINBASE:\n return {\n name: 'Coinbase',\n eProvider,\n }\n case EProvider.MIST:\n return {\n name: 'Mist',\n eProvider,\n }\n case EProvider.PARITY:\n return {\n name: 'Parity',\n eProvider,\n }\n case EProvider.INFURA:\n return {\n name: 'Infura',\n eProvider,\n }\n case EProvider.LOCAL:\n return {\n name: 'Localhost',\n eProvider,\n }\n default: {\n throw new Error(\n `EProvider not implemented or unknown. Chosen provider ${eProvider}`,\n )\n }\n }\n}\n","import React, { FC } from 'react'\nimport { makeStyles, Theme, Tooltip } from '@material-ui/core'\nimport Button from './Button'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport { niftyIconImg } from '../../assets/images'\n\nexport interface LoginOptionProps {\n className?: string\n onClick?: () => void\n providerInfo?: ProviderInfo\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n padding: 5,\n margin: 5,\n width: '100%',\n },\n content: {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n maxHeight: theme.spacing(5),\n justifyContent: 'center',\n },\n imageWrapper: {\n maxHeight: theme.spacing(4),\n marginRight: theme.spacing(2),\n },\n}))\n\n/**\n * If not providerInfo is received, we assume there's no provider available and so suggest to install Nifty wallet\n * Same happens when no onClick is provided. We open the Nifty page on a new tab\n */\nconst LoginOption: FC = ({\n className = '',\n onClick,\n providerInfo,\n ...rest\n}) => {\n const classes = useStyles()\n\n const providerContent = (\n
\n {\n providerInfo?.iconImg\n && (\n \n )\n }\n {providerInfo?.name}\n
\n )\n\n const handleOnClick = () => {\n if (onClick) {\n return onClick()\n }\n return window.open('https://www.poa.network/for-users/nifty-wallet/getting-started', '_blank')\n }\n\n return (\n \n {/* only with Nifty we display the Tooltip because atm we can't check if MetaMask is also enabled */}\n {!!providerInfo && providerInfo.eProvider === EProvider.NIFTY\n && (\n \n {providerContent}\n \n )}\n {!!providerInfo && providerInfo.eProvider !== EProvider.NIFTY\n && providerContent}\n {!providerInfo\n && (\n
\n \n Install Nifty wallet\n
\n )}\n \n )\n}\n\nexport default LoginOption\n","import React, { FC } from 'react'\nimport { logoFullWhite } from '../../assets/images'\n\nconst Logo: FC> = (\n { alt = 'RIF OS logo', ...rest },\n) => {alt}\n\nexport default Logo\n","import React, { FC } from 'react'\nimport { logoFullWhite } from '../../assets/images'\n\ninterface LogoProps extends React.Props {\n alt?: string\n height?: string | number\n style?: React.CSSProperties\n}\n\nconst LogoNavbar: FC = ({ alt = 'navbar logo', height = '44px', ...rest }) => (\n \n)\nexport default LogoNavbar\n","import React, { FC } from 'react'\nimport { Theme, makeStyles } from '@material-ui/core/styles'\nimport Tab from '@material-ui/core/Tab'\nimport { NavLink } from 'react-router-dom'\nimport { colors } from '../../theme'\n\nexport interface StyledNavTabProps {\n label: string\n to: string\n value: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n textTransform: 'none',\n color: colors.gray5,\n fontWeight: theme.typography.fontWeightRegular,\n fontSize: theme.typography.pxToRem(15),\n marginRight: theme.spacing(1),\n '&:focus': {\n opacity: 1,\n },\n },\n selected: {\n fontWeight: theme.typography.fontWeightMedium,\n borderBottom: '2px solid #000000',\n },\n}))\n\nconst StyledNavTab: FC = (props: StyledNavTabProps) => {\n const classes = useStyles()\n return \n}\n\nexport default StyledNavTab\n","import React, { FC } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport CheckCircleOutlineOutlinedIcon from '@material-ui/icons/CheckCircleOutlineOutlined'\nimport ErrorIcon from '@material-ui/icons/Error'\nimport WarningIcon from '@material-ui/icons/Warning'\nimport { green, yellow } from '@material-ui/core/colors'\n\nexport interface NetworkIndicatorProps {\n iconClassName?: string\n currentNetworkId?: number\n requiredNetworkId?: number\n onCorrectNetworkMessage?: string\n onNetworkMismatchMessage?: string\n noNetworkMessage?: string\n}\n\nconst defaultonCorrectNetworkMessage = 'You are on the right network'\nconst deaulftonNetworkMismatchMessage = 'You are on the wrong network'\nconst defaultNoNetworkMessage = 'You are not connected to any network'\n\nexport enum NetworkStatus {\n NO_NETWORK = 1,\n NETWORK_MISSMATCH = 2,\n CORRECT_NETWORK = 3\n}\n\nconst getNetworkStatus = (currentNetworkId, requiredNetworkId): NetworkStatus => {\n if (!currentNetworkId) return NetworkStatus.NO_NETWORK\n\n if (currentNetworkId === requiredNetworkId) return NetworkStatus.CORRECT_NETWORK\n return NetworkStatus.NETWORK_MISSMATCH\n}\n\nconst NetworkIndicator: FC = ({\n iconClassName = '',\n currentNetworkId, requiredNetworkId, onCorrectNetworkMessage,\n onNetworkMismatchMessage, noNetworkMessage,\n}) => {\n const networkStatus = getNetworkStatus(currentNetworkId, requiredNetworkId)\n\n const iconPerNetworkStatus = new Map()\n iconPerNetworkStatus.set(NetworkStatus.NO_NETWORK, (\n \n \n \n ))\n iconPerNetworkStatus.set(NetworkStatus.NETWORK_MISSMATCH, (\n \n \n \n ))\n iconPerNetworkStatus.set(NetworkStatus.CORRECT_NETWORK, (\n \n \n \n ))\n\n return (\n iconPerNetworkStatus.get(networkStatus)\n )\n}\n\nexport default NetworkIndicator\n","import React, { FC } from 'react'\nimport { Modal as MUIModal, ModalProps as MUIModalProps } from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport type ModalProps = MUIModalProps;\n\nconst useStyles = makeStyles((theme: Theme) => ({\n paper: {\n backgroundColor: theme.palette.background.paper,\n border: `2px solid ${colors.primary}`,\n boxShadow: theme.shadows[5],\n left: '50%',\n minWidth: 400,\n padding: theme.spacing(2, 4, 3),\n position: 'absolute',\n top: '50%',\n transform: 'translate(-50%, -50%)',\n },\n}))\n\nconst Modal: FC = ({ children, ...rest }) => {\n const classes = useStyles()\n\n return (\n \n
\n {children}\n
\n
\n )\n}\n\nexport default Modal\n","import React, { FC } from 'react'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport interface ModalHeaderProps {\n className?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n borderBottom: `1px solid ${colors.gray2}`,\n color: colors.primary,\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n },\n}))\n\nconst ModalHeader: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalHeader\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\n\nexport interface ModalTitleProps {\n className?: string\n}\n\nconst ModalTitle: FC = ({ children, ...rest }) => (\n \n {children}\n \n)\n\nexport default ModalTitle\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport interface ModalFooterProps {\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n borderTop: `1px solid ${colors.gray2}`,\n display: 'flex',\n justifyContent: 'center',\n paddingTop: theme.spacing(1),\n width: '100%',\n },\n}))\n\nconst ModalFooter: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalFooter\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\n\nexport interface ModalBodyProps {\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n padding: theme.spacing(3, 0),\n width: '100%',\n },\n}))\n\nconst ModalBody: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalBody\n","import React from 'react'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { logoBlueIcon } from '../../assets/images'\n\nconst useStyles = makeStyles(() => ({\n '@keyframes spin': {\n '0%': { transform: 'rotate(0deg)' },\n '100%': { transform: 'rotate(360deg)' },\n },\n root: {\n position: 'relative',\n },\n overlay: {\n position: 'absolute',\n zIndex: 2,\n height: '100%',\n width: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n background: '#FFFFFF55',\n },\n spinner: {\n display: 'inline-block',\n zIndex: 3,\n width: '50px',\n height: '50px',\n border: 'none',\n animation: '$spin 2s ease-in-out infinite',\n },\n}))\n\nconst WithSpinner = (WrappedComponent: React.ElementType) => {\n const Spinner = ({ isLoading, ...props }) => {\n const classes = useStyles()\n\n return (\n
\n {\n isLoading\n && (\n
\n \"logo\"\n
\n )\n }\n \n
\n )\n }\n return Spinner\n}\n\nexport default WithSpinner\n","import React, { FC, useState } from 'react'\nimport { Accordion as MUIAccordion, AccordionProps as MUIAccordionProps } from '@material-ui/core'\nimport Typography from '@material-ui/core/Typography'\nimport AccordionDetails from '@material-ui/core/AccordionDetails'\nimport AccordionSummary from '@material-ui/core/AccordionSummary'\nimport { makeStyles, Theme, createStyles } from '@material-ui/core/styles'\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore'\nimport { colors } from '../../theme'\n\ninterface AccordionProps extends MUIAccordionProps {\n id: string\n title?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n root: {\n boxShadow: 'none',\n color: colors.gray4,\n width: '100%',\n },\n heading: {\n color: colors.gray4,\n fontSize: theme.typography.pxToRem(15),\n fontWeight: theme.typography.fontWeightRegular,\n width: '100%',\n },\n accordionSummary: {\n borderBottom: `1px solid ${colors.gray2}`,\n },\n}))\n\nconst Accordion: FC = ({\n children, expanded, id, title,\n}) => {\n const classes = useStyles()\n const [isExpanded, setIsExpanded] = useState(!!expanded)\n\n const onChange = (): void => setIsExpanded(!isExpanded)\n\n return (\n \n }\n aria-controls={`panel-${id}-content`}\n id={id}\n >\n {title}\n \n \n {children}\n \n \n )\n}\n\nexport default Accordion\n","import React, { FC } from 'react'\nimport Web3 from 'web3'\nimport {\n Button, LoginOption, Modal, ModalBody, ModalFooter, ModalHeader, ModalTitle,\n} from '../atoms'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport NetworkInfo from '../../models/NetworkInfo'\n\nexport interface AccountModalProps {\n web3?: Web3\n networkInfo?: NetworkInfo\n setProvider?: (provider: EProvider, onProviderSet?:\n (account?: string) => void) => Promise\n availableProviders?: ProviderInfo[]\n onClose?: () => void\n onProviderSet?: (account) => void\n open: boolean\n}\n\nconst AccountModal: FC = ({\n setProvider,\n availableProviders,\n open,\n onClose,\n onProviderSet,\n}) => (\n \n \n \n Connect a wallet to get started\n \n \n {\n availableProviders && availableProviders.length && availableProviders.map(\n (providerInfo) => (\n => {\n if (setProvider) await setProvider(providerInfo.eProvider, onProviderSet)\n }}\n />\n ),\n )\n }\n {!availableProviders\n && (\n // TODO: Create LoginOptionTemplate to extract this\n // empty LoginOption means suggest to install Nifty wallet\n \n )}\n \n \n \n Close\n \n \n \n \n)\n\nexport default AccountModal\n","import React, { FC, useState } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport { makeStyles } from '@material-ui/core/styles'\nimport FileCopyIcon from '@material-ui/icons/FileCopy'\nimport Typography from '@material-ui/core/Typography'\n\nexport interface CopyTextTooltipProps {\n displayElement: React.ReactElement\n fullText: string\n}\n\nconst useStyles = makeStyles(() => ({\n tooltipTitle: {\n display: 'flex',\n alignItems: 'center',\n },\n}))\n\nconst CopyTextTooltip: FC = ({ displayElement, fullText }) => {\n const [isCopied, setIsCopied] = useState(false)\n\n const classes = useStyles()\n\n const tooltipContent = (\n
\n \n \n {fullText}\n \n
\n )\n\n return (\n Copied! : tooltipContent}\n onClick={() => {\n navigator.clipboard.writeText(fullText)\n .then(() => { setIsCopied(true) })\n }}\n onClose={() => {\n setIsCopied(false)\n }}\n >\n {displayElement}\n \n )\n}\n\nexport default CopyTextTooltip\n","import React, { FC, useState } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Accordion from '@material-ui/core/Accordion'\nimport AccordionDetails from '@material-ui/core/AccordionDetails'\nimport AccordionSummary from '@material-ui/core/AccordionSummary'\nimport Typography from '@material-ui/core/Typography'\nimport AddIcon from '@material-ui/icons/Add'\nimport RemoveIcon from '@material-ui/icons/Remove'\nimport { colors, fonts } from '../../theme'\n\nexport interface FAQSectionProps {\n answer: string\n initiallyExpanded?: boolean\n question: string\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n boxShadow: 'none',\n color: colors.gray4,\n width: '100%',\n },\n heading: {\n display: 'flex',\n justifyContent: 'center',\n color: colors.gray5,\n fontSize: fonts.size.subtitleSmall,\n width: '100%',\n },\n headingExpanded: {\n color: colors.primary,\n },\n headingCollapsed: {\n fontWeight: fonts.weight.regular,\n },\n panelDetails: {\n display: 'flex',\n justifyContent: 'center',\n },\n answerContainer: {\n [theme.breakpoints.up('md')]: {\n maxWidth: '80%',\n },\n },\n answerText: {\n color: colors.gray5,\n },\n}))\n\nconst FAQSection: FC = ({\n className = '', initiallyExpanded, question, answer,\n}) => {\n const classes = useStyles()\n const [isExpanded, setIsExpanded] = useState(!!initiallyExpanded)\n\n const onChange = (): void => setIsExpanded(!isExpanded)\n\n return (\n \n : }\n >\n {question}\n \n \n
\n {answer}\n
\n
\n
\n )\n}\n\nexport default FAQSection\n","import React, { FC } from 'react'\nimport { FormControlLabel } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Checkbox, { CheckboxProps } from '../atoms/Checkbox'\nimport { colors } from '../../theme'\n\nexport interface LabeledCheckboxProps extends CheckboxProps {\n labelText: string\n labelClassName?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n color: colors.gray4,\n width: '100%',\n },\n}))\n\nconst LabeledCheckbox: FC = ({ labelText, labelClassName = '', ...rest }) => {\n const classes = useStyles()\n return (\n \n }\n />\n\n )\n}\n\nexport default LabeledCheckbox\n","import React, { FC } from 'react'\nimport LabeledCheckbox, { LabeledCheckboxProps } from './LabeledCheckbox'\n\nexport interface FilterCheckboxCardProps {\n className?: string\n items: LabeledCheckboxProps[]\n onClick?: (event: React.MouseEvent) => void\n}\n\nconst FilterCheckboxCard: FC = ({ className = '', onClick, items }) => (\n
\n {items.map((item: LabeledCheckboxProps, i) => (\n \n ))}\n
\n)\n\nexport default FilterCheckboxCard\n","const shortenString = (\n str: string,\n largerThan = 16,\n charsShownCount = 6,\n): string => (str.length > largerThan\n ? `${str.substr(0, charsShownCount)}...${str.substr(str.length - 4)}`\n : str)\n\nconst removeEmptySpaces = (str: string): string => str.replace(/\\s/g, '')\n\nconst maxSupportedNumber = 99999999999999\nconst minSupportedNumber = 0.000001\n\nconst validatedNumber = (num: number): number => {\n if (num > 0) {\n if (num > maxSupportedNumber) return maxSupportedNumber\n\n if (num < minSupportedNumber) return minSupportedNumber\n }\n\n if (num < 0) {\n if (num < -maxSupportedNumber) return -maxSupportedNumber\n\n if (num > -minSupportedNumber) return -minSupportedNumber\n }\n return num\n}\n\nexport {\n shortenString,\n removeEmptySpaces,\n maxSupportedNumber,\n minSupportedNumber,\n validatedNumber,\n}\n","import React, { FC } from 'react'\nimport { NavLinkProps, NavLink } from 'react-router-dom'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../theme'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FooterColumnProps {\n className?: string\n links: FooterLinkProps[]\n title: string\n}\n\nexport interface FooterLinkProps extends NavLinkProps {\n isExternal?: boolean\n title: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n },\n footerLink: {\n color: colors.gray4,\n fontWeight: fonts.weight.light,\n textDecoration: 'none',\n '&:hover': {\n fontWeight: fonts.weight.regular,\n },\n },\n footerTitle: {\n fontSize: fonts.size.subtitleBig,\n textAlign: 'center',\n },\n}))\n\nconst FooterColumn: FC = ({ title, links, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {title}\n {\n links.map((link: FooterLinkProps) => {\n const key = removeEmptySpaces(link.title)\n\n if (link.isExternal) {\n const href = (link.to || '#').toString()\n return (\n \n {link.title}\n \n )\n }\n return (\n \n {link.title}\n \n )\n })\n }\n
\n )\n}\n\nexport default FooterColumn\n","import React, { FC } from 'react'\nimport {\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n ModalTitle,\n} from '../atoms'\nimport { ModalProps } from '../atoms/modal/Modal'\n\nexport interface ModalDialogueProps extends ModalProps {\n title: string\n footer?: React.ReactElement\n}\n\nconst ModalDialogue: FC = ({\n title,\n footer,\n children,\n ...props\n}) => (\n \n \n \n {title}\n \n {children}\n {footer}\n \n \n)\n\nexport default ModalDialogue\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Input, { InputProps } from '@material-ui/core/Input'\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../theme'\n\nexport interface UnitsInputProps extends InputProps {\n handleOnChange: (event: React.ChangeEvent) => void\n handleOnBlur?: () => void\n maxValue?: number\n minValue?: number\n step?: number\n units?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n color: colors.gray4,\n display: 'flex',\n },\n input: {\n color: colors.gray4,\n paddingLeft: theme.spacing(0.1),\n textAlign: 'center',\n '&::before': {\n borderBottom: `1px solid ${colors.gray4}`,\n },\n },\n inputContainer: {\n paddingRight: '0 !important',\n },\n units: {\n color: colors.gray4,\n display: 'flex',\n fontSize: fonts.size.tiny,\n },\n unitsContainer: {\n alignSelf: 'center',\n color: colors.gray4,\n display: 'flex',\n fontSize: fonts.size.normal,\n paddingLeft: '0 !important',\n },\n}))\n\nconst UnitsInput: FC = ({\n maxValue,\n minValue,\n units,\n value,\n step = 1,\n handleOnBlur,\n handleOnChange,\n ...rest\n}) => {\n const classes = useStyles()\n\n return (\n \n \n \n \n \n \n \n {units}\n \n \n \n \n )\n}\n\nexport default UnitsInput\n","import Slider, { SliderProps } from '@material-ui/core/Slider'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport UnitsInput from './UnitsInput'\nimport { validatedNumber } from '../../utils'\nimport { fonts } from '../../theme'\n\nexport interface RangeSliderWithInputsProps extends SliderProps {\n values: {\n start: number\n end: number\n }\n unit?: string\n handleChange: ({ min, max }) => void\n className?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n width: '100%',\n },\n inputsContainer: {\n alignSelf: 'center',\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n },\n toContainer: {\n alignSelf: 'center',\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n fontWeight: fonts.weight.regular,\n },\n}))\n\nconst RangeSliderWithInputs: FC = ({\n values: {\n start: startValue, end: endValue,\n }, unit, handleChange, className, ...rest\n}) => {\n const classes = useStyles()\n\n const maxValue = rest.max || endValue\n const minValue = rest.min || startValue\n const step = rest.step || 1\n\n const handleStartInputChange = (\n event: React.ChangeEvent,\n ): void => {\n const newStartValue = validatedNumber(Number(event.target.value)) || minValue\n handleChange({ min: newStartValue, max: endValue })\n }\n\n const handleEndInputChange = (\n event: React.ChangeEvent,\n ): void => {\n const newEndValue = validatedNumber(Number(event.target.value)) || endValue\n handleChange({ min: startValue, max: newEndValue })\n }\n\n const handleSliderChange = (\n _: React.ChangeEvent<{}>, newSliderValue: number | number[],\n ): void => {\n handleChange({ min: newSliderValue[0], max: newSliderValue[1] })\n }\n\n const handleStartValueBlur = (): void => {\n if (startValue < minValue) {\n handleChange({ min: minValue, max: endValue })\n } else if (startValue > endValue) {\n handleChange({ min: endValue, max: endValue })\n }\n }\n\n const handleEndValueBlur = (): void => {\n if (endValue < startValue) {\n handleChange({ min: minValue, max: startValue })\n } else if (endValue > maxValue) {\n handleChange({ min: minValue, max: maxValue })\n }\n }\n\n const getCommonInputValues = (): {} => ({\n maxValue,\n minValue,\n step,\n units: unit,\n })\n\n return (\n
\n \n
\n \n \n to\n \n \n
\n
\n )\n}\n\nexport default RangeSliderWithInputs\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport CopyTextTooltip from './CopyTextTooltip'\nimport { shortenString } from '../../utils'\n\nexport interface ShortenTextTooltipProps {\n value: string\n maxLength?: number\n charsShownCount?: number\n}\n\nconst ShortenTextTooltip: FC = ({ value, maxLength = 20, charsShownCount }) => (\n \n {\n value.length > maxLength\n && (\n {shortenString(value, maxLength, charsShownCount || maxLength - 5)}}\n fullText={value}\n />\n )\n }\n {\n value.length <= maxLength\n && value\n }\n \n)\n\nexport default ShortenTextTooltip\n","import React, { FC } from 'react'\nimport Tabs, { TabsProps } from '@material-ui/core/Tabs'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { colors } from '../../theme'\n\nexport interface StyledTabsProps {\n value: string\n onChange: (event: React.ChangeEvent<{}>, newValue: string) => void\n}\n\nconst useStyles = makeStyles({\n indicator: {\n display: 'flex',\n justifyContent: 'center',\n backgroundColor: 'transparent',\n },\n root: {\n borderBottom: `1px solid ${colors.gray3}`,\n },\n})\n\nconst StyledTabs: FC = (props: TabsProps) => {\n const { children } = props\n const classes = useStyles()\n return (\n \n {children}\n \n )\n}\n\nexport default StyledTabs\n","import { Tab as MUITab, Tabs as MUITabs } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React, { FC } from 'react'\nimport { colors, fonts } from '../../theme'\n\nexport interface SwitchTabsProps {\n label1: string\n label2: string\n value?: 0 | 1\n onChange: (event: React.ChangeEvent<{}>, value: number) => void\n}\n\nconst a11yProps = (index: number): {} => ({\n id: `full-width-tab-${index}`,\n 'aria-controls': `full-width-tabpanel-${index}`,\n})\n\nconst useStyles = makeStyles(() => ({\n root: {\n backgroundColor: colors.white,\n minHeight: 20,\n width: '100%',\n border: `${colors.primary} solid 1px`,\n borderRadius: 50,\n overflow: 'hidden',\n },\n tabContainer: {\n minHeight: 20,\n width: '100%',\n },\n tab: {\n '&:hover': {\n color: colors.primary,\n },\n borderRadius: 50,\n color: colors.gray3,\n fontWeight: fonts.weight.light,\n maxWidth: '50%',\n minHeight: '100%',\n minWidth: '50%',\n outlineStyle: 'none',\n padding: 0,\n textTransform: 'capitalize',\n zIndex: 1,\n '&:focus': {\n outlineStyle: 'none',\n },\n },\n // shows the transition between tabs\n tabIndicator: {\n backgroundColor: colors.primary,\n borderRadius: 50,\n height: '100%',\n },\n tabSelected: {\n // the '!important' overrides the on hover functionality when it's active\n backgroundColor: `${colors.primary} !important`,\n color: `${colors.white} !important`,\n },\n}))\n\nconst SwitchTabs: FC = ({\n label1, label2, value: controlledValue, onChange,\n}) => {\n const classes = useStyles()\n\n const handleChange = (\n event: React.ChangeEvent<{}>, newValue: number,\n ): void => {\n onChange(event, newValue)\n }\n\n return (\n
\n \n \n \n \n
\n )\n}\n\nexport default SwitchTabs\n","import React, { FC } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport IconButton, { IconButtonProps } from '@material-ui/core/IconButton'\n\nexport interface TooltipIconButtonProps {\n tooltipTitle: string\n iconButtonProps: IconButtonProps\n icon: React.ReactNode\n}\n\nconst TooltipIconButton: FC = ({\n tooltipTitle,\n iconButtonProps,\n icon,\n}) => (\n \n \n \n {icon}\n \n \n\n \n)\n\nexport default TooltipIconButton\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport Box from '@material-ui/core/Box'\nimport Grid from '@material-ui/core/Grid'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../theme'\nimport ModalDialogue from './ModalDialogue'\n\nexport interface WrongNetworkModalProps {\n open: boolean\n currentNetworkName?: string\n requiredNetworkName: string\n onClose: () => void\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n boxContainer: {\n border: `1px solid ${colors.primary}`,\n padding: theme.spacing(5),\n marginTop: theme.spacing(3),\n },\n loaderContainer: {\n display: 'flex',\n justifyContent: 'center',\n },\n}))\n\nconst WrongNetworkModal: FC = ({\n open, currentNetworkName = 'Private network', requiredNetworkName, onClose,\n}) => {\n const classes = useStyles()\n return (\n \n \n \n This dApp only works on the\n {' '}\n {requiredNetworkName}\n .\n You are currently on\n {' '}\n {currentNetworkName}\n .\n \n \n \n \n \n \n Waiting for the right network...\n \n Switch networks on your wallet\n \n \n \n \n \n )\n}\nexport default WrongNetworkModal\n","import React, { FC, HTMLAttributes } from 'react'\nimport { Grid } from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport FooterColumn, { FooterColumnProps } from '../molecules/FooterColumn'\nimport { colors, fonts } from '../../theme'\nimport { logoBlackAndBlue } from '../../assets/images'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FooterProps extends HTMLAttributes {\n className?: string\n copyrightText: string\n linksColumns: FooterColumnProps[]\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n copyright: {\n display: 'flex',\n justifyContent: 'center',\n },\n copyrightContent: {\n color: colors.gray4,\n fontSize: fonts.size.tiny,\n },\n footerContainer: {\n backgroundColor: colors.gray2,\n display: 'flex',\n justifyContent: 'center',\n paddingBottom: theme.spacing(2),\n width: '100%',\n },\n footerContent: {\n marginTop: theme.spacing(2),\n maxWidth: '80%',\n width: '100%',\n },\n linksColumn: {\n marginBottom: theme.spacing(1),\n },\n logoColumn: {\n display: 'flex',\n justifyContent: 'center',\n padding: theme.spacing(5),\n },\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n paddingTop: theme.spacing(4),\n width: '100%',\n },\n tongue: {\n backgroundColor: colors.gray2,\n borderTopLeftRadius: '50% 80%',\n borderTopRightRadius: '50% 80%',\n height: theme.spacing(10),\n width: '100%',\n },\n}))\n\nconst Footer: FC = ({\n className = '', copyrightText, linksColumns, ...rest\n}) => {\n const classes = useStyles()\n\n return (\n
\n
\n
\n
\n \n \n \"logo\"\n \n {\n linksColumns.map((linkColumn: FooterColumnProps) => (\n \n \n \n ))\n }\n \n
\n \n {copyrightText}\n \n
\n
\n
\n
\n )\n}\n\nexport default Footer\n","export enum ConnectionStatus {\n LoggedIn = 0,\n LoggedOut = 1,\n WalletLocked = 2,\n WrongNetwork = 3\n}\n\nexport default ConnectionStatus\n","// A type of promise-like that resolves synchronously and supports only one observer\nexport const _Pact = /*#__PURE__*/(function() {\n\tfunction _Pact() {}\n\t_Pact.prototype.then = function(onFulfilled, onRejected) {\n\t\tconst result = new _Pact();\n\t\tconst state = this.s;\n\t\tif (state) {\n\t\t\tconst callback = state & 1 ? onFulfilled : onRejected;\n\t\t\tif (callback) {\n\t\t\t\ttry {\n\t\t\t\t\t_settle(result, 1, callback(this.v));\n\t\t\t\t} catch (e) {\n\t\t\t\t\t_settle(result, 2, e);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\tthis.o = function(_this) {\n\t\t\ttry {\n\t\t\t\tconst value = _this.v;\n\t\t\t\tif (_this.s & 1) {\n\t\t\t\t\t_settle(result, 1, onFulfilled ? onFulfilled(value) : value);\n\t\t\t\t} else if (onRejected) {\n\t\t\t\t\t_settle(result, 1, onRejected(value));\n\t\t\t\t} else {\n\t\t\t\t\t_settle(result, 2, value);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(result, 2, e);\n\t\t\t}\n\t\t};\n\t\treturn result;\n\t}\n\treturn _Pact;\n})();\n\n// Settles a pact synchronously\nexport function _settle(pact, state, value) {\n\tif (!pact.s) {\n\t\tif (value instanceof _Pact) {\n\t\t\tif (value.s) {\n\t\t\t\tif (state & 1) {\n\t\t\t\t\tstate = value.s;\n\t\t\t\t}\n\t\t\t\tvalue = value.v;\n\t\t\t} else {\n\t\t\t\tvalue.o = _settle.bind(null, pact, state);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (value && value.then) {\n\t\t\tvalue.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));\n\t\t\treturn;\n\t\t}\n\t\tpact.s = state;\n\t\tpact.v = value;\n\t\tconst observer = pact.o;\n\t\tif (observer) {\n\t\t\tobserver(pact);\n\t\t}\n\t}\n}\n\nexport function _isSettledPact(thenable) {\n\treturn thenable instanceof _Pact && thenable.s & 1;\n}\n\n// Converts argument to a function that always returns a Promise\nexport function _async(f) {\n\treturn function() {\n\t\tfor (var args = [], i = 0; i < arguments.length; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\t\ttry {\n\t\t\treturn Promise.resolve(f.apply(this, args));\n\t\t} catch(e) {\n\t\t\treturn Promise.reject(e);\n\t\t}\n\t}\n}\n\n// Awaits on a value that may or may not be a Promise (equivalent to the await keyword in ES2015, with continuations passed explicitly)\nexport function _await(value, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(value) : value;\n\t}\n\tif (!value || !value.then) {\n\t\tvalue = Promise.resolve(value);\n\t}\n\treturn then ? value.then(then) : value;\n}\n\n// Awaits on a value that may or may not be a Promise, then ignores it\nexport function _awaitIgnored(value, direct) {\n\tif (!direct) {\n\t\treturn value && value.then ? value.then(_empty) : Promise.resolve();\n\t}\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continue(value, then) {\n\treturn value && value.then ? value.then(then) : then(value);\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continueIgnored(value) {\n\tif (value && value.then) {\n\t\treturn value.then(_empty);\n\t}\n}\n\n// Asynchronously iterate through an object that has a length property, passing the index as the first argument to the callback (even as the length property changes)\nexport function _forTo(array, body, check) {\n\tvar i = -1, pact, reject;\n\tfunction _cycle(result) {\n\t\ttry {\n\t\t\twhile (++i < array.length && (!check || !check())) {\n\t\t\t\tresult = body(i);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pact) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t} else {\n\t\t\t\tpact = result;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t}\n\t}\n\t_cycle();\n\treturn pact;\n}\n\n// Asynchronously iterate through an object's properties (including properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forIn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tkeys.push(key);\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\n// Asynchronously iterate through an object's own properties (excluding properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forOwn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tif (Object.prototype.hasOwnProperty.call(target, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\nexport const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\"))) : \"@@iterator\";\n\n// Asynchronously iterate through an object's values\n// Uses for...of if the runtime supports it, otherwise iterates until length on a copy\nexport function _forOf(target, body, check) {\n\tif (typeof target[_iteratorSymbol] === \"function\") {\n\t\tvar iterator = target[_iteratorSymbol](), step, pact, reject;\n\t\tfunction _cycle(result) {\n\t\t\ttry {\n\t\t\t\twhile (!(step = iterator.next()).done && (!check || !check())) {\n\t\t\t\t\tresult = body(step.value);\n\t\t\t\t\tif (result && result.then) {\n\t\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pact) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t} else {\n\t\t\t\t\tpact = result;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t\t}\n\t\t}\n\t\t_cycle();\n\t\tif (iterator.return) {\n\t\t\tvar _fixup = function(value) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!step.done) {\n\t\t\t\t\t\titerator.return();\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (pact && pact.then) {\n\t\t\t\treturn pact.then(_fixup, function(e) {\n\t\t\t\t\tthrow _fixup(e);\n\t\t\t\t});\n\t\t\t}\n\t\t\t_fixup();\n\t\t}\n\t\treturn pact;\n\t}\n\t// No support for Symbol.iterator\n\tif (!(\"length\" in target)) {\n\t\tthrow new TypeError(\"Object is not iterable\");\n\t}\n\t// Handle live collections properly\n\tvar values = [];\n\tfor (var i = 0; i < target.length; i++) {\n\t\tvalues.push(target[i]);\n\t}\n\treturn _forTo(values, function(i) { return body(values[i]); }, check);\n}\n\nexport const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\"))) : \"@@asyncIterator\";\n\n// Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\nexport function _forAwaitOf(target, body, check) {\n\tif (typeof target[_asyncIteratorSymbol] === \"function\") {\n\t\tvar pact = new _Pact();\n\t\tvar iterator = target[_asyncIteratorSymbol]();\n\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\treturn pact;\n\t\tfunction _resumeAfterBody(result) {\n\t\t\tif (check && check()) {\n\t\t\t\treturn _settle(pact, 1, iterator.return ? iterator.return().then(function() { return result; }) : result);\n\t\t\t}\n\t\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\t}\n\t\tfunction _resumeAfterNext(step) {\n\t\t\tif (step.done) {\n\t\t\t\t_settle(pact, 1);\n\t\t\t} else {\n\t\t\t\tPromise.resolve(body(step.value)).then(_resumeAfterBody).then(void 0, _reject);\n\t\t\t}\n\t\t}\n\t\tfunction _reject(error) {\n\t\t\t_settle(pact, 2, iterator.return ? iterator.return().then(function() { return error; }) : error);\n\t\t}\n\t}\n\treturn Promise.resolve(_forOf(target, function(value) { return Promise.resolve(value).then(body); }, check));\n}\n\n// Asynchronously implement a generic for loop\nexport function _for(test, update, body) {\n\tvar stage;\n\tfor (;;) {\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t\tif (shouldContinue.then) {\n\t\t\tstage = 0;\n\t\t\tbreak;\n\t\t}\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.s;\n\t\t\t} else {\n\t\t\t\tstage = 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (update) {\n\t\t\tvar updateValue = update();\n\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\tstage = 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tvar pact = new _Pact();\n\tvar reject = _settle.bind(null, pact, 2);\n\t(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tdo {\n\t\t\tif (update) {\n\t\t\t\tupdateValue = update();\n\t\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\t\tupdateValue.then(_resumeAfterUpdate).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshouldContinue = test();\n\t\t\tif (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t}\n\t\t} while (!result || !result.then);\n\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterBody(result);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n\tfunction _resumeAfterUpdate() {\n\t\tif (shouldContinue = test()) {\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterTest(shouldContinue);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a do ... while loop\nexport function _do(body, test) {\n\tvar awaitBody;\n\tdo {\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t} else {\n\t\t\t\tawaitBody = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t} while (!shouldContinue.then);\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : shouldContinue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tfor (;;) {\n\t\t\tshouldContinue = test();\n\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t}\n\t\t\tif (!shouldContinue) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\tresult = result.v;\n\t\t\t\t} else {\n\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tdo {\n\t\t\t\tresult = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshouldContinue = test();\n\t\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t\t}\n\t\t\t\tif (!shouldContinue) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} while (!shouldContinue.then);\n\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a switch statement\nexport function _switch(discriminant, cases) {\n\tvar dispatchIndex = -1;\n\tvar awaitBody;\n\touter: {\n\t\tfor (var i = 0; i < cases.length; i++) {\n\t\t\tvar test = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvar testValue = test();\n\t\t\t\tif (testValue && testValue.then) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tif (testValue === discriminant) {\n\t\t\t\t\tdispatchIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Found the default case, set it as the pending dispatch case\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tif (dispatchIndex !== -1) {\n\t\t\tdo {\n\t\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\t\twhile (!body) {\n\t\t\t\t\tdispatchIndex++;\n\t\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t\t}\n\t\t\t\tvar result = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tawaitBody = true;\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\t\tdispatchIndex++;\n\t\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t\treturn result;\n\t\t}\n\t}\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterTest(value) {\n\t\tfor (;;) {\n\t\t\tif (value === discriminant) {\n\t\t\t\tdispatchIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (++i === cases.length) {\n\t\t\t\tif (dispatchIndex !== -1) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvalue = test();\n\t\t\t\tif (value && value.then) {\n\t\t\t\t\tvalue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tdo {\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tvar result = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tdispatchIndex++;\n\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterBody(result) {\n\t\tfor (;;) {\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tif (!fallthroughCheck || fallthroughCheck()) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdispatchIndex++;\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _call(body, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(body()) : body();\n\t}\n\ttry {\n\t\tvar result = Promise.resolve(body());\n\t\treturn then ? result.then(then) : result;\n\t} catch (e) {\n\t\treturn Promise.reject(e);\n\t}\n}\n\n// Asynchronously call a function and swallow the result\nexport function _callIgnored(body, direct) {\n\treturn _call(body, _empty, direct);\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _invoke(body, then) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(then);\n\t}\n\treturn then(result);\n}\n\n// Asynchronously call a function and swallow the result\nexport function _invokeIgnored(body) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(_empty);\n\t}\n}\n\n// Asynchronously call a function and send errors to recovery continuation\nexport function _catch(body, recover) {\n\ttry {\n\t\tvar result = body();\n\t} catch(e) {\n\t\treturn recover(e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(void 0, recover);\n\t}\n\treturn result;\n}\n\n// Asynchronously await a promise and pass the result to a finally continuation\nexport function _finallyRethrows(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer(true, e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n\t}\n\treturn finalizer(false, result);\n}\n\n// Asynchronously await a promise and invoke a finally continuation that always overrides the result\nexport function _finally(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer();\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer, finalizer);\n\t}\n\treturn finalizer();\n}\n\n// Rethrow or return a value from a finally continuation\nexport function _rethrow(thrown, value) {\n\tif (thrown)\n\t\tthrow value;\n\treturn value;\n}\n\n// Empty function to implement break and other control flow that ignores asynchronous results\nexport function _empty() {\n}\n\n// Sentinel value for early returns in generators \nexport const _earlyReturn = /*#__PURE__*/ {};\n\n// Asynchronously call a function and send errors to recovery continuation, skipping early returns\nexport function _catchInGenerator(body, recover) {\n\treturn _catch(body, function(e) {\n\t\tif (e === _earlyReturn) {\n\t\t\tthrow e;\n\t\t}\n\t\treturn recover(e);\n\t});\n}\n\n// Asynchronous generator class; accepts the entrypoint of the generator, to which it passes itself when the generator should start\nexport const _AsyncGenerator = /*#__PURE__*/(function() {\n\tfunction _AsyncGenerator(entry) {\n\t\tthis._entry = entry;\n\t\tthis._pact = null;\n\t\tthis._resolve = null;\n\t\tthis._return = null;\n\t\tthis._promise = null;\n\t}\n\n\tfunction _wrapReturnedValue(value) {\n\t\treturn { value: value, done: true };\n\t}\n\tfunction _wrapYieldedValue(value) {\n\t\treturn { value: value, done: false };\n\t}\n\n\t_AsyncGenerator.prototype._yield = function(value) {\n\t\t// Yield the value to the pending next call\n\t\tthis._resolve(value && value.then ? value.then(_wrapYieldedValue) : _wrapYieldedValue(value));\n\t\t// Return a pact for an upcoming next/return/throw call\n\t\treturn this._pact = new _Pact();\n\t};\n\t_AsyncGenerator.prototype.next = function(value) {\n\t\t// Advance the generator, starting it if it has yet to be started\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tconst _entry = _this._entry;\n\t\t\t\tif (_entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the next call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Start the generator\n\t\t\t\t_this._entry = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\tfunction returnValue(value) {\n\t\t\t\t\t_this._resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t_this._resolve = null;\n\t\t\t\t}\n\t\t\t\tvar result = _entry(_this);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tresult.then(returnValue, function(error) {\n\t\t\t\t\t\tif (error === _earlyReturn) {\n\t\t\t\t\t\t\treturnValue(_this._return);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst pact = new _Pact();\n\t\t\t\t\t\t\t_this._resolve(pact);\n\t\t\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t\t\t_this._resolve = null;\n\t\t\t\t\t\t\t_resolve(pact, 2, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturnValue(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Generator is started and a yield expression is pending, settle it\n\t\t\t\t_this._pact = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\t_settle(_pact, 1, value);\n\t\t\t}\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.return = function(value) {\n\t\t// Early return from the generator if started, otherwise abandons the generator\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the return call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return the specified value\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t}\n\t\t\t// Settle the yield expression with a rejected \"early return\" value\n\t\t\t_this._return = value;\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, _earlyReturn);\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.throw = function(error) {\n\t\t// Inject an exception into the pending yield expression\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve, reject) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the throw call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return a rejected Promise containing the error\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t\t// Settle the yield expression with the value as a rejection\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, error);\n\t\t});\n\t};\n\n\t_AsyncGenerator.prototype[_asyncIteratorSymbol] = function() {\n\t\treturn this;\n\t};\n\t\n\treturn _AsyncGenerator;\n})();\n","import Web3 from 'web3'\nimport NetworkInfo from '../models/NetworkInfo'\nimport networksData from '../data/networks.json'\nimport ProviderInfo, {\n EProvider,\n getProviderInfo,\n} from '../models/ProviderInfo'\nimport ConnectionStatus from '../models/Enums'\n\ndeclare global {\n interface Window {\n ethereum: any // FIXME: This should be properly typed as per metamask\n web3: Web3\n }\n}\n\nexport function getWeb3(\n provider: EProvider = EProvider.METAMASK,\n): Promise {\n return new Promise((resolve, reject) => {\n switch (provider) {\n // Injected Web3 wallet like MetaMask or Nifty\n case EProvider.NIFTY:\n case EProvider.METAMASK: {\n // New MetaMask\n if (window.ethereum) {\n const web3 = new Web3(window.ethereum)\n window.ethereum\n .enable()\n .then(() => resolve(web3))\n .catch(reject)\n } else if (window.web3) {\n // Older versions of MetaMask or other\n resolve(new Web3(window.web3.currentProvider))\n } else reject(new Error('No injected web3 found'))\n break\n }\n\n // Localhost\n case EProvider.LOCAL: {\n const localhostProvider = new Web3.providers.HttpProvider(\n \"'http://127.0.0.1:4444'\",\n )\n resolve(new Web3(localhostProvider))\n break\n }\n\n // Unknown & not implemented\n default: {\n reject(\n new Error(\n `Provider not implemented or unknown. Chosen provider ${provider}`,\n ),\n )\n break\n }\n }\n })\n}\n\nexport const getNetworkInfo = (\n networkId: number,\n chainId?: number,\n): NetworkInfo | undefined => networksData.find((n) => (chainId\n ? n.networkId === networkId && n.chainId === chainId\n : n.networkId === networkId)) as NetworkInfo\n\nexport const getNetworkInfoFromWeb3 = async (\n web3: Web3,\n): Promise => {\n // set networkId and chainId\n let networkId: number | undefined\n let chainId: number | undefined\n try {\n networkId = await web3.eth.net.getId()\n\n if (networkId) {\n chainId = await web3.eth.getChainId()\n }\n } catch (error) {}\n let networkInfo: NetworkInfo | undefined\n\n if (networkId) {\n try {\n networkInfo = getNetworkInfo(networkId, chainId)\n } catch (error) {}\n }\n return networkInfo\n}\n\nconst getWeb3Provider = (): any => {\n // New Metamask\n if (window.ethereum) return window.ethereum\n\n // Older versions of Metamask or other\n if (window.web3) return window.web3.currentProvider\n return undefined\n}\n\n/* eslint-disable complexity */\nexport const getAvailableProviders = (): ProviderInfo[] | undefined => {\n const result: ProviderInfo[] = []\n\n const currentProvider = getWeb3Provider()\n\n if (!currentProvider) return undefined\n\n if (currentProvider.isMetaMask) {\n // Nifty is also MetaMask\n result.push(\n currentProvider.isNiftyWallet\n ? getProviderInfo(EProvider.NIFTY)\n : getProviderInfo(EProvider.METAMASK),\n )\n }\n\n if (currentProvider.isTrust) result.push(getProviderInfo(EProvider.TRUST))\n\n if (currentProvider.isGoWallet) result.push(getProviderInfo(EProvider.GO_WALLET))\n\n if (currentProvider.isAlphaWallet) result.push(getProviderInfo(EProvider.ALPHA_WALLET))\n\n if (currentProvider.isStatus) result.push(getProviderInfo(EProvider.STATUS))\n\n if (currentProvider.isToshi) result.push(getProviderInfo(EProvider.COINBASE))\n\n // eslint-disable-next-line no-underscore-dangle\n if (typeof (window as any).__CIPHER__ !== 'undefined') result.push(getProviderInfo(EProvider.CIPHER))\n\n if (currentProvider.constructor.name === 'EthereumProvider') result.push(getProviderInfo(EProvider.MIST))\n\n if (currentProvider.constructor.name === 'Web3FrameProvider') result.push(getProviderInfo(EProvider.PARITY))\n\n if (currentProvider.host && currentProvider.host.indexOf('infura') !== -1) result.push(getProviderInfo(EProvider.INFURA))\n\n if (currentProvider.host && currentProvider.host.indexOf('localhost') !== -1) result.push(getProviderInfo(EProvider.LOCAL))\n\n return result\n}\n\nexport const getConnectionStatus = (\n web3?: Web3,\n requiredNetworkId?: number,\n currentNetworkId?: number,\n account?: string,\n): ConnectionStatus => {\n if (!web3) return ConnectionStatus.LoggedOut\n\n if (currentNetworkId !== requiredNetworkId) {\n return ConnectionStatus.WrongNetwork\n }\n\n if (account) {\n return ConnectionStatus.LoggedIn\n }\n return ConnectionStatus.WalletLocked\n}\n","import React, { FC, useState, useEffect } from 'react'\nimport Web3 from 'web3'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Popover from '@material-ui/core/Popover'\nimport Typography from '@material-ui/core/Typography'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport { shortenString } from '../../utils'\nimport { Button, NetworkIndicator } from '../atoms'\nimport { colors, fonts } from '../../theme'\nimport { AccountModal, WrongNetworkModal } from '../molecules'\nimport ConnectionStatus from '../../models/Enums'\nimport { getConnectionStatus } from '../../services/Web3Service'\nimport NetworkInfo from '../../models/NetworkInfo'\n\nexport interface AccountProps {\n requiredNetworkName: string\n setProvider?: (provider: EProvider) => Promise\n web3?: Web3\n networkInfo?: NetworkInfo\n account?: string\n availableProviders?: ProviderInfo[]\n requiredNetworkId?: number\n onCorrectNetworkMessage?: string\n onNetworkMismatchMessage?: string\n noNetworkMessage?: string\n modalInitiallyOpened?: boolean\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n accountText: {\n fontSize: fonts.size.tiny,\n textAlign: 'center',\n },\n button: {\n border: `1px solid ${colors.white}`,\n '&:hover': {\n border: `1px solid ${colors.transparent}`,\n },\n },\n networkIndicator: {\n marginRight: theme.spacing(1),\n },\n rightNetwork: {\n padding: theme.spacing(2),\n },\n}))\n\nconst Account: FC = (props) => {\n const {\n web3,\n networkInfo,\n account,\n setProvider,\n availableProviders,\n requiredNetworkId,\n onCorrectNetworkMessage,\n onNetworkMismatchMessage,\n noNetworkMessage,\n requiredNetworkName,\n modalInitiallyOpened = false,\n } = props\n const classes = useStyles()\n\n const [accountModalOpen, setAccountModalOpen] = useState(modalInitiallyOpened)\n const handleAccountModalClose = (): void => setAccountModalOpen(false)\n const handleAccountModalOpen = (): void => setAccountModalOpen(true)\n const [wrongNetModalOpen, setWrongNetModalOpen] = useState(false)\n const openWrongNetModal = (): void => setWrongNetModalOpen(true)\n const closeWrongNetModal = (): void => setWrongNetModalOpen(false)\n const connectionStatus: ConnectionStatus = getConnectionStatus(web3, requiredNetworkId, networkInfo?.networkId, account)\n\n // TODO: extract popover functionallity into new component\n const [anchorEl, setAnchorEl] = React.useState(null)\n\n const popoverOpen = Boolean(anchorEl)\n const id = popoverOpen ? 'right-net-popover' : undefined\n\n const handlePopoverClose = () => {\n setAnchorEl(null)\n }\n\n useEffect(() => {\n if (connectionStatus === ConnectionStatus.WrongNetwork) {\n openWrongNetModal()\n } else {\n closeWrongNetModal()\n handlePopoverClose()\n }\n }, [connectionStatus])\n\n const accountText = (): string => {\n if (connectionStatus === ConnectionStatus.LoggedOut) return 'Connect wallet'\n\n if (connectionStatus === ConnectionStatus.WrongNetwork) return 'Wrong Network'\n\n if (account) {\n // means connectionStatus === ConnectionStatus.LoggedIn\n return shortenString(account)\n }\n return 'Unlock your wallet'\n }\n\n const onAccountClicked = (event: React.MouseEvent): void | null => {\n if (connectionStatus === ConnectionStatus.WrongNetwork) return openWrongNetModal()\n\n if (connectionStatus === ConnectionStatus.LoggedOut) return handleAccountModalOpen()\n\n if (connectionStatus === ConnectionStatus.LoggedIn) return setAnchorEl(event.currentTarget)\n return null\n }\n\n return (\n \n \n {/* TODO: extract molecule */}\n \n \n {`You are successfully connected to ${networkInfo?.name}.`}\n \n \n \n \n \n )\n}\n\nexport default Account\n","import React, { FC } from 'react'\nimport {\n AppBar, Grid, ListItemIcon, Toolbar,\n} from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { NavLink } from 'react-router-dom'\nimport Typography from '@material-ui/core/Typography'\nimport { ActionHeaderItemProps, HeaderProps, NavItemProps } from './HeaderProps'\nimport { LogoNavbar } from '../../atoms'\nimport { colors, fonts, globalConstants } from '../../../theme'\nimport { removeEmptySpaces } from '../../../utils'\n\nconst useStyles = makeStyles((theme: Theme) => ({\n activeNavlink: {\n color: `${colors.white} !important`,\n fontWeight: fonts.weight.medium,\n },\n navLink: {\n alignItems: 'center',\n color: colors.white,\n display: 'flex',\n paddingLeft: theme.spacing(5),\n paddingRight: theme.spacing(5),\n textAlign: 'center',\n textDecoration: 'none',\n '&:hover': {\n color: colors.gray5,\n textDecoration: 'none',\n },\n },\n navLinkContainer: {\n display: 'flex',\n },\n root: {\n boxShadow: 'none',\n // this height needs to be equal to the marginTop of PageTemplate\n height: theme.spacing(globalConstants.headerHeight),\n },\n}))\n\nconst HeaderDesktop: FC = ({\n hreflogo, itemsStart, itemsEnd, login,\n}) => {\n const classes = useStyles()\n const Login = login\n\n return (\n \n \n \n \n \n \n \n \n \n {\n !!itemsStart?.length\n && itemsStart.map((navItem: NavItemProps) => (\n \n \n {navItem.title}\n \n \n ))\n }\n \n \n {\n !!itemsEnd?.length\n && itemsEnd.map(({ icon, ...rest }: ActionHeaderItemProps) => (\n \n {icon}\n \n ))\n }\n \n \n
\n \n
\n \n \n
\n
\n )\n}\n\nexport default HeaderDesktop\n","import React, { FC, useState } from 'react'\nimport {\n AppBar,\n Divider,\n Drawer, Toolbar,\n IconButton, List, ListItem,\n ListItemText, ListItemIcon, Grid,\n} from '@material-ui/core'\nimport { NavLink } from 'react-router-dom'\nimport MenuIcon from '@material-ui/icons/Menu'\nimport ChevronLeftIcon from '@material-ui/icons/ChevronLeft'\nimport { Theme, createStyles, makeStyles } from '@material-ui/core/styles'\nimport { ActionHeaderItemProps, HeaderProps, NavItemProps } from './HeaderProps'\nimport { colors, globalConstants } from '../../../theme'\nimport { LogoNavbar } from '../../atoms'\nimport { removeEmptySpaces } from '../../../utils'\n\nconst drawerWidth = 240\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n drawerHeader: {\n display: 'flex',\n alignItems: 'center',\n padding: theme.spacing(0, 1),\n // necessary for content to be below app bar\n ...theme.mixins.toolbar,\n justifyContent: 'flex-end',\n },\n drawerPaper: {\n width: drawerWidth,\n },\n mobileAppBar: {\n boxShadow: 'none',\n // this height needs to be equal to the marginTop of PageTemplate\n height: theme.spacing(globalConstants.headerHeight),\n transition: theme.transitions.create(['margin', 'width'], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n },\n mobileAppBarShift: {\n width: `calc(100% - ${drawerWidth}px)`,\n marginLeft: drawerWidth,\n transition: theme.transitions.create(['margin', 'width'], {\n easing: theme.transitions.easing.easeOut,\n duration: theme.transitions.duration.enteringScreen,\n }),\n },\n mobileNavLink: {\n alignItems: 'center',\n color: colors.gray4,\n display: 'flex',\n textDecoration: 'none',\n width: '100%',\n '&:hover': {\n color: colors.gray5,\n textDecoration: 'none',\n },\n },\n mobileNavLinkActive: {\n color: `${colors.primary} !important`,\n },\n}))\n\nconst HeaderMobile: FC = ({\n hreflogo, itemsStart, itemsEnd, login: Login,\n}) => {\n const classes = useStyles()\n const [open, setOpen] = useState(false)\n\n const toggleDrawer = (isOpen: boolean) => (\n event: React.KeyboardEvent | React.MouseEvent,\n ): void => {\n if (\n event.type === 'keydown'\n && ((event as React.KeyboardEvent).key === 'Tab'\n || (event as React.KeyboardEvent).key === 'Shift')\n ) {\n return\n }\n setOpen(isOpen)\n }\n\n return (\n \n \n \n {!open && (\n \n \n \n \n \n \n \n \n \n \n \n \n {\n !!itemsEnd?.length\n && itemsEnd.map(({ icon, ...rest }: ActionHeaderItemProps) => (\n \n {icon}\n \n ))\n }\n \n \n
\n \n
\n
\n \n )}\n
\n \n \n
\n \n \n \n
\n \n \n {\n !!itemsStart?.length\n && itemsStart.map((headerItem: NavItemProps) => (\n \n \n \n {headerItem.icon}\n \n \n \n \n ))\n }\n \n \n
\n\n )\n}\n\nexport default HeaderMobile\n","import React, { FC } from 'react'\nimport Hidden from '@material-ui/core/Hidden'\nimport { HeaderProps } from './HeaderProps'\nimport HeaderDesktop from './HeaderDesktop'\nimport HeaderMobile from './HeaderMobile'\n\nconst Header: FC = (props) => (\n \n \n \n \n \n \n \n \n)\n\nexport default Header\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../../theme'\nimport { headerTongueImg } from '../../../assets/images'\n\nexport interface HeaderTongueProps {\n description: string\n titleLine1: string\n titleLine2: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n textContainer: {\n alignItems: 'center',\n backgroundColor: colors.primary,\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n },\n textContent: {\n color: colors.white,\n display: 'flex',\n flexDirection: 'column',\n textAlign: 'center',\n [theme.breakpoints.down('sm')]: {\n maxWidth: '90%',\n },\n [theme.breakpoints.up('md')]: {\n maxWidth: '65%',\n },\n [theme.breakpoints.up('xl')]: {\n maxWidth: '55%',\n },\n },\n titleContent: {\n marginBottom: theme.spacing(1),\n fontSize: theme.spacing(5),\n fontWeight: fonts.weight.regular,\n },\n tongueImg: {\n width: '100%',\n },\n}))\n\nconst HeaderTongue: FC = (\n { description, titleLine1, titleLine2 },\n) => {\n const classes = useStyles()\n\n return (\n \n
\n
\n \n {titleLine1}\n
\n {' '}\n {titleLine2}\n \n {description}\n
\n
\n \n
\n )\n}\n\nexport default HeaderTongue\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport FAQSection, { FAQSectionProps } from '../molecules/FAQSection'\nimport { colors } from '../../theme'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FAQPageTemplateProps {\n className?: string\n mainTitle: string\n questionsAndAnswers: FAQSectionProps[]\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n marginTop: theme.spacing(3),\n },\n container: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n [theme.breakpoints.up('md')]: {\n maxWidth: '80%',\n },\n },\n grayBackground: {\n backgroundColor: colors.gray1,\n },\n mainTitle: {\n fontSize: theme.typography.pxToRem(50),\n margin: theme.spacing(2, 0),\n },\n questionsSection: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n marginTop: theme.spacing(2),\n },\n}))\n\nconst FAQPageTemplate: FC = ({ className = '', mainTitle, questionsAndAnswers }) => {\n const classes = useStyles()\n return (\n
\n
\n {mainTitle}\n
\n {\n questionsAndAnswers.map((qAndA: FAQSectionProps, i) => (\n \n ))\n }\n
\n
\n
\n )\n}\n\nexport default FAQPageTemplate\n","import React, { FC, HTMLAttributes } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { globalConstants } from '../../theme'\n\nexport type PageTemplateProps = HTMLAttributes;\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n // as the header has fixed position, we need to match its height\n marginTop: theme.spacing(globalConstants.headerHeight),\n width: '100%',\n },\n}))\n\nconst PageTemplate: FC = ({ children, className = '', ...props }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default PageTemplate\n","import React, {\n Component, createContext, ReactNode,\n} from 'react'\nimport Web3 from 'web3'\nimport {\n getWeb3, getNetworkInfoFromWeb3, getAvailableProviders,\n} from '../services/Web3Service'\nimport NetworkInfo from '../models/NetworkInfo'\nimport ProviderInfo, { EProvider } from '../models/ProviderInfo'\n\nexport interface Web3ProviderProps {\n state: {\n provider?: EProvider\n web3?: Web3\n account?: string\n networkInfo?: NetworkInfo\n requiredNetworkId?: number\n }\n actions: {\n setProvider?: (\n provider: EProvider,\n onStateChanged?: (account?: string) => void\n ) => Promise\n onConnectedNetworkChange?: () => void\n onConnectedAccountChange?: () => void\n }\n requiredNetworkId?: number\n requiredChainId?: number\n availableProviders?: ProviderInfo[]\n}\n\nexport const defaultWeb3State: Web3ProviderState = {\n provider: undefined,\n web3: undefined,\n account: undefined,\n networkInfo: undefined,\n}\n\nexport const Web3Store = createContext({\n state: defaultWeb3State,\n actions: {\n setProvider: (): Promise => Promise.resolve(),\n onConnectedNetworkChange: (): any => 0,\n onConnectedAccountChange: (): any => 0,\n },\n requiredNetworkId: undefined,\n requiredChainId: undefined,\n})\n\ninterface Web3ProviderState {\n provider?: EProvider\n web3?: Web3\n account?: string\n networkInfo?: NetworkInfo\n}\n\nconst getAccountFromEthAccounts = (accounts: string[] | string): string | undefined => {\n let account: string\n\n if (Array.isArray(accounts)) [account] = accounts\n else account = accounts\n return account\n}\n\n/**\n * The provider will not read the account when a requiredNetworkId was provided\n * and it does not match the networkId of current networkInfo, same applies to\n * chainId. Nothing happens if the requiredNetworkId was not specified\n * @param requiredNetworkId given on the props of the provider\n * @param requiredChainId given on the props of the provider\n * @param networkInfo obtained from the wallet\n */\nconst shouldReadAccount = (\n requiredNetworkId?: number,\n requiredChainId?: number,\n networkInfo?: NetworkInfo,\n): boolean => {\n // the consumer did not provide enough information to validate the network, so we do not check\n if (!requiredNetworkId) return true\n\n if (requiredNetworkId === networkInfo?.networkId) {\n // only when chainId is provided we compare it\n if (requiredChainId) return requiredChainId === networkInfo?.chainId\n return true\n }\n return false\n}\n\nclass Web3Provider extends Component {\n private readonly requiredNetworkId?: number\n\n private readonly requiredChainId?: number\n\n private availableProviders?: ProviderInfo[]\n\n constructor(props: Web3ProviderProps) {\n super(props)\n this.state = defaultWeb3State\n this.requiredNetworkId = props.requiredNetworkId\n this.requiredChainId = props.requiredChainId\n this.onConnectedNetworkChange = props.actions.onConnectedNetworkChange\n this.onConnectedAccountChange = props.actions.onConnectedAccountChange\n this.setProvider = this.setProvider.bind(this)\n this.initialize()\n }\n\n private readonly onConnectedNetworkChange?: () => void\n\n private readonly onConnectedAccountChange?: () => void\n\n public async setProvider(provider: EProvider,\n onStateChanged?: (account?: string) => void): Promise {\n const web3 = await getWeb3(provider)\n const accounts = await web3.eth.getAccounts()\n const networkInfo = await getNetworkInfoFromWeb3(web3)\n // only validate requiredNetworkId and requiredChainId when are provided\n const shouldSetAccount = shouldReadAccount(this.requiredNetworkId, this.requiredChainId, networkInfo)\n\n const account = shouldSetAccount\n ? getAccountFromEthAccounts(accounts)\n : undefined\n\n this.setState(\n {\n web3,\n provider,\n account,\n networkInfo,\n },\n () => (onStateChanged && onStateChanged(account)),\n )\n }\n\n private initialize(): void {\n if (!window.ethereum) {\n return\n }\n this.availableProviders = getAvailableProviders()\n\n window.ethereum.autoRefreshOnNetworkChange = false\n // handle on networkChange\n window.ethereum.on('networkChanged', async (_netId) => {\n const { networkInfo } = this.state\n\n if (!networkInfo) return // wallet is not connected\n const { provider } = this.state\n const web3 = await getWeb3(provider)\n const accounts = await web3.eth.getAccounts()\n const newNetworkInfo = await getNetworkInfoFromWeb3(web3)\n\n // we do not want to set the account if we know it is the wrong network\n const shouldSetAccount = shouldReadAccount(\n this.requiredNetworkId,\n this.requiredChainId,\n newNetworkInfo,\n )\n const account = shouldSetAccount\n ? getAccountFromEthAccounts(accounts)\n : undefined\n\n this.setState(\n {\n networkInfo: newNetworkInfo,\n account,\n },\n () => this.onConnectedNetworkChange && this.onConnectedNetworkChange(),\n )\n })\n // handle on accountsChanged\n window.ethereum.on('accountsChanged', (accounts: string | string[]) => {\n const { networkInfo } = this.state\n\n if (!networkInfo) return // wallet is not connected\n // we only care about this change if it is on the right network\n // or if we can not validate the required network\n const shouldSetAccount = shouldReadAccount(\n this.requiredNetworkId, this.requiredChainId, networkInfo,\n )\n\n if (shouldSetAccount) {\n const account = getAccountFromEthAccounts(accounts)\n\n if (account) {\n this.setState({\n account,\n },\n () => this.onConnectedAccountChange\n && this.onConnectedAccountChange())\n }\n }\n })\n }\n\n public render(): ReactNode {\n const {\n provider,\n web3,\n account,\n networkInfo,\n } = this.state\n const {\n setProvider,\n onConnectedNetworkChange,\n onConnectedAccountChange,\n availableProviders,\n } = this\n\n const { children } = this.props\n\n return (\n \n {children}\n \n )\n }\n}\n\nexport default { Consumer: Web3Store.Consumer, Provider: Web3Provider }\n"],"names":["useStyles","makeStyles","block","width","noShadow","boxShadow","rounded","borderRadius","Button","className","shadow","children","rest","classes","React","MUIButton","trim","colors","black","primary","darkBlue","gray1","gray2","gray3","gray4","gray5","gray6","transparent","white","fonts","family","size","tiny","small","normal","medium","subtitleSmall","subtitleBig","weight","light","regular","bold","globalConstants","headerHeight","theme","createMuiTheme","palette","main","secondary","typography","fontFamily","button","textTransform","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","body1","fontWeight","props","overrides","MuiButton","root","MuiFormControlLabel","color","MuiSlider","rail","height","opacity","track","thumb","marginLeft","MuiTextField","createStyles","unCheckedIcon","checkedIcon","Checkbox","checked","isChecked","setIsChecked","useState","handleChange","event","newChecked","onChange","MUICheckbox","CheckBoxSharp","icon","CheckBoxOutlineBlankSharp","require","EProvider","getProviderInfo","eProvider","METAMASK","name","iconImg","metaMaskIconImg","NIFTY","niftyIconImg","LEDGER","TREZOR","TRUST","GO_WALLET","ALPHA_WALLET","STATUS","COINBASE","MIST","PARITY","INFURA","LOCAL","Error","padding","margin","content","display","alignItems","maxHeight","spacing","justifyContent","imageWrapper","marginRight","LoginOption","onClick","providerInfo","providerContent","src","alt","handleOnClick","window","open","variant","Tooltip","arrow","title","Logo","logoFullWhite","LogoNavbar","fontSize","pxToRem","selected","borderBottom","StyledNavTab","Tab","component","NavLink","disableRipple","defaultonCorrectNetworkMessage","deaulftonNetworkMismatchMessage","defaultNoNetworkMessage","NetworkStatus","getNetworkStatus","currentNetworkId","requiredNetworkId","NO_NETWORK","CORRECT_NETWORK","NETWORK_MISSMATCH","NetworkIndicator","iconClassName","onCorrectNetworkMessage","onNetworkMismatchMessage","noNetworkMessage","networkStatus","iconPerNetworkStatus","Map","set","WarningIcon","style","yellow","ErrorIcon","CheckCircleOutlineOutlinedIcon","green","get","paper","backgroundColor","background","border","shadows","left","minWidth","position","top","transform","Modal","MUIModal","ModalHeader","ModalTitle","Typography","borderTop","paddingTop","ModalFooter","ModalBody","overlay","zIndex","spinner","animation","WithSpinner","WrappedComponent","Spinner","isLoading","logoBlueIcon","heading","accordionSummary","Accordion","expanded","id","isExpanded","setIsExpanded","MUIAccordion","AccordionSummary","expandIcon","ExpandMoreIcon","AccordionDetails","AccountModal","setProvider","availableProviders","onClose","onProviderSet","Fragment","length","map","key","tooltipTitle","CopyTextTooltip","displayElement","fullText","isCopied","setIsCopied","tooltipContent","FileCopyIcon","interactive","navigator","clipboard","writeText","then","headingExpanded","headingCollapsed","panelDetails","answerContainer","breakpoints","up","maxWidth","answerText","FAQSection","initiallyExpanded","question","answer","RemoveIcon","AddIcon","LabeledCheckbox","labelText","labelClassName","FormControlLabel","label","control","FilterCheckboxCard","items","item","i","shortenString","str","largerThan","charsShownCount","substr","removeEmptySpaces","replace","maxSupportedNumber","minSupportedNumber","validatedNumber","num","flexDirection","footerLink","textDecoration","footerTitle","textAlign","FooterColumn","links","link","isExternal","href","to","toString","target","ModalDialogue","footer","input","paddingLeft","inputContainer","paddingRight","units","unitsContainer","alignSelf","UnitsInput","maxValue","minValue","value","step","handleOnBlur","handleOnChange","Grid","container","xs","Input","onBlur","type","fullWidth","inputProps","min","max","inputsContainer","toContainer","RangeSliderWithInputs","values","start","startValue","end","endValue","unit","handleStartInputChange","newStartValue","Number","handleEndInputChange","newEndValue","handleSliderChange","_","newSliderValue","handleStartValueBlur","handleEndValueBlur","getCommonInputValues","Slider","ShortenTextTooltip","maxLength","indicator","StyledTabs","Tabs","a11yProps","index","minHeight","overflow","tabContainer","tab","outlineStyle","tabIndicator","tabSelected","SwitchTabs","label1","label2","controlledValue","newValue","MUITabs","TabIndicatorProps","MUITab","TooltipIconButton","iconButtonProps","IconButton","boxContainer","marginTop","loaderContainer","WrongNetworkModal","currentNetworkName","requiredNetworkName","gutterBottom","align","Box","sm","CircularProgress","copyright","copyrightContent","footerContainer","paddingBottom","footerContent","linksColumn","marginBottom","logoColumn","tongue","borderTopLeftRadius","borderTopRightRadius","Footer","copyrightText","linksColumns","direction","md","lg","logoBlackAndBlue","linkColumn","ConnectionStatus","getWeb3","provider","Promise","resolve","reject","ethereum","web3","Web3","enable","catch","currentProvider","localhostProvider","providers","HttpProvider","getNetworkInfo","networkId","chainId","networksData","find","n","getNetworkInfoFromWeb3","networkInfo","error","eth","net","getId","getChainId","getWeb3Provider","undefined","getAvailableProviders","result","isMetaMask","push","isNiftyWallet","isTrust","isGoWallet","isAlphaWallet","isStatus","isToshi","__CIPHER__","CIPHER","constructor","host","indexOf","getConnectionStatus","account","LoggedOut","WrongNetwork","LoggedIn","WalletLocked","accountText","networkIndicator","rightNetwork","Account","modalInitiallyOpened","accountModalOpen","setAccountModalOpen","handleAccountModalClose","handleAccountModalOpen","wrongNetModalOpen","setWrongNetModalOpen","openWrongNetModal","closeWrongNetModal","connectionStatus","anchorEl","setAnchorEl","popoverOpen","Boolean","handlePopoverClose","useEffect","onAccountClicked","currentTarget","Popover","anchorOrigin","vertical","horizontal","transformOrigin","activeNavlink","navLink","navLinkContainer","HeaderDesktop","hreflogo","itemsStart","itemsEnd","login","Login","AppBar","Toolbar","justify","navItem","activeClassName","alignContent","ListItemIcon","drawerWidth","drawerHeader","mixins","toolbar","drawerPaper","mobileAppBar","transition","transitions","create","easing","sharp","duration","leavingScreen","mobileAppBarShift","easeOut","enteringScreen","mobileNavLink","mobileNavLinkActive","HeaderMobile","setOpen","toggleDrawer","isOpen","role","onKeyDown","MenuIcon","Drawer","anchor","ChevronLeftIcon","Divider","List","headerItem","ListItem","ListItemText","Header","Hidden","smDown","mdUp","textContainer","textContent","down","titleContent","tongueImg","HeaderTongue","description","titleLine1","titleLine2","headerTongueImg","grayBackground","mainTitle","questionsSection","FAQPageTemplate","questionsAndAnswers","qAndA","PageTemplate","defaultWeb3State","Web3Store","createContext","state","actions","onConnectedNetworkChange","onConnectedAccountChange","requiredChainId","getAccountFromEthAccounts","accounts","Array","isArray","shouldReadAccount","Web3Provider","Component","bind","initialize","onStateChanged","getAccounts","shouldSetAccount","setState","autoRefreshOnNetworkChange","on","_netId","newNetworkInfo","render","Provider","Consumer"],"mappings":"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C,OAAO,MAAM,CAAC;AACf,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"} \ No newline at end of file diff --git a/dist/index.modern.js b/dist/index.modern.js index bb25aca6..b899304f 100644 --- a/dist/index.modern.js +++ b/dist/index.modern.js @@ -43,7 +43,7 @@ const useStyles = makeStyles(() => ({ })); const Button = ({ - className = '', + className: _className = '', block, shadow, rounded, @@ -54,7 +54,7 @@ const Button = ({ return React__default.createElement(Button$1, Object.assign({ className: `${rounded ? classes.rounded : ''} ${shadow ? '' : classes.noShadow} - ${block ? classes.block : ''} ${className}`.trim() + ${block ? classes.block : ''} ${_className}`.trim() }, rest), children); }; @@ -221,11 +221,11 @@ var rifSto = require("./rifSto~fMRetflo.png"); var storage = require("./storage~fCGkZtHN.svg"); -var logoBlackAndBlue = require("./logoBlackAndBlue~bjZFbjOq.svg"); +var logoBlackAndBlue = require("./logoBlackAndBlue~YbWCBYrQ.svg"); var logoBlueIcon = require("./logoBlueIcon~qRLrrgXR.svg"); -var logoFullWhite = require("./logoFullWhite~lLumzPXG.svg"); +var logoFullWhite = require("./logoFullWhite~geFkQihC.svg"); var rskLogo = require("./rskLogo~bdMEZSPk.svg"); @@ -357,7 +357,7 @@ const useStyles$2 = makeStyles$1(theme => ({ })); const LoginOption = ({ - className = '', + className: _className = '', onClick, providerInfo, ...rest @@ -380,7 +380,7 @@ const LoginOption = ({ }; return React__default.createElement(Button, Object.assign({ - className: `${classes.root} ${className}`, + className: `${classes.root} ${_className}`, block: true, rounded: true, variant: "outlined", @@ -399,21 +399,21 @@ const LoginOption = ({ }; const Logo = ({ - alt = 'RIF OS logo', + alt: _alt = 'RIF OS logo', ...rest }) => React__default.createElement("img", Object.assign({ src: logoFullWhite, - alt: alt + alt: _alt }, rest)); const LogoNavbar = ({ - alt = 'navbar logo', - height = '44px', + alt: _alt = 'navbar logo', + height: _height = '44px', ...rest }) => React__default.createElement("img", Object.assign({ src: logoFullWhite, - alt: alt, - height: height + alt: _alt, + height: _height }, rest)); const useStyles$3 = makeStyles(theme => ({ @@ -460,7 +460,7 @@ const getNetworkStatus = (currentNetworkId, requiredNetworkId) => { }; const NetworkIndicator = ({ - iconClassName = '', + iconClassName: _iconClassName = '', currentNetworkId, requiredNetworkId, onCorrectNetworkMessage, @@ -472,7 +472,7 @@ const NetworkIndicator = ({ iconPerNetworkStatus.set(NetworkStatus.NO_NETWORK, React__default.createElement(Tooltip$1, { title: noNetworkMessage || defaultNoNetworkMessage }, React__default.createElement(WarningIcon, { - className: iconClassName, + className: _iconClassName, style: { color: yellow[800] } @@ -480,13 +480,13 @@ const NetworkIndicator = ({ iconPerNetworkStatus.set(NetworkStatus.NETWORK_MISSMATCH, React__default.createElement(Tooltip$1, { title: onNetworkMismatchMessage || deaulftonNetworkMismatchMessage }, React__default.createElement(ErrorIcon, { - className: iconClassName, + className: _iconClassName, color: "error" }))); iconPerNetworkStatus.set(NetworkStatus.CORRECT_NETWORK, React__default.createElement(Tooltip$1, { title: onCorrectNetworkMessage || defaultonCorrectNetworkMessage }, React__default.createElement(CheckCircleOutlineOutlinedIcon, { - className: iconClassName, + className: _iconClassName, style: { color: green[300] } @@ -530,11 +530,11 @@ const useStyles$5 = makeStyles(() => ({ const ModalHeader = ({ children, - className = '' + className: _className = '' }) => { const classes = useStyles$5(); return React__default.createElement("div", { - className: `${classes.root} ${className}`.trim() + className: `${classes.root} ${_className}`.trim() }, children); }; @@ -557,11 +557,11 @@ const useStyles$6 = makeStyles(theme => ({ const ModalFooter = ({ children, - className = '' + className: _className = '' }) => { const classes = useStyles$6(); return React__default.createElement("div", { - className: `${classes.root} ${className}`.trim() + className: `${classes.root} ${_className}`.trim() }, children); }; @@ -574,11 +574,11 @@ const useStyles$7 = makeStyles(theme => ({ const ModalBody = ({ children, - className = '' + className: _className = '' }) => { const classes = useStyles$7(); return React__default.createElement("div", { - className: `${classes.root} ${className}`.trim() + className: `${classes.root} ${_className}`.trim() }, children); }; @@ -690,16 +690,8 @@ const AccountModal = ({ }, React__default.createElement(React__default.Fragment, null, React__default.createElement(ModalHeader, null, React__default.createElement(ModalTitle, null, "Connect a wallet to get started")), React__default.createElement(ModalBody, null, availableProviders && availableProviders.length && availableProviders.map(providerInfo => React__default.createElement(LoginOption, { providerInfo: providerInfo, key: providerInfo.eProvider, - onClick: function () { - try { - const _temp = function () { - if (setProvider) return Promise.resolve(setProvider(providerInfo.eProvider, onProviderSet)).then(function () {}); - }(); - - return Promise.resolve(_temp && _temp.then ? _temp.then(function () {}) : void 0); - } catch (e) { - return Promise.reject(e); - } + onClick: async () => { + if (setProvider) await setProvider(providerInfo.eProvider, onProviderSet); } })), !availableProviders && React__default.createElement(LoginOption, null)), React__default.createElement(ModalFooter, null, React__default.createElement(Button, { variant: "outlined", @@ -776,7 +768,7 @@ const useStyles$b = makeStyles(theme => ({ })); const FAQSection = ({ - className = '', + className: _className = '', initiallyExpanded, question, answer @@ -787,7 +779,7 @@ const FAQSection = ({ const onChange = () => setIsExpanded(!isExpanded); return React__default.createElement(Accordion$2, { - className: `${classes.root} ${className}`.trim(), + className: `${classes.root} ${_className}`.trim(), expanded: isExpanded, onChange: onChange }, React__default.createElement(AccordionSummary, { @@ -812,49 +804,37 @@ const useStyles$c = makeStyles(() => ({ const LabeledCheckbox = ({ labelText, - labelClassName = '', + labelClassName: _labelClassName = '', ...rest }) => { const classes = useStyles$c(); return React__default.createElement(FormControlLabel, { - className: `${classes.root} ${labelClassName.trim()}`, + className: `${classes.root} ${_labelClassName.trim()}`, label: labelText, control: React__default.createElement(Checkbox, Object.assign({}, rest)) }); }; const FilterCheckboxCard = ({ - className = '', + className: _className = '', onClick, items }) => React__default.createElement("div", { - className: className + className: _className }, items.map((item, i) => React__default.createElement(LabeledCheckbox, Object.assign({ onClick: onClick, - key: `labeledCheckbox-${item.id}` || `labeledCheckbox-${i}-${className}`.trim(), + key: `labeledCheckbox-${item.id}` || `labeledCheckbox-${i}-${_className}`.trim(), labelClassName: item.labelClassName }, item)))); -var shortenString = function shortenString(str, largerThan, charsShownCount) { - if (largerThan === void 0) { - largerThan = 16; - } - - if (charsShownCount === void 0) { - charsShownCount = 6; - } +const shortenString = (str, largerThan = 16, charsShownCount = 6) => str.length > largerThan ? `${str.substr(0, charsShownCount)}...${str.substr(str.length - 4)}` : str; - return str.length > largerThan ? str.substr(0, charsShownCount) + "..." + str.substr(str.length - 4) : str; -}; +const removeEmptySpaces = str => str.replace(/\s/g, ''); -var removeEmptySpaces = function removeEmptySpaces(str) { - return str.replace(/\s/g, ''); -}; +const maxSupportedNumber = 99999999999999; +const minSupportedNumber = 0.000001; -var maxSupportedNumber = 99999999999999; -var minSupportedNumber = 0.000001; - -var validatedNumber = function validatedNumber(num) { +const validatedNumber = num => { if (num > 0) { if (num > maxSupportedNumber) return maxSupportedNumber; if (num < minSupportedNumber) return minSupportedNumber; @@ -891,11 +871,11 @@ const useStyles$d = makeStyles(() => ({ const FooterColumn = ({ title, links, - className = '' + className: _className = '' }) => { const classes = useStyles$d(); return React__default.createElement("div", { - className: `${classes.root} ${className}`.trim() + className: `${classes.root} ${_className}`.trim() }, React__default.createElement(Typography, { className: classes.footerTitle, variant: "subtitle1", @@ -966,7 +946,7 @@ const UnitsInput = ({ minValue, units, value, - step = 1, + step: _step = 1, handleOnBlur, handleOnChange, ...rest @@ -991,7 +971,7 @@ const UnitsInput = ({ type: "number", fullWidth: true, inputProps: { - step, + step: _step, min: minValue, max: maxValue, 'aria-labelledby': 'input-slider' @@ -1122,14 +1102,14 @@ const RangeSliderWithInputs = ({ const ShortenTextTooltip = ({ value, - maxLength = 20, + maxLength: _maxLength = 20, charsShownCount -}) => React__default.createElement(React__default.Fragment, null, value.length > maxLength && React__default.createElement(CopyTextTooltip, { +}) => React__default.createElement(React__default.Fragment, null, value.length > _maxLength && React__default.createElement(CopyTextTooltip, { displayElement: React__default.createElement(Typography, { variant: "body2" - }, shortenString(value, maxLength, charsShownCount || maxLength - 5)), + }, shortenString(value, _maxLength, charsShownCount || _maxLength - 5)), fullText: value -}), value.length <= maxLength && value); +}), value.length <= _maxLength && value); const useStyles$g = makeStyles({ indicator: { @@ -1261,7 +1241,7 @@ const useStyles$i = makeStyles(theme => ({ const WrongNetworkModal = ({ open, - currentNetworkName = 'Private network', + currentNetworkName: _currentNetworkName = 'Private network', requiredNetworkName, onClose }) => { @@ -1278,7 +1258,7 @@ const WrongNetworkModal = ({ }, "This dApp only works on the", ' ', requiredNetworkName, ". You are currently on", ' ', React__default.createElement(Box, { display: "inline", fontWeight: "fontWeightMedium" - }, currentNetworkName), "."), React__default.createElement(Grid, { + }, _currentNetworkName), "."), React__default.createElement(Grid, { container: true, className: classes.boxContainer, alignItems: "center" @@ -1346,14 +1326,14 @@ const useStyles$j = makeStyles(theme => ({ })); const Footer = ({ - className = '', + className: _className = '', copyrightText, linksColumns, ...rest }) => { const classes = useStyles$j(); return React__default.createElement("footer", Object.assign({ - className: `${classes.root} ${className}`.trim() + className: `${classes.root} ${_className}`.trim() }, rest), React__default.createElement("div", { className: classes.tongue }), React__default.createElement("div", { @@ -1400,25 +1380,6 @@ var ConnectionStatus; var ConnectionStatus$1 = ConnectionStatus; -// A type of promise-like that resolves synchronously and supports only one observer - -const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.iterator || (Symbol.iterator = Symbol("Symbol.iterator"))) : "@@iterator"; - -const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol("Symbol.asyncIterator"))) : "@@asyncIterator"; - -// Asynchronously call a function and send errors to recovery continuation -function _catch(body, recover) { - try { - var result = body(); - } catch(e) { - return recover(e); - } - if (result && result.then) { - return result.then(void 0, recover); - } - return result; -} - var networksData = [ { name: "Ethereum Mainnet", @@ -2637,48 +2598,39 @@ function getWeb3(provider = EProvider.METAMASK) { }); } const getNetworkInfo = (networkId, chainId) => networksData.find(n => chainId ? n.networkId === networkId && n.chainId === chainId : n.networkId === networkId); -const getNetworkInfoFromWeb3 = function (web3) { - try { - function _temp3() { - let networkInfo; +const getNetworkInfoFromWeb3 = async web3 => { + let networkId; + let chainId; - if (networkId) { - try { - networkInfo = getNetworkInfo(networkId, chainId); - } catch (error) {} - } + try { + networkId = await web3.eth.net.getId(); - return networkInfo; + if (networkId) { + chainId = await web3.eth.getChainId(); } + } catch (error) {} - let networkId; - let chainId; + let networkInfo; - const _temp2 = _catch(function () { - return Promise.resolve(web3.eth.net.getId()).then(function (_web3$eth$net$getId) { - networkId = _web3$eth$net$getId; - - const _temp = function () { - if (networkId) { - return Promise.resolve(web3.eth.getChainId()).then(function (_web3$eth$getChainId) { - chainId = _web3$eth$getChainId; - }); - } - }(); + if (networkId) { + try { + networkInfo = getNetworkInfo(networkId, chainId); + } catch (error) {} + } - if (_temp && _temp.then) return _temp.then(function () {}); - }); - }, function () {}); + return networkInfo; +}; - return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(_temp3) : _temp3(_temp2)); - } catch (e) { - return Promise.reject(e); - } +const getWeb3Provider = () => { + if (window.ethereum) return window.ethereum; + if (window.web3) return window.web3.currentProvider; + return undefined; }; + const getAvailableProviders = () => { const result = []; - if (!window.web3) return undefined; - const currentProvider = window.web3.currentProvider; + const currentProvider = getWeb3Provider(); + if (!currentProvider) return undefined; if (currentProvider.isMetaMask) { result.push(currentProvider.isNiftyWallet ? getProviderInfo(EProvider.NIFTY) : getProviderInfo(EProvider.METAMASK)); @@ -2887,7 +2839,7 @@ const HeaderDesktop = ({ xs: 6, container: true, justify: "flex-start" - }, !!itemsStart.length && itemsStart.map(navItem => React__default.createElement(Typography, { + }, !!(itemsStart === null || itemsStart === void 0 ? void 0 : itemsStart.length) && itemsStart.map(navItem => React__default.createElement(Typography, { className: classes.navLinkContainer, key: `hi-${removeEmptySpaces(navItem.title)}` }, React__default.createElement(NavLink, Object.assign({ @@ -2895,7 +2847,7 @@ const HeaderDesktop = ({ activeClassName: classes.activeNavlink }, navItem), navItem.title)))), React__default.createElement(Grid$1, { item: true, - xs: 4, + xs: 3, container: true, justify: "flex-end", alignContent: "center" @@ -2907,9 +2859,10 @@ const HeaderDesktop = ({ }, rest), icon))), React__default.createElement(Grid$1, { item: true, container: true, - xs: 1, + xs: 2, + justify: "flex-end", alignContent: "center" - }, React__default.createElement(Login, null))))); + }, React__default.createElement("div", null, React__default.createElement(Login, null)))))); }; const drawerWidth = 240; @@ -2990,7 +2943,7 @@ const HeaderMobile = ({ onClick: toggleDrawer(true) }, React__default.createElement(MenuIcon, null))), React__default.createElement(Grid$1, { item: true, - xs: 6 + xs: 3 }, React__default.createElement(NavLink, { to: hreflogo }, React__default.createElement(LogoNavbar, null))), React__default.createElement(Grid$1, { @@ -3006,8 +2959,11 @@ const HeaderMobile = ({ key: icon.key }, rest), icon))), React__default.createElement(Grid$1, { item: true, - xs: 1 - }, React__default.createElement(Login, null))))), React__default.createElement(Drawer, { + xs: 4, + container: true, + justify: "flex-end", + alignContent: "center" + }, React__default.createElement("div", null, React__default.createElement(Login, null)))))), React__default.createElement(Drawer, { anchor: "left", open: open, onClose: toggleDrawer(false), @@ -3019,7 +2975,7 @@ const HeaderMobile = ({ className: classes.drawerHeader }, React__default.createElement(IconButton$1, { onClick: toggleDrawer(false) - }, React__default.createElement(ChevronLeftIcon, null))), React__default.createElement(Divider, null), React__default.createElement(List, null, !!itemsStart.length && itemsStart.map(headerItem => React__default.createElement(ListItem, { + }, React__default.createElement(ChevronLeftIcon, null))), React__default.createElement(Divider, null), React__default.createElement(List, null, !!(itemsStart === null || itemsStart === void 0 ? void 0 : itemsStart.length) && itemsStart.map(headerItem => React__default.createElement(ListItem, { button: true, key: `him-${removeEmptySpaces(headerItem.title)}` }, React__default.createElement(NavLink, { @@ -3123,13 +3079,13 @@ const useStyles$o = makeStyles(theme => ({ })); const FAQPageTemplate = ({ - className = '', + className: _className = '', mainTitle, questionsAndAnswers }) => { const classes = useStyles$o(); return React__default.createElement("div", { - className: `${classes.root} ${className}`.trim() + className: `${classes.root} ${_className}`.trim() }, React__default.createElement("div", { className: classes.container }, React__default.createElement(Typography, { @@ -3153,12 +3109,12 @@ const useStyles$p = makeStyles(theme => ({ const PageTemplate = ({ children, - className = '', + className: _className = '', ...props }) => { const classes = useStyles$p(); return React__default.createElement("div", Object.assign({ - className: `${classes.root} ${className}`.trim() + className: `${classes.root} ${_className}`.trim() }, props), children); }; @@ -3208,32 +3164,22 @@ class Web3Provider extends Component { this.initialize(); } - setProvider(provider, onStateChanged) { - try { - const _this = this; - - return Promise.resolve(getWeb3(provider)).then(function (web3) { - return Promise.resolve(web3.eth.getAccounts()).then(function (accounts) { - return Promise.resolve(getNetworkInfoFromWeb3(web3)).then(function (networkInfo) { - const shouldSetAccount = shouldReadAccount(_this.requiredNetworkId, _this.requiredChainId, networkInfo); - const account = shouldSetAccount ? getAccountFromEthAccounts(accounts) : undefined; - - _this.setState({ - web3, - provider, - account, - networkInfo - }, () => onStateChanged && onStateChanged(account)); - }); - }); - }); - } catch (e) { - return Promise.reject(e); - } + async setProvider(provider, onStateChanged) { + const web3 = await getWeb3(provider); + const accounts = await web3.eth.getAccounts(); + const networkInfo = await getNetworkInfoFromWeb3(web3); + const shouldSetAccount = shouldReadAccount(this.requiredNetworkId, this.requiredChainId, networkInfo); + const account = shouldSetAccount ? getAccountFromEthAccounts(accounts) : undefined; + this.setState({ + web3, + provider, + account, + networkInfo + }, () => onStateChanged && onStateChanged(account)); } initialize() { - const _this2 = this; + var _this = this; if (!window.ethereum) { return; @@ -3241,31 +3187,24 @@ class Web3Provider extends Component { this.availableProviders = getAvailableProviders(); window.ethereum.autoRefreshOnNetworkChange = false; - window.ethereum.on('networkChanged', function (_netId) { - try { - const { - networkInfo - } = _this2.state; - if (!networkInfo) return Promise.resolve(); - const { - provider - } = _this2.state; - return Promise.resolve(getWeb3(provider)).then(function (web3) { - return Promise.resolve(web3.eth.getAccounts()).then(function (accounts) { - return Promise.resolve(getNetworkInfoFromWeb3(web3)).then(function (newNetworkInfo) { - const shouldSetAccount = shouldReadAccount(_this2.requiredNetworkId, _this2.requiredChainId, newNetworkInfo); - const account = shouldSetAccount ? getAccountFromEthAccounts(accounts) : undefined; - - _this2.setState({ - networkInfo: newNetworkInfo, - account - }, () => _this2.onConnectedNetworkChange && _this2.onConnectedNetworkChange()); - }); - }); - }); - } catch (e) { - return Promise.reject(e); - } + window.ethereum.on('networkChanged', async function (_netId) { + const { + networkInfo + } = _this.state; + if (!networkInfo) return; + const { + provider + } = _this.state; + const web3 = await getWeb3(provider); + const accounts = await web3.eth.getAccounts(); + const newNetworkInfo = await getNetworkInfoFromWeb3(web3); + const shouldSetAccount = shouldReadAccount(_this.requiredNetworkId, _this.requiredChainId, newNetworkInfo); + const account = shouldSetAccount ? getAccountFromEthAccounts(accounts) : undefined; + + _this.setState({ + networkInfo: newNetworkInfo, + account + }, () => _this.onConnectedNetworkChange && _this.onConnectedNetworkChange()); }); window.ethereum.on('accountsChanged', accounts => { const { diff --git a/dist/index.modern.js.map b/dist/index.modern.js.map index c755684c..75211025 100644 --- a/dist/index.modern.js.map +++ b/dist/index.modern.js.map @@ -1 +1 @@ -{"version":3,"file":"index.modern.js","sources":["../src/components/atoms/Button.tsx","../src/theme/theme.ts","../src/components/atoms/Checkbox.tsx","../src/assets/images/icons/nifty.png","../src/assets/images/icons/rifCom.png","../src/assets/images/icons/rifDir.png","../src/assets/images/icons/rifGat.png","../src/assets/images/icons/rifMar.png","../src/assets/images/icons/rifPay.png","../src/assets/images/icons/rifSto.png","../src/models/ProviderInfo.ts","../src/components/atoms/LoginOption.tsx","../src/components/atoms/Logo.tsx","../src/components/atoms/LogoNavbar.tsx","../src/components/atoms/StyledNavTab.tsx","../src/components/atoms/NetworkIndicator.tsx","../src/components/atoms/modal/Modal.tsx","../src/components/atoms/modal/ModalHeader.tsx","../src/components/atoms/modal/ModalTitle.tsx","../src/components/atoms/modal/ModalFooter.tsx","../src/components/atoms/modal/ModalBody.tsx","../src/components/hoc/WithSpinner.tsx","../src/components/molecules/Accordion.tsx","../src/components/molecules/AccountModal.tsx","../src/components/molecules/CopyTextTooltip.tsx","../src/components/molecules/FAQSection.tsx","../src/components/molecules/LabeledCheckbox.tsx","../src/components/molecules/FilterCheckboxCard.tsx","../src/utils.ts","../src/components/molecules/FooterColumn.tsx","../src/components/molecules/ModalDialogue.tsx","../src/components/molecules/UnitsInput.tsx","../src/components/molecules/RangeSliderWithInputs.tsx","../src/components/molecules/ShortenTextTooltip.tsx","../src/components/molecules/StyledTabs.tsx","../src/components/molecules/SwitchTabs.tsx","../src/components/molecules/TooltipIconButton.tsx","../src/components/molecules/WrongNetworkModal.tsx","../src/components/organisms/Footer.tsx","../src/models/Enums.ts","../node_modules/babel-plugin-transform-async-to-promises/helpers.js","../src/services/Web3Service.ts","../src/components/organisms/Account.tsx","../src/components/organisms/Header/HeaderDesktop.tsx","../src/components/organisms/Header/HeaderMobile.tsx","../src/components/organisms/Header/Header.tsx","../src/components/organisms/Header/HeaderTongue.tsx","../src/components/templates/FAQPageTemplate.tsx","../src/components/templates/PageTemplate.tsx","../src/providers/Web3Provider.tsx"],"sourcesContent":["import React, { FC } from 'react'\nimport { Button as MUIButton, ButtonProps as MUIButtonProps } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\n\nexport interface ButtonProps extends MUIButtonProps {\n block?: boolean\n shadow?: boolean\n rounded?: boolean\n}\n\nconst useStyles = makeStyles(() => ({\n block: {\n width: '100%',\n },\n noShadow: {\n boxShadow: 'none',\n },\n rounded: {\n borderRadius: 50,\n },\n}))\n\nconst Button: FC = ({\n className = '', block, shadow, rounded, children, ...rest\n}) => {\n const classes = useStyles()\n\n return (\n \n {children}\n \n )\n}\n\nexport default Button\n","import { createMuiTheme } from '@material-ui/core/styles'\nimport '../assets/css/fonts/rubik.css'\n\nexport const colors = {\n black: '#000000',\n primary: '#008FF7',\n darkBlue: '#197DC6',\n gray1: '#F8F7F7',\n gray2: '#E5E5E5',\n gray3: '#C4C4C4',\n gray4: '#919191',\n gray5: '#4D4C4C',\n gray6: '#15171B',\n transparent: '#FFFFFF00',\n white: '#FFFFFF',\n}\n\nexport const fonts = {\n family: 'Rubik',\n size: {\n tiny: 10,\n small: 12,\n normal: 14,\n medium: 16,\n subtitleSmall: 18,\n subtitleBig: 22,\n },\n weight: {\n light: 300,\n regular: 400,\n medium: 500,\n bold: 700,\n },\n}\n\nexport const globalConstants = {\n headerHeight: 8,\n}\n\nconst theme = createMuiTheme({\n palette: {\n primary: {\n main: colors.primary,\n },\n secondary: {\n main: colors.gray4,\n },\n },\n typography: {\n fontFamily: fonts.family,\n button: {\n textTransform: 'none',\n },\n fontWeightLight: fonts.weight.light,\n fontWeightRegular: fonts.weight.regular,\n fontWeightMedium: fonts.weight.medium,\n fontWeightBold: fonts.weight.bold,\n body1: {\n fontWeight: fonts.weight.light,\n },\n },\n props: {},\n overrides: {\n MuiButton: {\n root: {\n fontWeight: fonts.weight.light,\n },\n },\n MuiFormControlLabel: {\n root: {\n color: colors.gray3,\n },\n },\n MuiSlider: {\n rail: {\n color: colors.gray3,\n height: 4,\n opacity: 1,\n },\n root: {\n width: '100%',\n color: colors.primary,\n height: 4,\n },\n track: {\n height: 4,\n },\n thumb: {\n marginLeft: -4,\n height: 14,\n width: 14,\n },\n },\n MuiTextField: {\n root: {\n color: colors.gray3,\n '&:hover': {\n color: colors.gray2,\n },\n },\n },\n },\n})\n\nexport default theme\n","import React, { FC, useState } from 'react'\nimport {\n Checkbox as MUICheckbox,\n CheckboxProps as MUICheckboxProps,\n makeStyles,\n createStyles,\n} from '@material-ui/core'\nimport { CheckBoxOutlineBlankSharp, CheckBoxSharp } from '@material-ui/icons'\nimport { colors } from '../../theme'\n\nexport type CheckboxProps = MUICheckboxProps;\n\nconst useStyles = makeStyles(() => createStyles({\n unCheckedIcon: {\n color: colors.gray4,\n },\n checkedIcon: {\n color: colors.primary,\n },\n}))\n\nconst Checkbox: FC = (props) => {\n const classes = useStyles()\n const { checked } = props\n const [isChecked, setIsChecked] = useState(!!checked)\n\n const handleChange = (event: React.ChangeEvent,\n newChecked: boolean): void => {\n setIsChecked(newChecked)\n const { onChange } = props\n\n if (onChange) onChange(event, newChecked)\n }\n\n return (\n \n }\n icon={\n \n }\n {...props}\n checked={isChecked}\n onChange={handleChange}\n />\n )\n}\n\nexport default Checkbox\n","/* loaded by smart-asset */\nexport default require(\"./nifty~RMIWdZeg.png\")","/* loaded by smart-asset */\nexport default require(\"./rifCom~udwpaCym.png\")","/* loaded by smart-asset */\nexport default require(\"./rifDir~bottaDNJ.png\")","/* loaded by smart-asset */\nexport default require(\"./rifGat~balFpEzC.png\")","/* loaded by smart-asset */\nexport default require(\"./rifMar~IDqKMWpK.png\")","/* loaded by smart-asset */\nexport default require(\"./rifPay~bdtOAceT.png\")","/* loaded by smart-asset */\nexport default require(\"./rifSto~fMRetflo.png\")","import { metaMaskIconImg, niftyIconImg } from '../assets/images'\n\nexport default interface ProviderInfo {\n name: string\n eProvider: EProvider\n iconImg?: string\n}\n\nexport enum EProvider {\n METAMASK = 'Metamask',\n NIFTY = 'Nifty',\n LEDGER = 'Ledger',\n TREZOR = 'Trezor',\n TRUST = 'Trust',\n LOCAL = 'Localhost',\n GO_WALLET = 'GoWallet',\n ALPHA_WALLET = 'AlphaWallet',\n STATUS = 'status',\n CIPHER = 'cipher',\n COINBASE = 'coinbase',\n MIST = 'mist',\n PARITY = 'parity',\n INFURA = 'infura'\n}\n\nexport const getProviderInfo = (eProvider: EProvider): ProviderInfo => {\n switch (eProvider) {\n case EProvider.METAMASK:\n return {\n name: 'MetaMask',\n eProvider,\n iconImg: metaMaskIconImg,\n }\n case EProvider.NIFTY:\n return {\n name: 'Nifty',\n eProvider,\n iconImg: niftyIconImg,\n }\n case EProvider.LEDGER:\n return {\n name: 'Ledger',\n eProvider,\n }\n case EProvider.TREZOR:\n return {\n name: 'Trezor',\n eProvider,\n }\n case EProvider.TRUST:\n return {\n name: 'Trust',\n eProvider,\n }\n case EProvider.GO_WALLET:\n return {\n name: 'Go Wallet',\n eProvider,\n }\n case EProvider.ALPHA_WALLET:\n return {\n name: 'Alpha Wallet',\n eProvider,\n }\n case EProvider.STATUS:\n return {\n name: 'Status',\n eProvider,\n }\n case EProvider.COINBASE:\n return {\n name: 'Coinbase',\n eProvider,\n }\n case EProvider.MIST:\n return {\n name: 'Mist',\n eProvider,\n }\n case EProvider.PARITY:\n return {\n name: 'Parity',\n eProvider,\n }\n case EProvider.INFURA:\n return {\n name: 'Infura',\n eProvider,\n }\n case EProvider.LOCAL:\n return {\n name: 'Localhost',\n eProvider,\n }\n default: {\n throw new Error(\n `EProvider not implemented or unknown. Chosen provider ${eProvider}`,\n )\n }\n }\n}\n","import React, { FC } from 'react'\nimport { makeStyles, Theme, Tooltip } from '@material-ui/core'\nimport Button from './Button'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport { niftyIconImg } from '../../assets/images'\n\nexport interface LoginOptionProps {\n className?: string\n onClick?: () => void\n providerInfo?: ProviderInfo\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n padding: 5,\n margin: 5,\n width: '100%',\n },\n content: {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n maxHeight: theme.spacing(5),\n justifyContent: 'center',\n },\n imageWrapper: {\n maxHeight: theme.spacing(4),\n marginRight: theme.spacing(2),\n },\n}))\n\n/**\n * If not providerInfo is received, we assume there's no provider available and so suggest to install Nifty wallet\n * Same happens when no onClick is provided. We open the Nifty page on a new tab\n */\nconst LoginOption: FC = ({\n className = '',\n onClick,\n providerInfo,\n ...rest\n}) => {\n const classes = useStyles()\n\n const providerContent = (\n
\n {\n providerInfo?.iconImg\n && (\n \n )\n }\n {providerInfo?.name}\n
\n )\n\n const handleOnClick = () => {\n if (onClick) {\n return onClick()\n }\n return window.open('https://www.poa.network/for-users/nifty-wallet/getting-started', '_blank')\n }\n\n return (\n \n {/* only with Nifty we display the Tooltip because atm we can't check if MetaMask is also enabled */}\n {!!providerInfo && providerInfo.eProvider === EProvider.NIFTY\n && (\n \n {providerContent}\n \n )}\n {!!providerInfo && providerInfo.eProvider !== EProvider.NIFTY\n && providerContent}\n {!providerInfo\n && (\n
\n \n Install Nifty wallet\n
\n )}\n \n )\n}\n\nexport default LoginOption\n","import React, { FC } from 'react'\nimport { logoFullWhite } from '../../assets/images'\n\ninterface LogoProps extends React.Props {\n alt?: string\n}\n\nconst Logo: FC = ({ alt = 'RIF OS logo', ...rest }) => {alt}\n\nexport default Logo\n","import React, { FC } from 'react'\nimport { logoFullWhite } from '../../assets/images'\n\ninterface LogoProps extends React.Props {\n alt?: string\n height?: string | number\n style?: React.CSSProperties\n}\n\nconst LogoNavbar: FC = ({ alt = 'navbar logo', height = '44px', ...rest }) => (\n \n)\nexport default LogoNavbar\n","import React, { FC } from 'react'\nimport { Theme, makeStyles } from '@material-ui/core/styles'\nimport Tab from '@material-ui/core/Tab'\nimport { NavLink } from 'react-router-dom'\nimport { colors } from '../../theme'\n\nexport interface StyledNavTabProps {\n label: string\n to: string\n value: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n textTransform: 'none',\n color: colors.gray5,\n fontWeight: theme.typography.fontWeightRegular,\n fontSize: theme.typography.pxToRem(15),\n marginRight: theme.spacing(1),\n '&:focus': {\n opacity: 1,\n },\n },\n selected: {\n fontWeight: theme.typography.fontWeightMedium,\n borderBottom: '2px solid #000000',\n },\n}))\n\nconst StyledNavTab: FC = (props: StyledNavTabProps) => {\n const classes = useStyles()\n return \n}\n\nexport default StyledNavTab\n","import React, { FC } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport CheckCircleOutlineOutlinedIcon from '@material-ui/icons/CheckCircleOutlineOutlined'\nimport ErrorIcon from '@material-ui/icons/Error'\nimport WarningIcon from '@material-ui/icons/Warning'\nimport { green, yellow } from '@material-ui/core/colors'\n\nexport interface NetworkIndicatorProps {\n iconClassName?: string\n currentNetworkId?: number\n requiredNetworkId?: number\n onCorrectNetworkMessage?: string\n onNetworkMismatchMessage?: string\n noNetworkMessage?: string\n}\n\nconst defaultonCorrectNetworkMessage = 'You are on the right network'\nconst deaulftonNetworkMismatchMessage = 'You are on the wrong network'\nconst defaultNoNetworkMessage = 'You are not connected to any network'\n\nexport enum NetworkStatus {\n NO_NETWORK = 1,\n NETWORK_MISSMATCH = 2,\n CORRECT_NETWORK = 3\n}\n\nconst getNetworkStatus = (currentNetworkId, requiredNetworkId): NetworkStatus => {\n if (!currentNetworkId) return NetworkStatus.NO_NETWORK\n\n if (currentNetworkId === requiredNetworkId) return NetworkStatus.CORRECT_NETWORK\n return NetworkStatus.NETWORK_MISSMATCH\n}\n\nconst NetworkIndicator: FC = ({\n iconClassName = '',\n currentNetworkId, requiredNetworkId, onCorrectNetworkMessage,\n onNetworkMismatchMessage, noNetworkMessage,\n}) => {\n const networkStatus = getNetworkStatus(currentNetworkId, requiredNetworkId)\n\n const iconPerNetworkStatus = new Map()\n iconPerNetworkStatus.set(NetworkStatus.NO_NETWORK, (\n \n \n \n ))\n iconPerNetworkStatus.set(NetworkStatus.NETWORK_MISSMATCH, (\n \n \n \n ))\n iconPerNetworkStatus.set(NetworkStatus.CORRECT_NETWORK, (\n \n \n \n ))\n\n return (\n iconPerNetworkStatus.get(networkStatus)\n )\n}\n\nexport default NetworkIndicator\n","import React, { FC } from 'react'\nimport { Modal as MUIModal, ModalProps as MUIModalProps } from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport type ModalProps = MUIModalProps;\n\nconst useStyles = makeStyles((theme: Theme) => ({\n paper: {\n backgroundColor: theme.palette.background.paper,\n border: `2px solid ${colors.primary}`,\n boxShadow: theme.shadows[5],\n left: '50%',\n minWidth: 400,\n padding: theme.spacing(2, 4, 3),\n position: 'absolute',\n top: '50%',\n transform: 'translate(-50%, -50%)',\n },\n}))\n\nconst Modal: FC = ({ children, ...rest }) => {\n const classes = useStyles()\n\n return (\n \n
\n {children}\n
\n
\n )\n}\n\nexport default Modal\n","import React, { FC } from 'react'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport interface ModalHeaderProps {\n className?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n borderBottom: `1px solid ${colors.gray2}`,\n color: colors.primary,\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n },\n}))\n\nconst ModalHeader: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalHeader\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\n\nexport interface ModalTitleProps {\n className?: string\n}\n\nconst ModalTitle: FC = ({ children, ...rest }) => (\n \n {children}\n \n)\n\nexport default ModalTitle\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport interface ModalFooterProps {\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n borderTop: `1px solid ${colors.gray2}`,\n display: 'flex',\n justifyContent: 'center',\n paddingTop: theme.spacing(1),\n width: '100%',\n },\n}))\n\nconst ModalFooter: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalFooter\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\n\nexport interface ModalBodyProps {\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n padding: theme.spacing(3, 0),\n width: '100%',\n },\n}))\n\nconst ModalBody: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalBody\n","import React from 'react'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { logoBlueIcon } from '../../assets/images'\n\nconst useStyles = makeStyles(() => ({\n '@keyframes spin': {\n '0%': { transform: 'rotate(0deg)' },\n '100%': { transform: 'rotate(360deg)' },\n },\n root: {\n position: 'relative',\n },\n overlay: {\n position: 'absolute',\n zIndex: 2,\n height: '100%',\n width: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n background: '#FFFFFF55',\n },\n spinner: {\n display: 'inline-block',\n zIndex: 3,\n width: '50px',\n height: '50px',\n border: 'none',\n animation: '$spin 2s ease-in-out infinite',\n },\n}))\n\nconst WithSpinner = (WrappedComponent: React.ElementType) => {\n const Spinner = ({ isLoading, ...props }) => {\n const classes = useStyles()\n\n return (\n
\n {\n isLoading\n && (\n
\n \"logo\"\n
\n )\n }\n \n
\n )\n }\n return Spinner\n}\n\nexport default WithSpinner\n","import React, { FC, useState } from 'react'\nimport { Accordion as MUIAccordion, AccordionProps as MUIAccordionProps } from '@material-ui/core'\nimport Typography from '@material-ui/core/Typography'\nimport AccordionDetails from '@material-ui/core/AccordionDetails'\nimport AccordionSummary from '@material-ui/core/AccordionSummary'\nimport { makeStyles, Theme, createStyles } from '@material-ui/core/styles'\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore'\nimport { colors } from '../../theme'\n\ninterface AccordionProps extends MUIAccordionProps {\n id: string\n title?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n root: {\n boxShadow: 'none',\n color: colors.gray4,\n width: '100%',\n },\n heading: {\n color: colors.gray4,\n fontSize: theme.typography.pxToRem(15),\n fontWeight: theme.typography.fontWeightRegular,\n width: '100%',\n },\n accordionSummary: {\n borderBottom: `1px solid ${colors.gray2}`,\n },\n}))\n\nconst Accordion: FC = ({\n children, expanded, id, title,\n}) => {\n const classes = useStyles()\n const [isExpanded, setIsExpanded] = useState(!!expanded)\n\n const onChange = (): void => setIsExpanded(!isExpanded)\n\n return (\n \n }\n aria-controls={`panel-${id}-content`}\n id={id}\n >\n {title}\n \n \n {children}\n \n \n )\n}\n\nexport default Accordion\n","import React, { FC } from 'react'\nimport Web3 from 'web3'\nimport {\n Button, LoginOption, Modal, ModalBody, ModalFooter, ModalHeader, ModalTitle,\n} from '../atoms'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport NetworkInfo from '../../models/NetworkInfo'\n\nexport interface AccountModalProps {\n web3?: Web3\n networkInfo?: NetworkInfo\n setProvider?: (provider: EProvider, onProviderSet?:\n (account?: string) => void) => Promise\n availableProviders?: ProviderInfo[]\n onClose?: () => void\n onProviderSet?: (account) => void\n open: boolean\n}\n\nconst AccountModal: FC = ({\n setProvider,\n availableProviders,\n open,\n onClose,\n onProviderSet,\n}) => (\n \n \n \n Connect a wallet to get started\n \n \n {\n availableProviders && availableProviders.length && availableProviders.map(\n (providerInfo) => (\n => {\n if (setProvider) await setProvider(providerInfo.eProvider, onProviderSet)\n }}\n />\n ),\n )\n }\n {!availableProviders\n && (\n // TODO: Create LoginOptionTemplate to extract this\n // empty LoginOption means suggest to install Nifty wallet\n \n )}\n \n \n \n Close\n \n \n \n \n)\n\nexport default AccountModal\n","import React, { FC, useState } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport { makeStyles } from '@material-ui/core/styles'\nimport FileCopyIcon from '@material-ui/icons/FileCopy'\nimport Typography from '@material-ui/core/Typography'\n\nexport interface CopyTextTooltipProps {\n displayElement: React.ReactElement\n fullText: string\n}\n\nconst useStyles = makeStyles(() => ({\n tooltipTitle: {\n display: 'flex',\n alignItems: 'center',\n },\n}))\n\nconst CopyTextTooltip: FC = ({ displayElement, fullText }) => {\n const [isCopied, setIsCopied] = useState(false)\n\n const classes = useStyles()\n\n const tooltipContent = (\n
\n \n \n {fullText}\n \n
\n )\n\n return (\n Copied! : tooltipContent}\n onClick={() => {\n navigator.clipboard.writeText(fullText)\n .then(() => { setIsCopied(true) })\n }}\n onClose={() => {\n setIsCopied(false)\n }}\n >\n {displayElement}\n \n )\n}\n\nexport default CopyTextTooltip\n","import React, { FC, useState } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Accordion from '@material-ui/core/Accordion'\nimport AccordionDetails from '@material-ui/core/AccordionDetails'\nimport AccordionSummary from '@material-ui/core/AccordionSummary'\nimport Typography from '@material-ui/core/Typography'\nimport AddIcon from '@material-ui/icons/Add'\nimport RemoveIcon from '@material-ui/icons/Remove'\nimport { colors, fonts } from '../../theme'\n\nexport interface FAQSectionProps {\n answer: string\n initiallyExpanded?: boolean\n question: string\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n boxShadow: 'none',\n color: colors.gray4,\n width: '100%',\n },\n heading: {\n display: 'flex',\n justifyContent: 'center',\n color: colors.gray5,\n fontSize: fonts.size.subtitleSmall,\n width: '100%',\n },\n headingExpanded: {\n color: colors.primary,\n },\n headingCollapsed: {\n fontWeight: fonts.weight.regular,\n },\n panelDetails: {\n display: 'flex',\n justifyContent: 'center',\n },\n answerContainer: {\n [theme.breakpoints.up('md')]: {\n maxWidth: '80%',\n },\n },\n answerText: {\n color: colors.gray5,\n },\n}))\n\nconst FAQSection: FC = ({\n className = '', initiallyExpanded, question, answer,\n}) => {\n const classes = useStyles()\n const [isExpanded, setIsExpanded] = useState(!!initiallyExpanded)\n\n const onChange = (): void => setIsExpanded(!isExpanded)\n\n return (\n \n : }\n >\n {question}\n \n \n
\n {answer}\n
\n
\n
\n )\n}\n\nexport default FAQSection\n","import React, { FC } from 'react'\nimport { FormControlLabel } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Checkbox, { CheckboxProps } from '../atoms/Checkbox'\nimport { colors } from '../../theme'\n\nexport interface LabeledCheckboxProps extends CheckboxProps {\n labelText: string\n labelClassName?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n color: colors.gray4,\n width: '100%',\n },\n}))\n\nconst LabeledCheckbox: FC = ({ labelText, labelClassName = '', ...rest }) => {\n const classes = useStyles()\n return (\n \n }\n />\n\n )\n}\n\nexport default LabeledCheckbox\n","import React, { FC } from 'react'\nimport LabeledCheckbox, { LabeledCheckboxProps } from './LabeledCheckbox'\n\nexport interface FilterCheckboxCardProps {\n className?: string\n items: LabeledCheckboxProps[]\n onClick?: (event: React.MouseEvent) => void\n}\n\nconst FilterCheckboxCard: FC = ({ className = '', onClick, items }) => (\n
\n {items.map((item: LabeledCheckboxProps, i) => (\n \n ))}\n
\n)\n\nexport default FilterCheckboxCard\n","const shortenString = (\n str: string,\n largerThan = 16,\n charsShownCount = 6,\n): string => (str.length > largerThan\n ? `${str.substr(0, charsShownCount)}...${str.substr(str.length - 4)}`\n : str)\n\nconst removeEmptySpaces = (str: string): string => str.replace(/\\s/g, '')\n\nconst maxSupportedNumber = 99999999999999\nconst minSupportedNumber = 0.000001\n\nconst validatedNumber = (num: number): number => {\n if (num > 0) {\n if (num > maxSupportedNumber) return maxSupportedNumber\n\n if (num < minSupportedNumber) return minSupportedNumber\n }\n\n if (num < 0) {\n if (num < -maxSupportedNumber) return -maxSupportedNumber\n\n if (num > -minSupportedNumber) return -minSupportedNumber\n }\n return num\n}\n\nexport {\n shortenString,\n removeEmptySpaces,\n maxSupportedNumber,\n minSupportedNumber,\n validatedNumber,\n}\n","import React, { FC } from 'react'\nimport { NavLinkProps, NavLink } from 'react-router-dom'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../theme'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FooterColumnProps {\n className?: string\n links: FooterLinkProps[]\n title: string\n}\n\nexport interface FooterLinkProps extends NavLinkProps {\n isExternal?: boolean\n title: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n },\n footerLink: {\n color: colors.gray4,\n fontWeight: fonts.weight.light,\n textDecoration: 'none',\n '&:hover': {\n fontWeight: fonts.weight.regular,\n },\n },\n footerTitle: {\n fontSize: fonts.size.subtitleBig,\n textAlign: 'center',\n },\n}))\n\nconst FooterColumn: FC = ({ title, links, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {title}\n {\n links.map((link: FooterLinkProps) => {\n const key = removeEmptySpaces(link.title)\n\n if (link.isExternal) {\n const href = (link.to || '#').toString()\n return (\n \n {link.title}\n \n )\n }\n return (\n \n {link.title}\n \n )\n })\n }\n
\n )\n}\n\nexport default FooterColumn\n","import React, { FC } from 'react'\nimport {\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n ModalTitle,\n} from '../atoms'\nimport { ModalProps } from '../atoms/modal/Modal'\n\nexport interface ModalDialogueProps extends ModalProps {\n title: string\n footer?: React.ReactElement\n}\n\nconst ModalDialogue: FC = ({\n title,\n footer,\n children,\n ...props\n}) => (\n \n \n \n {title}\n \n {children}\n {footer}\n \n \n)\n\nexport default ModalDialogue\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Input, { InputProps } from '@material-ui/core/Input'\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../theme'\n\nexport interface UnitsInputProps extends InputProps {\n handleOnChange: (event: React.ChangeEvent) => void\n handleOnBlur?: () => void\n maxValue?: number\n minValue?: number\n step?: number\n units?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n color: colors.gray4,\n display: 'flex',\n },\n input: {\n color: colors.gray4,\n paddingLeft: theme.spacing(0.1),\n textAlign: 'center',\n '&::before': {\n borderBottom: `1px solid ${colors.gray4}`,\n },\n },\n inputContainer: {\n paddingRight: '0 !important',\n },\n units: {\n color: colors.gray4,\n display: 'flex',\n fontSize: fonts.size.tiny,\n },\n unitsContainer: {\n alignSelf: 'center',\n color: colors.gray4,\n display: 'flex',\n fontSize: fonts.size.normal,\n paddingLeft: '0 !important',\n },\n}))\n\nconst UnitsInput: FC = ({\n maxValue,\n minValue,\n units,\n value,\n step = 1,\n handleOnBlur,\n handleOnChange,\n ...rest\n}) => {\n const classes = useStyles()\n\n return (\n \n \n \n \n \n \n \n {units}\n \n \n \n \n )\n}\n\nexport default UnitsInput\n","import Slider, { SliderProps } from '@material-ui/core/Slider'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport UnitsInput from './UnitsInput'\nimport { validatedNumber } from '../../utils'\nimport { fonts } from '../../theme'\n\nexport interface RangeSliderWithInputsProps extends SliderProps {\n values: {\n start: number\n end: number\n }\n unit?: string\n handleChange: ({ min, max }) => void\n className?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n width: '100%',\n },\n inputsContainer: {\n alignSelf: 'center',\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n },\n toContainer: {\n alignSelf: 'center',\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n fontWeight: fonts.weight.regular,\n },\n}))\n\nconst RangeSliderWithInputs: FC = ({\n values: {\n start: startValue, end: endValue,\n }, unit, handleChange, className, ...rest\n}) => {\n const classes = useStyles()\n\n const maxValue = rest.max || endValue\n const minValue = rest.min || startValue\n const step = rest.step || 1\n\n const handleStartInputChange = (\n event: React.ChangeEvent,\n ): void => {\n const newStartValue = validatedNumber(Number(event.target.value)) || minValue\n handleChange({ min: newStartValue, max: endValue })\n }\n\n const handleEndInputChange = (\n event: React.ChangeEvent,\n ): void => {\n const newEndValue = validatedNumber(Number(event.target.value)) || endValue\n handleChange({ min: startValue, max: newEndValue })\n }\n\n const handleSliderChange = (\n _: React.ChangeEvent<{}>, newSliderValue: number | number[],\n ): void => {\n handleChange({ min: newSliderValue[0], max: newSliderValue[1] })\n }\n\n const handleStartValueBlur = (): void => {\n if (startValue < minValue) {\n handleChange({ min: minValue, max: endValue })\n } else if (startValue > endValue) {\n handleChange({ min: endValue, max: endValue })\n }\n }\n\n const handleEndValueBlur = (): void => {\n if (endValue < startValue) {\n handleChange({ min: minValue, max: startValue })\n } else if (endValue > maxValue) {\n handleChange({ min: minValue, max: maxValue })\n }\n }\n\n const getCommonInputValues = (): {} => ({\n maxValue,\n minValue,\n step,\n units: unit,\n })\n\n return (\n
\n \n
\n \n \n to\n \n \n
\n
\n )\n}\n\nexport default RangeSliderWithInputs\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport CopyTextTooltip from './CopyTextTooltip'\nimport { shortenString } from '../../utils'\n\nexport interface ShortenTextTooltipProps {\n value: string\n maxLength?: number\n charsShownCount?: number\n}\n\nconst ShortenTextTooltip: FC = ({ value, maxLength = 20, charsShownCount }) => (\n \n {\n value.length > maxLength\n && (\n {shortenString(value, maxLength, charsShownCount || maxLength - 5)}}\n fullText={value}\n />\n )\n }\n {\n value.length <= maxLength\n && value\n }\n \n)\n\nexport default ShortenTextTooltip\n","import React, { FC } from 'react'\nimport Tabs, { TabsProps } from '@material-ui/core/Tabs'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { colors } from '../../theme'\n\nexport interface StyledTabsProps {\n value: string\n onChange: (event: React.ChangeEvent<{}>, newValue: string) => void\n}\n\nconst useStyles = makeStyles({\n indicator: {\n display: 'flex',\n justifyContent: 'center',\n backgroundColor: 'transparent',\n },\n root: {\n borderBottom: `1px solid ${colors.gray3}`,\n },\n})\n\nconst StyledTabs: FC = (props: TabsProps) => {\n const { children } = props\n const classes = useStyles()\n return (\n \n {children}\n \n )\n}\n\nexport default StyledTabs\n","import { Tab as MUITab, Tabs as MUITabs } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React, { FC } from 'react'\nimport { colors, fonts } from '../../theme'\n\nexport interface SwitchTabsProps {\n label1: string\n label2: string\n value?: 0 | 1\n onChange: (event: React.ChangeEvent<{}>, value: number) => void\n}\n\nconst a11yProps = (index: number): {} => ({\n id: `full-width-tab-${index}`,\n 'aria-controls': `full-width-tabpanel-${index}`,\n})\n\nconst useStyles = makeStyles(() => ({\n root: {\n backgroundColor: colors.white,\n minHeight: 20,\n width: '100%',\n border: `${colors.primary} solid 1px`,\n borderRadius: 50,\n overflow: 'hidden',\n },\n tabContainer: {\n minHeight: 20,\n width: '100%',\n },\n tab: {\n '&:hover': {\n color: colors.primary,\n },\n borderRadius: 50,\n color: colors.gray3,\n fontWeight: fonts.weight.light,\n maxWidth: '50%',\n minHeight: '100%',\n minWidth: '50%',\n outlineStyle: 'none',\n padding: 0,\n textTransform: 'capitalize',\n zIndex: 1,\n '&:focus': {\n outlineStyle: 'none',\n },\n },\n // shows the transition between tabs\n tabIndicator: {\n backgroundColor: colors.primary,\n borderRadius: 50,\n height: '100%',\n },\n tabSelected: {\n // the '!important' overrides the on hover functionality when it's active\n backgroundColor: `${colors.primary} !important`,\n color: `${colors.white} !important`,\n },\n}))\n\nconst SwitchTabs: FC = ({\n label1, label2, value: controlledValue, onChange,\n}) => {\n const classes = useStyles()\n\n const handleChange = (\n event: React.ChangeEvent<{}>, newValue: number,\n ): void => {\n onChange(event, newValue)\n }\n\n return (\n
\n \n \n \n \n
\n )\n}\n\nexport default SwitchTabs\n","import React, { FC } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport IconButton, { IconButtonProps } from '@material-ui/core/IconButton'\n\nexport interface TooltipIconButtonProps {\n tooltipTitle: string\n iconButtonProps: IconButtonProps\n icon: React.ReactNode\n}\n\nconst TooltipIconButton: FC = ({\n tooltipTitle,\n iconButtonProps,\n icon,\n}) => (\n \n \n \n {icon}\n \n \n\n \n)\n\nexport default TooltipIconButton\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport Box from '@material-ui/core/Box'\nimport Grid from '@material-ui/core/Grid'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../theme'\nimport ModalDialogue from './ModalDialogue'\n\nexport interface WrongNetworkModalProps {\n open: boolean\n currentNetworkName?: string\n requiredNetworkName: string\n onClose: () => void\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n boxContainer: {\n border: `1px solid ${colors.primary}`,\n padding: theme.spacing(5),\n marginTop: theme.spacing(3),\n },\n loaderContainer: {\n display: 'flex',\n justifyContent: 'center',\n },\n}))\n\nconst WrongNetworkModal: FC = ({\n open, currentNetworkName = 'Private network', requiredNetworkName, onClose,\n}) => {\n const classes = useStyles()\n return (\n \n \n \n This dApp only works on the\n {' '}\n {requiredNetworkName}\n .\n You are currently on\n {' '}\n {currentNetworkName}\n .\n \n \n \n \n \n \n Waiting for the right network...\n \n Switch networks on your wallet\n \n \n \n \n \n )\n}\nexport default WrongNetworkModal\n","import React, { FC, HTMLAttributes } from 'react'\nimport { Grid } from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport FooterColumn, { FooterColumnProps } from '../molecules/FooterColumn'\nimport { colors, fonts } from '../../theme'\nimport { logoBlackAndBlue } from '../../assets/images'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FooterProps extends HTMLAttributes {\n className?: string\n copyrightText: string\n linksColumns: FooterColumnProps[]\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n copyright: {\n display: 'flex',\n justifyContent: 'center',\n },\n copyrightContent: {\n color: colors.gray4,\n fontSize: fonts.size.tiny,\n },\n footerContainer: {\n backgroundColor: colors.gray2,\n display: 'flex',\n justifyContent: 'center',\n paddingBottom: theme.spacing(2),\n width: '100%',\n },\n footerContent: {\n marginTop: theme.spacing(2),\n maxWidth: '80%',\n width: '100%',\n },\n linksColumn: {\n marginBottom: theme.spacing(1),\n },\n logoColumn: {\n display: 'flex',\n justifyContent: 'center',\n padding: theme.spacing(5),\n },\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n paddingTop: theme.spacing(4),\n width: '100%',\n },\n tongue: {\n backgroundColor: colors.gray2,\n borderTopLeftRadius: '50% 80%',\n borderTopRightRadius: '50% 80%',\n height: theme.spacing(10),\n width: '100%',\n },\n}))\n\nconst Footer: FC = ({\n className = '', copyrightText, linksColumns, ...rest\n}) => {\n const classes = useStyles()\n\n return (\n
\n
\n
\n
\n \n \n \"logo\"\n \n {\n linksColumns.map((linkColumn: FooterColumnProps) => (\n \n \n \n ))\n }\n \n
\n \n {copyrightText}\n \n
\n
\n
\n
\n )\n}\n\nexport default Footer\n","export enum ConnectionStatus {\n LoggedIn = 0,\n LoggedOut = 1,\n WalletLocked = 2,\n WrongNetwork = 3\n}\n\nexport default ConnectionStatus\n","// A type of promise-like that resolves synchronously and supports only one observer\nexport const _Pact = /*#__PURE__*/(function() {\n\tfunction _Pact() {}\n\t_Pact.prototype.then = function(onFulfilled, onRejected) {\n\t\tconst result = new _Pact();\n\t\tconst state = this.s;\n\t\tif (state) {\n\t\t\tconst callback = state & 1 ? onFulfilled : onRejected;\n\t\t\tif (callback) {\n\t\t\t\ttry {\n\t\t\t\t\t_settle(result, 1, callback(this.v));\n\t\t\t\t} catch (e) {\n\t\t\t\t\t_settle(result, 2, e);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\tthis.o = function(_this) {\n\t\t\ttry {\n\t\t\t\tconst value = _this.v;\n\t\t\t\tif (_this.s & 1) {\n\t\t\t\t\t_settle(result, 1, onFulfilled ? onFulfilled(value) : value);\n\t\t\t\t} else if (onRejected) {\n\t\t\t\t\t_settle(result, 1, onRejected(value));\n\t\t\t\t} else {\n\t\t\t\t\t_settle(result, 2, value);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(result, 2, e);\n\t\t\t}\n\t\t};\n\t\treturn result;\n\t}\n\treturn _Pact;\n})();\n\n// Settles a pact synchronously\nexport function _settle(pact, state, value) {\n\tif (!pact.s) {\n\t\tif (value instanceof _Pact) {\n\t\t\tif (value.s) {\n\t\t\t\tif (state & 1) {\n\t\t\t\t\tstate = value.s;\n\t\t\t\t}\n\t\t\t\tvalue = value.v;\n\t\t\t} else {\n\t\t\t\tvalue.o = _settle.bind(null, pact, state);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (value && value.then) {\n\t\t\tvalue.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));\n\t\t\treturn;\n\t\t}\n\t\tpact.s = state;\n\t\tpact.v = value;\n\t\tconst observer = pact.o;\n\t\tif (observer) {\n\t\t\tobserver(pact);\n\t\t}\n\t}\n}\n\nexport function _isSettledPact(thenable) {\n\treturn thenable instanceof _Pact && thenable.s & 1;\n}\n\n// Converts argument to a function that always returns a Promise\nexport function _async(f) {\n\treturn function() {\n\t\tfor (var args = [], i = 0; i < arguments.length; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\t\ttry {\n\t\t\treturn Promise.resolve(f.apply(this, args));\n\t\t} catch(e) {\n\t\t\treturn Promise.reject(e);\n\t\t}\n\t}\n}\n\n// Awaits on a value that may or may not be a Promise (equivalent to the await keyword in ES2015, with continuations passed explicitly)\nexport function _await(value, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(value) : value;\n\t}\n\tif (!value || !value.then) {\n\t\tvalue = Promise.resolve(value);\n\t}\n\treturn then ? value.then(then) : value;\n}\n\n// Awaits on a value that may or may not be a Promise, then ignores it\nexport function _awaitIgnored(value, direct) {\n\tif (!direct) {\n\t\treturn value && value.then ? value.then(_empty) : Promise.resolve();\n\t}\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continue(value, then) {\n\treturn value && value.then ? value.then(then) : then(value);\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continueIgnored(value) {\n\tif (value && value.then) {\n\t\treturn value.then(_empty);\n\t}\n}\n\n// Asynchronously iterate through an object that has a length property, passing the index as the first argument to the callback (even as the length property changes)\nexport function _forTo(array, body, check) {\n\tvar i = -1, pact, reject;\n\tfunction _cycle(result) {\n\t\ttry {\n\t\t\twhile (++i < array.length && (!check || !check())) {\n\t\t\t\tresult = body(i);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pact) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t} else {\n\t\t\t\tpact = result;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t}\n\t}\n\t_cycle();\n\treturn pact;\n}\n\n// Asynchronously iterate through an object's properties (including properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forIn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tkeys.push(key);\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\n// Asynchronously iterate through an object's own properties (excluding properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forOwn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tif (Object.prototype.hasOwnProperty.call(target, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\nexport const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\"))) : \"@@iterator\";\n\n// Asynchronously iterate through an object's values\n// Uses for...of if the runtime supports it, otherwise iterates until length on a copy\nexport function _forOf(target, body, check) {\n\tif (typeof target[_iteratorSymbol] === \"function\") {\n\t\tvar iterator = target[_iteratorSymbol](), step, pact, reject;\n\t\tfunction _cycle(result) {\n\t\t\ttry {\n\t\t\t\twhile (!(step = iterator.next()).done && (!check || !check())) {\n\t\t\t\t\tresult = body(step.value);\n\t\t\t\t\tif (result && result.then) {\n\t\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pact) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t} else {\n\t\t\t\t\tpact = result;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t\t}\n\t\t}\n\t\t_cycle();\n\t\tif (iterator.return) {\n\t\t\tvar _fixup = function(value) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!step.done) {\n\t\t\t\t\t\titerator.return();\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (pact && pact.then) {\n\t\t\t\treturn pact.then(_fixup, function(e) {\n\t\t\t\t\tthrow _fixup(e);\n\t\t\t\t});\n\t\t\t}\n\t\t\t_fixup();\n\t\t}\n\t\treturn pact;\n\t}\n\t// No support for Symbol.iterator\n\tif (!(\"length\" in target)) {\n\t\tthrow new TypeError(\"Object is not iterable\");\n\t}\n\t// Handle live collections properly\n\tvar values = [];\n\tfor (var i = 0; i < target.length; i++) {\n\t\tvalues.push(target[i]);\n\t}\n\treturn _forTo(values, function(i) { return body(values[i]); }, check);\n}\n\nexport const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\"))) : \"@@asyncIterator\";\n\n// Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\nexport function _forAwaitOf(target, body, check) {\n\tif (typeof target[_asyncIteratorSymbol] === \"function\") {\n\t\tvar pact = new _Pact();\n\t\tvar iterator = target[_asyncIteratorSymbol]();\n\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\treturn pact;\n\t\tfunction _resumeAfterBody(result) {\n\t\t\tif (check && check()) {\n\t\t\t\treturn _settle(pact, 1, iterator.return ? iterator.return().then(function() { return result; }) : result);\n\t\t\t}\n\t\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\t}\n\t\tfunction _resumeAfterNext(step) {\n\t\t\tif (step.done) {\n\t\t\t\t_settle(pact, 1);\n\t\t\t} else {\n\t\t\t\tPromise.resolve(body(step.value)).then(_resumeAfterBody).then(void 0, _reject);\n\t\t\t}\n\t\t}\n\t\tfunction _reject(error) {\n\t\t\t_settle(pact, 2, iterator.return ? iterator.return().then(function() { return error; }) : error);\n\t\t}\n\t}\n\treturn Promise.resolve(_forOf(target, function(value) { return Promise.resolve(value).then(body); }, check));\n}\n\n// Asynchronously implement a generic for loop\nexport function _for(test, update, body) {\n\tvar stage;\n\tfor (;;) {\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t\tif (shouldContinue.then) {\n\t\t\tstage = 0;\n\t\t\tbreak;\n\t\t}\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.s;\n\t\t\t} else {\n\t\t\t\tstage = 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (update) {\n\t\t\tvar updateValue = update();\n\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\tstage = 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tvar pact = new _Pact();\n\tvar reject = _settle.bind(null, pact, 2);\n\t(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tdo {\n\t\t\tif (update) {\n\t\t\t\tupdateValue = update();\n\t\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\t\tupdateValue.then(_resumeAfterUpdate).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshouldContinue = test();\n\t\t\tif (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t}\n\t\t} while (!result || !result.then);\n\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterBody(result);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n\tfunction _resumeAfterUpdate() {\n\t\tif (shouldContinue = test()) {\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterTest(shouldContinue);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a do ... while loop\nexport function _do(body, test) {\n\tvar awaitBody;\n\tdo {\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t} else {\n\t\t\t\tawaitBody = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t} while (!shouldContinue.then);\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : shouldContinue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tfor (;;) {\n\t\t\tshouldContinue = test();\n\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t}\n\t\t\tif (!shouldContinue) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\tresult = result.v;\n\t\t\t\t} else {\n\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tdo {\n\t\t\t\tresult = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshouldContinue = test();\n\t\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t\t}\n\t\t\t\tif (!shouldContinue) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} while (!shouldContinue.then);\n\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a switch statement\nexport function _switch(discriminant, cases) {\n\tvar dispatchIndex = -1;\n\tvar awaitBody;\n\touter: {\n\t\tfor (var i = 0; i < cases.length; i++) {\n\t\t\tvar test = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvar testValue = test();\n\t\t\t\tif (testValue && testValue.then) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tif (testValue === discriminant) {\n\t\t\t\t\tdispatchIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Found the default case, set it as the pending dispatch case\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tif (dispatchIndex !== -1) {\n\t\t\tdo {\n\t\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\t\twhile (!body) {\n\t\t\t\t\tdispatchIndex++;\n\t\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t\t}\n\t\t\t\tvar result = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tawaitBody = true;\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\t\tdispatchIndex++;\n\t\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t\treturn result;\n\t\t}\n\t}\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterTest(value) {\n\t\tfor (;;) {\n\t\t\tif (value === discriminant) {\n\t\t\t\tdispatchIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (++i === cases.length) {\n\t\t\t\tif (dispatchIndex !== -1) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvalue = test();\n\t\t\t\tif (value && value.then) {\n\t\t\t\t\tvalue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tdo {\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tvar result = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tdispatchIndex++;\n\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterBody(result) {\n\t\tfor (;;) {\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tif (!fallthroughCheck || fallthroughCheck()) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdispatchIndex++;\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _call(body, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(body()) : body();\n\t}\n\ttry {\n\t\tvar result = Promise.resolve(body());\n\t\treturn then ? result.then(then) : result;\n\t} catch (e) {\n\t\treturn Promise.reject(e);\n\t}\n}\n\n// Asynchronously call a function and swallow the result\nexport function _callIgnored(body, direct) {\n\treturn _call(body, _empty, direct);\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _invoke(body, then) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(then);\n\t}\n\treturn then(result);\n}\n\n// Asynchronously call a function and swallow the result\nexport function _invokeIgnored(body) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(_empty);\n\t}\n}\n\n// Asynchronously call a function and send errors to recovery continuation\nexport function _catch(body, recover) {\n\ttry {\n\t\tvar result = body();\n\t} catch(e) {\n\t\treturn recover(e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(void 0, recover);\n\t}\n\treturn result;\n}\n\n// Asynchronously await a promise and pass the result to a finally continuation\nexport function _finallyRethrows(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer(true, e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n\t}\n\treturn finalizer(false, result);\n}\n\n// Asynchronously await a promise and invoke a finally continuation that always overrides the result\nexport function _finally(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer();\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer, finalizer);\n\t}\n\treturn finalizer();\n}\n\n// Rethrow or return a value from a finally continuation\nexport function _rethrow(thrown, value) {\n\tif (thrown)\n\t\tthrow value;\n\treturn value;\n}\n\n// Empty function to implement break and other control flow that ignores asynchronous results\nexport function _empty() {\n}\n\n// Sentinel value for early returns in generators \nexport const _earlyReturn = /*#__PURE__*/ {};\n\n// Asynchronously call a function and send errors to recovery continuation, skipping early returns\nexport function _catchInGenerator(body, recover) {\n\treturn _catch(body, function(e) {\n\t\tif (e === _earlyReturn) {\n\t\t\tthrow e;\n\t\t}\n\t\treturn recover(e);\n\t});\n}\n\n// Asynchronous generator class; accepts the entrypoint of the generator, to which it passes itself when the generator should start\nexport const _AsyncGenerator = /*#__PURE__*/(function() {\n\tfunction _AsyncGenerator(entry) {\n\t\tthis._entry = entry;\n\t\tthis._pact = null;\n\t\tthis._resolve = null;\n\t\tthis._return = null;\n\t\tthis._promise = null;\n\t}\n\n\tfunction _wrapReturnedValue(value) {\n\t\treturn { value: value, done: true };\n\t}\n\tfunction _wrapYieldedValue(value) {\n\t\treturn { value: value, done: false };\n\t}\n\n\t_AsyncGenerator.prototype._yield = function(value) {\n\t\t// Yield the value to the pending next call\n\t\tthis._resolve(value && value.then ? value.then(_wrapYieldedValue) : _wrapYieldedValue(value));\n\t\t// Return a pact for an upcoming next/return/throw call\n\t\treturn this._pact = new _Pact();\n\t};\n\t_AsyncGenerator.prototype.next = function(value) {\n\t\t// Advance the generator, starting it if it has yet to be started\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tconst _entry = _this._entry;\n\t\t\t\tif (_entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the next call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Start the generator\n\t\t\t\t_this._entry = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\tfunction returnValue(value) {\n\t\t\t\t\t_this._resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t_this._resolve = null;\n\t\t\t\t}\n\t\t\t\tvar result = _entry(_this);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tresult.then(returnValue, function(error) {\n\t\t\t\t\t\tif (error === _earlyReturn) {\n\t\t\t\t\t\t\treturnValue(_this._return);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst pact = new _Pact();\n\t\t\t\t\t\t\t_this._resolve(pact);\n\t\t\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t\t\t_this._resolve = null;\n\t\t\t\t\t\t\t_resolve(pact, 2, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturnValue(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Generator is started and a yield expression is pending, settle it\n\t\t\t\t_this._pact = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\t_settle(_pact, 1, value);\n\t\t\t}\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.return = function(value) {\n\t\t// Early return from the generator if started, otherwise abandons the generator\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the return call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return the specified value\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t}\n\t\t\t// Settle the yield expression with a rejected \"early return\" value\n\t\t\t_this._return = value;\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, _earlyReturn);\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.throw = function(error) {\n\t\t// Inject an exception into the pending yield expression\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve, reject) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the throw call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return a rejected Promise containing the error\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t\t// Settle the yield expression with the value as a rejection\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, error);\n\t\t});\n\t};\n\n\t_AsyncGenerator.prototype[_asyncIteratorSymbol] = function() {\n\t\treturn this;\n\t};\n\t\n\treturn _AsyncGenerator;\n})();\n","import Web3 from 'web3'\nimport NetworkInfo from '../models/NetworkInfo'\nimport networksData from '../data/networks.json'\nimport ProviderInfo, {\n EProvider,\n getProviderInfo,\n} from '../models/ProviderInfo'\nimport ConnectionStatus from '../models/Enums'\n\ndeclare global {\n interface Window {\n ethereum: any // FIXME: This should be properly typed as per metamask\n web3: Web3\n }\n}\n\nexport function getWeb3(\n provider: EProvider = EProvider.METAMASK,\n): Promise {\n return new Promise((resolve, reject) => {\n switch (provider) {\n // Injected Web3 wallet like MetaMask or Nifty\n case EProvider.NIFTY:\n case EProvider.METAMASK: {\n // New MetaMask\n if (window.ethereum) {\n const web3 = new Web3(window.ethereum)\n window.ethereum\n .enable()\n .then(() => resolve(web3))\n .catch(reject)\n } else if (window.web3) {\n // Older versions of MetaMask or other\n resolve(new Web3(window.web3.currentProvider))\n } else reject(new Error('No injected web3 found'))\n break\n }\n\n // Localhost\n case EProvider.LOCAL: {\n const localhostProvider = new Web3.providers.HttpProvider(\n \"'http://127.0.0.1:4444'\",\n )\n resolve(new Web3(localhostProvider))\n break\n }\n\n // Unknown & not implemented\n default: {\n reject(\n new Error(\n `Provider not implemented or unknown. Chosen provider ${provider}`,\n ),\n )\n break\n }\n }\n })\n}\n\nexport const getNetworkInfo = (\n networkId: number,\n chainId?: number,\n): NetworkInfo | undefined => networksData.find((n) => (chainId\n ? n.networkId === networkId && n.chainId === chainId\n : n.networkId === networkId)) as NetworkInfo\n\nexport const getNetworkInfoFromWeb3 = async (\n web3: Web3,\n): Promise => {\n // set networkId and chainId\n let networkId: number | undefined\n let chainId: number | undefined\n try {\n networkId = await web3.eth.net.getId()\n\n if (networkId) {\n chainId = await web3.eth.getChainId()\n }\n } catch (error) {}\n let networkInfo: NetworkInfo | undefined\n\n if (networkId) {\n try {\n networkInfo = getNetworkInfo(networkId, chainId)\n } catch (error) {}\n }\n return networkInfo\n}\n\nexport const getAvailableProviders = (): ProviderInfo[] | undefined => {\n const result: ProviderInfo[] = []\n\n if (!window.web3) return undefined\n const currentProvider = window.web3.currentProvider as any\n\n if (currentProvider.isMetaMask) {\n // Nifty is also MetaMask\n result.push(\n currentProvider.isNiftyWallet\n ? getProviderInfo(EProvider.NIFTY)\n : getProviderInfo(EProvider.METAMASK),\n )\n }\n\n if (currentProvider.isTrust) result.push(getProviderInfo(EProvider.TRUST))\n\n if (currentProvider.isGoWallet) result.push(getProviderInfo(EProvider.GO_WALLET))\n\n if (currentProvider.isAlphaWallet) result.push(getProviderInfo(EProvider.ALPHA_WALLET))\n\n if (currentProvider.isStatus) result.push(getProviderInfo(EProvider.STATUS))\n\n if (currentProvider.isToshi) result.push(getProviderInfo(EProvider.COINBASE))\n\n // eslint-disable-next-line no-underscore-dangle\n if (typeof (window as any).__CIPHER__ !== 'undefined') result.push(getProviderInfo(EProvider.CIPHER))\n\n if (currentProvider.constructor.name === 'EthereumProvider') result.push(getProviderInfo(EProvider.MIST))\n\n if (currentProvider.constructor.name === 'Web3FrameProvider') result.push(getProviderInfo(EProvider.PARITY))\n\n if (currentProvider.host && currentProvider.host.indexOf('infura') !== -1) result.push(getProviderInfo(EProvider.INFURA))\n\n if (currentProvider.host && currentProvider.host.indexOf('localhost') !== -1) result.push(getProviderInfo(EProvider.LOCAL))\n\n return result\n}\n\nexport const getConnectionStatus = (\n web3?: Web3,\n requiredNetworkId?: number,\n currentNetworkId?: number,\n account?: string,\n): ConnectionStatus => {\n if (!web3) return ConnectionStatus.LoggedOut\n\n if (currentNetworkId !== requiredNetworkId) {\n return ConnectionStatus.WrongNetwork\n }\n\n if (account) {\n return ConnectionStatus.LoggedIn\n }\n return ConnectionStatus.WalletLocked\n}\n","import React, { FC, useState, useEffect } from 'react'\nimport Web3 from 'web3'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Popover from '@material-ui/core/Popover'\nimport Typography from '@material-ui/core/Typography'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport { shortenString } from '../../utils'\nimport { Button, NetworkIndicator } from '../atoms'\nimport { colors, fonts } from '../../theme'\nimport { AccountModal, WrongNetworkModal } from '../molecules'\nimport ConnectionStatus from '../../models/Enums'\nimport { getConnectionStatus } from '../../services/Web3Service'\nimport NetworkInfo from '../../models/NetworkInfo'\n\nexport interface AccountProps {\n requiredNetworkName: string\n setProvider?: (provider: EProvider) => Promise\n web3?: Web3\n networkInfo?: NetworkInfo\n account?: string\n availableProviders?: ProviderInfo[]\n requiredNetworkId?: number\n onCorrectNetworkMessage?: string\n onNetworkMismatchMessage?: string\n noNetworkMessage?: string\n modalInitiallyOpened?: boolean\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n accountText: {\n fontSize: fonts.size.tiny,\n textAlign: 'center',\n },\n button: {\n border: `1px solid ${colors.white}`,\n '&:hover': {\n border: `1px solid ${colors.transparent}`,\n },\n },\n networkIndicator: {\n marginRight: theme.spacing(1),\n },\n rightNetwork: {\n padding: theme.spacing(2),\n },\n}))\n\nconst Account: FC = (props) => {\n const {\n web3,\n networkInfo,\n account,\n setProvider,\n availableProviders,\n requiredNetworkId,\n onCorrectNetworkMessage,\n onNetworkMismatchMessage,\n noNetworkMessage,\n requiredNetworkName,\n modalInitiallyOpened = false,\n } = props\n const classes = useStyles()\n\n const [accountModalOpen, setAccountModalOpen] = useState(modalInitiallyOpened)\n const handleAccountModalClose = (): void => setAccountModalOpen(false)\n const handleAccountModalOpen = (): void => setAccountModalOpen(true)\n const [wrongNetModalOpen, setWrongNetModalOpen] = useState(false)\n const openWrongNetModal = (): void => setWrongNetModalOpen(true)\n const closeWrongNetModal = (): void => setWrongNetModalOpen(false)\n const connectionStatus: ConnectionStatus = getConnectionStatus(web3, requiredNetworkId, networkInfo?.networkId, account)\n\n // TODO: extract popover functionallity into new component\n const [anchorEl, setAnchorEl] = React.useState(null)\n\n const popoverOpen = Boolean(anchorEl)\n const id = popoverOpen ? 'right-net-popover' : undefined\n\n const handlePopoverClose = () => {\n setAnchorEl(null)\n }\n\n useEffect(() => {\n if (connectionStatus === ConnectionStatus.WrongNetwork) {\n openWrongNetModal()\n } else {\n closeWrongNetModal()\n handlePopoverClose()\n }\n }, [connectionStatus])\n\n const accountText = (): string => {\n if (connectionStatus === ConnectionStatus.LoggedOut) return 'Connect wallet'\n\n if (connectionStatus === ConnectionStatus.WrongNetwork) return 'Wrong Network'\n\n if (account) {\n // means connectionStatus === ConnectionStatus.LoggedIn\n return shortenString(account)\n }\n return 'Unlock your wallet'\n }\n\n const onAccountClicked = (event: React.MouseEvent): void | null => {\n if (connectionStatus === ConnectionStatus.WrongNetwork) return openWrongNetModal()\n\n if (connectionStatus === ConnectionStatus.LoggedOut) return handleAccountModalOpen()\n\n if (connectionStatus === ConnectionStatus.LoggedIn) return setAnchorEl(event.currentTarget)\n return null\n }\n\n return (\n \n \n {/* TODO: extract molecule */}\n \n \n {`You are successfully connected to ${networkInfo?.name}.`}\n \n \n \n \n \n )\n}\n\nexport default Account\n","import React, { FC } from 'react'\nimport {\n AppBar, Grid, ListItemIcon, Toolbar,\n} from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { NavLink } from 'react-router-dom'\nimport Typography from '@material-ui/core/Typography'\nimport { ActionHeaderItemProps, HeaderProps, NavItemProps } from './HeaderProps'\nimport { LogoNavbar } from '../../atoms'\nimport { colors, fonts, globalConstants } from '../../../theme'\nimport { removeEmptySpaces } from '../../../utils'\n\nconst useStyles = makeStyles((theme: Theme) => ({\n activeNavlink: {\n color: `${colors.white} !important`,\n fontWeight: fonts.weight.medium,\n },\n navLink: {\n alignItems: 'center',\n color: colors.white,\n display: 'flex',\n paddingLeft: theme.spacing(5),\n paddingRight: theme.spacing(5),\n textAlign: 'center',\n textDecoration: 'none',\n '&:hover': {\n color: colors.gray5,\n textDecoration: 'none',\n },\n },\n navLinkContainer: {\n display: 'flex',\n },\n root: {\n boxShadow: 'none',\n // this height needs to be equal to the marginTop of PageTemplate\n height: theme.spacing(globalConstants.headerHeight),\n },\n}))\n\nconst HeaderDesktop: FC = ({\n hreflogo, itemsStart, itemsEnd, login,\n}) => {\n const classes = useStyles()\n const Login = login\n\n return (\n \n \n \n \n \n \n \n \n \n {\n !!itemsStart.length\n && itemsStart.map((navItem: NavItemProps) => (\n \n \n {navItem.title}\n \n \n ))\n }\n \n \n {\n !!itemsEnd?.length\n && itemsEnd.map(({ icon, ...rest }: ActionHeaderItemProps) => (\n \n {icon}\n \n ))\n }\n \n \n \n \n \n \n \n )\n}\n\nexport default HeaderDesktop\n","import React, { FC, useState } from 'react'\nimport {\n AppBar,\n Divider,\n Drawer, Toolbar,\n IconButton, List, ListItem,\n ListItemText, ListItemIcon, Grid,\n} from '@material-ui/core'\nimport { NavLink } from 'react-router-dom'\nimport MenuIcon from '@material-ui/icons/Menu'\nimport ChevronLeftIcon from '@material-ui/icons/ChevronLeft'\nimport { Theme, createStyles, makeStyles } from '@material-ui/core/styles'\nimport { ActionHeaderItemProps, HeaderProps, NavItemProps } from './HeaderProps'\nimport { colors, globalConstants } from '../../../theme'\nimport { LogoNavbar } from '../../atoms'\nimport { removeEmptySpaces } from '../../../utils'\n\nconst drawerWidth = 240\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n drawerHeader: {\n display: 'flex',\n alignItems: 'center',\n padding: theme.spacing(0, 1),\n // necessary for content to be below app bar\n ...theme.mixins.toolbar,\n justifyContent: 'flex-end',\n },\n drawerPaper: {\n width: drawerWidth,\n },\n mobileAppBar: {\n boxShadow: 'none',\n // this height needs to be equal to the marginTop of PageTemplate\n height: theme.spacing(globalConstants.headerHeight),\n transition: theme.transitions.create(['margin', 'width'], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n },\n mobileAppBarShift: {\n width: `calc(100% - ${drawerWidth}px)`,\n marginLeft: drawerWidth,\n transition: theme.transitions.create(['margin', 'width'], {\n easing: theme.transitions.easing.easeOut,\n duration: theme.transitions.duration.enteringScreen,\n }),\n },\n mobileNavLink: {\n alignItems: 'center',\n color: colors.gray4,\n display: 'flex',\n textDecoration: 'none',\n width: '100%',\n '&:hover': {\n color: colors.gray5,\n textDecoration: 'none',\n },\n },\n mobileNavLinkActive: {\n color: `${colors.primary} !important`,\n },\n}))\n\nconst HeaderMobile: FC = ({\n hreflogo, itemsStart, itemsEnd, login: Login,\n}) => {\n const classes = useStyles()\n const [open, setOpen] = useState(false)\n\n const toggleDrawer = (isOpen: boolean) => (\n event: React.KeyboardEvent | React.MouseEvent,\n ): void => {\n if (\n event.type === 'keydown'\n && ((event as React.KeyboardEvent).key === 'Tab'\n || (event as React.KeyboardEvent).key === 'Shift')\n ) {\n return\n }\n setOpen(isOpen)\n }\n\n return (\n \n \n \n {!open && (\n \n \n \n \n \n \n \n \n \n \n \n \n {\n !!itemsEnd?.length\n && itemsEnd.map(({ icon, ...rest }: ActionHeaderItemProps) => (\n \n {icon}\n \n ))\n }\n \n \n \n \n \n )}\n \n \n \n
\n \n \n \n
\n \n \n {\n !!itemsStart.length\n && itemsStart.map((headerItem: NavItemProps) => (\n \n \n \n {headerItem.icon}\n \n \n \n
\n ))\n }\n
\n \n \n\n )\n}\n\nexport default HeaderMobile\n","import React, { FC } from 'react'\nimport Hidden from '@material-ui/core/Hidden'\nimport { HeaderProps } from './HeaderProps'\nimport HeaderDesktop from './HeaderDesktop'\nimport HeaderMobile from './HeaderMobile'\n\nconst Header: FC = (props) => (\n \n \n \n \n \n \n \n \n)\n\nexport default Header\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../../theme'\nimport { headerTongueImg } from '../../../assets/images'\n\nexport interface HeaderTongueProps {\n description: string\n titleLine1: string\n titleLine2: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n textContainer: {\n alignItems: 'center',\n backgroundColor: colors.primary,\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n },\n textContent: {\n color: colors.white,\n display: 'flex',\n flexDirection: 'column',\n textAlign: 'center',\n [theme.breakpoints.down('sm')]: {\n maxWidth: '90%',\n },\n [theme.breakpoints.up('md')]: {\n maxWidth: '65%',\n },\n [theme.breakpoints.up('xl')]: {\n maxWidth: '55%',\n },\n },\n titleContent: {\n marginBottom: theme.spacing(1),\n fontSize: theme.spacing(5),\n fontWeight: fonts.weight.regular,\n },\n tongueImg: {\n width: '100%',\n },\n}))\n\nconst HeaderTongue: FC = (\n { description, titleLine1, titleLine2 },\n) => {\n const classes = useStyles()\n\n return (\n \n
\n
\n \n {titleLine1}\n
\n {' '}\n {titleLine2}\n \n {description}\n
\n
\n \n
\n )\n}\n\nexport default HeaderTongue\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport FAQSection, { FAQSectionProps } from '../molecules/FAQSection'\nimport { colors } from '../../theme'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FAQPageTemplateProps {\n className?: string\n mainTitle: string\n questionsAndAnswers: FAQSectionProps[]\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n marginTop: theme.spacing(3),\n },\n container: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n [theme.breakpoints.up('md')]: {\n maxWidth: '80%',\n },\n },\n grayBackground: {\n backgroundColor: colors.gray1,\n },\n mainTitle: {\n fontSize: theme.typography.pxToRem(50),\n margin: theme.spacing(2, 0),\n },\n questionsSection: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n marginTop: theme.spacing(2),\n },\n}))\n\nconst FAQPageTemplate: FC = ({ className = '', mainTitle, questionsAndAnswers }) => {\n const classes = useStyles()\n return (\n
\n
\n {mainTitle}\n
\n {\n questionsAndAnswers.map((qAndA: FAQSectionProps, i) => (\n \n ))\n }\n
\n
\n
\n )\n}\n\nexport default FAQPageTemplate\n","import React, { FC, HTMLAttributes } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { globalConstants } from '../../theme'\n\nexport type PageTemplateProps = HTMLAttributes;\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n // as the header has fixed position, we need to match its height\n marginTop: theme.spacing(globalConstants.headerHeight),\n width: '100%',\n },\n}))\n\nconst PageTemplate: FC = ({ children, className = '', ...props }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default PageTemplate\n","import React, {\n Component, createContext, ReactNode,\n} from 'react'\nimport Web3 from 'web3'\nimport {\n getWeb3, getNetworkInfoFromWeb3, getAvailableProviders,\n} from '../services/Web3Service'\nimport NetworkInfo from '../models/NetworkInfo'\nimport ProviderInfo, { EProvider } from '../models/ProviderInfo'\n\nexport interface Web3ProviderProps {\n state: {\n provider?: EProvider\n web3?: Web3\n account?: string\n networkInfo?: NetworkInfo\n requiredNetworkId?: number\n }\n actions: {\n setProvider?: (\n provider: EProvider,\n onStateChanged?: (account?: string) => void\n ) => Promise\n onConnectedNetworkChange?: () => void\n onConnectedAccountChange?: () => void\n }\n requiredNetworkId?: number\n requiredChainId?: number\n availableProviders?: ProviderInfo[]\n}\n\nexport const defaultWeb3State: Web3ProviderState = {\n provider: undefined,\n web3: undefined,\n account: undefined,\n networkInfo: undefined,\n}\n\nexport const Web3Store = createContext({\n state: defaultWeb3State,\n actions: {\n setProvider: (): Promise => Promise.resolve(),\n onConnectedNetworkChange: (): any => 0,\n onConnectedAccountChange: (): any => 0,\n },\n requiredNetworkId: undefined,\n requiredChainId: undefined,\n})\n\ninterface Web3ProviderState {\n provider?: EProvider\n web3?: Web3\n account?: string\n networkInfo?: NetworkInfo\n}\n\nconst getAccountFromEthAccounts = (accounts: string[] | string): string | undefined => {\n let account: string\n\n if (Array.isArray(accounts)) [account] = accounts\n else account = accounts\n return account\n}\n\n/**\n * The provider will not read the account when a requiredNetworkId was provided\n * and it does not match the networkId of current networkInfo, same applies to\n * chainId. Nothing happens if the requiredNetworkId was not specified\n * @param requiredNetworkId given on the props of the provider\n * @param requiredChainId given on the props of the provider\n * @param networkInfo obtained from the wallet\n */\nconst shouldReadAccount = (\n requiredNetworkId?: number,\n requiredChainId?: number,\n networkInfo?: NetworkInfo,\n): boolean => {\n // the consumer did not provide enough information to validate the network, so we do not check\n if (!requiredNetworkId) return true\n\n if (requiredNetworkId === networkInfo?.networkId) {\n // only when chainId is provided we compare it\n if (requiredChainId) return requiredChainId === networkInfo?.chainId\n return true\n }\n return false\n}\n\nclass Web3Provider extends Component {\n private readonly requiredNetworkId?: number\n\n private readonly requiredChainId?: number\n\n private availableProviders?: ProviderInfo[]\n\n constructor(props: Web3ProviderProps) {\n super(props)\n this.state = defaultWeb3State\n this.requiredNetworkId = props.requiredNetworkId\n this.requiredChainId = props.requiredChainId\n this.onConnectedNetworkChange = props.actions.onConnectedNetworkChange\n this.onConnectedAccountChange = props.actions.onConnectedAccountChange\n this.setProvider = this.setProvider.bind(this)\n this.initialize()\n }\n\n private readonly onConnectedNetworkChange?: () => void\n\n private readonly onConnectedAccountChange?: () => void\n\n public async setProvider(provider: EProvider,\n onStateChanged?: (account?: string) => void): Promise {\n const web3 = await getWeb3(provider)\n const accounts = await web3.eth.getAccounts()\n const networkInfo = await getNetworkInfoFromWeb3(web3)\n // only validate requiredNetworkId and requiredChainId when are provided\n const shouldSetAccount = shouldReadAccount(this.requiredNetworkId, this.requiredChainId, networkInfo)\n\n const account = shouldSetAccount\n ? getAccountFromEthAccounts(accounts)\n : undefined\n\n this.setState(\n {\n web3,\n provider,\n account,\n networkInfo,\n },\n () => (onStateChanged && onStateChanged(account)),\n )\n }\n\n private initialize(): void {\n if (!window.ethereum) {\n return\n }\n this.availableProviders = getAvailableProviders()\n\n window.ethereum.autoRefreshOnNetworkChange = false\n // handle on networkChange\n window.ethereum.on('networkChanged', async (_netId) => {\n const { networkInfo } = this.state\n\n if (!networkInfo) return // wallet is not connected\n const { provider } = this.state\n const web3 = await getWeb3(provider)\n const accounts = await web3.eth.getAccounts()\n const newNetworkInfo = await getNetworkInfoFromWeb3(web3)\n\n // we do not want to set the account if we know it is the wrong network\n const shouldSetAccount = shouldReadAccount(\n this.requiredNetworkId,\n this.requiredChainId,\n newNetworkInfo,\n )\n const account = shouldSetAccount\n ? getAccountFromEthAccounts(accounts)\n : undefined\n\n this.setState(\n {\n networkInfo: newNetworkInfo,\n account,\n },\n () => this.onConnectedNetworkChange && this.onConnectedNetworkChange(),\n )\n })\n // handle on accountsChanged\n window.ethereum.on('accountsChanged', (accounts: string | string[]) => {\n const { networkInfo } = this.state\n\n if (!networkInfo) return // wallet is not connected\n // we only care about this change if it is on the right network\n // or if we can not validate the required network\n const shouldSetAccount = shouldReadAccount(\n this.requiredNetworkId, this.requiredChainId, networkInfo,\n )\n\n if (shouldSetAccount) {\n const account = getAccountFromEthAccounts(accounts)\n\n if (account) {\n this.setState({\n account,\n },\n () => this.onConnectedAccountChange\n && this.onConnectedAccountChange())\n }\n }\n })\n }\n\n public render(): ReactNode {\n const {\n provider,\n web3,\n account,\n networkInfo,\n } = this.state\n const {\n setProvider,\n onConnectedNetworkChange,\n onConnectedAccountChange,\n availableProviders,\n } = this\n\n const { children } = this.props\n\n return (\n \n {children}\n \n )\n }\n}\n\nexport default { Consumer: Web3Store.Consumer, Provider: Web3Provider }\n"],"names":["useStyles","makeStyles","block","width","noShadow","boxShadow","rounded","borderRadius","Button","className","shadow","children","rest","classes","React","MUIButton","trim","colors","black","primary","darkBlue","gray1","gray2","gray3","gray4","gray5","gray6","transparent","white","fonts","family","size","tiny","small","normal","medium","subtitleSmall","subtitleBig","weight","light","regular","bold","globalConstants","headerHeight","theme","createMuiTheme","palette","main","secondary","typography","fontFamily","button","textTransform","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","body1","fontWeight","props","overrides","MuiButton","root","MuiFormControlLabel","color","MuiSlider","rail","height","opacity","track","thumb","marginLeft","MuiTextField","createStyles","unCheckedIcon","checkedIcon","Checkbox","checked","isChecked","setIsChecked","useState","handleChange","event","newChecked","onChange","MUICheckbox","CheckBoxSharp","icon","CheckBoxOutlineBlankSharp","require","EProvider","getProviderInfo","eProvider","METAMASK","name","iconImg","metaMaskIconImg","NIFTY","niftyIconImg","LEDGER","TREZOR","TRUST","GO_WALLET","ALPHA_WALLET","STATUS","COINBASE","MIST","PARITY","INFURA","LOCAL","Error","padding","margin","content","display","alignItems","maxHeight","spacing","justifyContent","imageWrapper","marginRight","LoginOption","onClick","providerInfo","providerContent","src","alt","handleOnClick","window","open","variant","Tooltip","arrow","title","Logo","logoFullWhite","LogoNavbar","fontSize","pxToRem","selected","borderBottom","StyledNavTab","Tab","component","NavLink","disableRipple","defaultonCorrectNetworkMessage","deaulftonNetworkMismatchMessage","defaultNoNetworkMessage","NetworkStatus","getNetworkStatus","currentNetworkId","requiredNetworkId","NO_NETWORK","CORRECT_NETWORK","NETWORK_MISSMATCH","NetworkIndicator","iconClassName","onCorrectNetworkMessage","onNetworkMismatchMessage","noNetworkMessage","networkStatus","iconPerNetworkStatus","Map","set","WarningIcon","style","yellow","ErrorIcon","CheckCircleOutlineOutlinedIcon","green","get","paper","backgroundColor","background","border","shadows","left","minWidth","position","top","transform","Modal","MUIModal","ModalHeader","ModalTitle","Typography","borderTop","paddingTop","ModalFooter","ModalBody","overlay","zIndex","spinner","animation","WithSpinner","WrappedComponent","Spinner","isLoading","logoBlueIcon","heading","accordionSummary","Accordion","expanded","id","isExpanded","setIsExpanded","MUIAccordion","AccordionSummary","expandIcon","ExpandMoreIcon","AccordionDetails","AccountModal","setProvider","availableProviders","onClose","onProviderSet","Fragment","length","map","key","tooltipTitle","CopyTextTooltip","displayElement","fullText","isCopied","setIsCopied","tooltipContent","FileCopyIcon","interactive","navigator","clipboard","writeText","then","headingExpanded","headingCollapsed","panelDetails","answerContainer","breakpoints","up","maxWidth","answerText","FAQSection","initiallyExpanded","question","answer","RemoveIcon","AddIcon","LabeledCheckbox","labelText","labelClassName","FormControlLabel","label","control","FilterCheckboxCard","items","item","i","shortenString","str","largerThan","charsShownCount","substr","removeEmptySpaces","replace","maxSupportedNumber","minSupportedNumber","validatedNumber","num","flexDirection","footerLink","textDecoration","footerTitle","textAlign","FooterColumn","links","link","isExternal","href","to","toString","target","ModalDialogue","footer","input","paddingLeft","inputContainer","paddingRight","units","unitsContainer","alignSelf","UnitsInput","maxValue","minValue","value","step","handleOnBlur","handleOnChange","Grid","container","xs","Input","onBlur","type","fullWidth","inputProps","min","max","inputsContainer","toContainer","RangeSliderWithInputs","values","start","startValue","end","endValue","unit","handleStartInputChange","newStartValue","Number","handleEndInputChange","newEndValue","handleSliderChange","_","newSliderValue","handleStartValueBlur","handleEndValueBlur","getCommonInputValues","Slider","ShortenTextTooltip","maxLength","indicator","StyledTabs","Tabs","a11yProps","index","minHeight","overflow","tabContainer","tab","outlineStyle","tabIndicator","tabSelected","SwitchTabs","label1","label2","controlledValue","newValue","MUITabs","TabIndicatorProps","MUITab","TooltipIconButton","iconButtonProps","IconButton","boxContainer","marginTop","loaderContainer","WrongNetworkModal","currentNetworkName","requiredNetworkName","gutterBottom","align","Box","sm","CircularProgress","copyright","copyrightContent","footerContainer","paddingBottom","footerContent","linksColumn","marginBottom","logoColumn","tongue","borderTopLeftRadius","borderTopRightRadius","Footer","copyrightText","linksColumns","direction","md","lg","logoBlackAndBlue","linkColumn","ConnectionStatus","getWeb3","provider","Promise","resolve","reject","ethereum","web3","Web3","enable","catch","currentProvider","localhostProvider","providers","HttpProvider","getNetworkInfo","networkId","chainId","networksData","find","n","getNetworkInfoFromWeb3","networkInfo","error","eth","net","getId","getChainId","getAvailableProviders","result","undefined","isMetaMask","push","isNiftyWallet","isTrust","isGoWallet","isAlphaWallet","isStatus","isToshi","__CIPHER__","CIPHER","constructor","host","indexOf","getConnectionStatus","account","LoggedOut","WrongNetwork","LoggedIn","WalletLocked","accountText","networkIndicator","rightNetwork","Account","modalInitiallyOpened","accountModalOpen","setAccountModalOpen","handleAccountModalClose","handleAccountModalOpen","wrongNetModalOpen","setWrongNetModalOpen","openWrongNetModal","closeWrongNetModal","connectionStatus","anchorEl","setAnchorEl","popoverOpen","Boolean","handlePopoverClose","useEffect","onAccountClicked","currentTarget","Popover","anchorOrigin","vertical","horizontal","transformOrigin","activeNavlink","navLink","navLinkContainer","HeaderDesktop","hreflogo","itemsStart","itemsEnd","login","Login","AppBar","Toolbar","justify","navItem","activeClassName","alignContent","ListItemIcon","drawerWidth","drawerHeader","mixins","toolbar","drawerPaper","mobileAppBar","transition","transitions","create","easing","sharp","duration","leavingScreen","mobileAppBarShift","easeOut","enteringScreen","mobileNavLink","mobileNavLinkActive","HeaderMobile","setOpen","toggleDrawer","isOpen","role","onKeyDown","MenuIcon","Drawer","anchor","ChevronLeftIcon","Divider","List","headerItem","ListItem","ListItemText","Header","Hidden","smDown","mdUp","textContainer","textContent","down","titleContent","tongueImg","HeaderTongue","description","titleLine1","titleLine2","headerTongueImg","grayBackground","mainTitle","questionsSection","FAQPageTemplate","questionsAndAnswers","qAndA","PageTemplate","defaultWeb3State","Web3Store","createContext","state","actions","onConnectedNetworkChange","onConnectedAccountChange","requiredChainId","getAccountFromEthAccounts","accounts","Array","isArray","shouldReadAccount","Web3Provider","Component","bind","initialize","onStateChanged","getAccounts","shouldSetAccount","setState","autoRefreshOnNetworkChange","on","_netId","newNetworkInfo","render","Provider","Consumer"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SC5iBeC,QACdC,WAAsBxS,SAAS,CAACG;AAEhC,SAAO,IAAIsS,OAAJ,CAAkB,CAACC,OAAD,EAAUC,MAAV;AACvB,YAAQH,QAAR;AAEE,WAAKxS,SAAS,CAACO,KAAf;AACA,WAAKP,SAAS,CAACG,QAAf;AAAyB;AAEvB,cAAImC,MAAM,CAACsQ,QAAX,EAAqB;AACnB,kBAAMC,IAAI,GAAG,IAAIC,IAAJ,CAASxQ,MAAM,CAACsQ,QAAhB,CAAb;AACAtQ,YAAAA,MAAM,CAACsQ,QAAP,CACGG,MADH,GAEGhK,IAFH,CAEQ,MAAM2J,OAAO,CAACG,IAAD,CAFrB,EAGGG,KAHH,CAGSL,MAHT;AAID,WAND,MAMO,IAAIrQ,MAAM,CAACuQ,IAAX,EAAiB;AAEtBH,YAAAA,OAAO,CAAC,IAAII,IAAJ,CAASxQ,MAAM,CAACuQ,IAAP,CAAYI,eAArB,CAAD,CAAP;AACD,WAHM,MAGAN,MAAM,CAAC,IAAIvR,KAAJ,CAAU,wBAAV,CAAD,CAAN;;AACP;AACD;;AAGD,WAAKpB,SAAS,CAACmB,KAAf;AAAsB;AACpB,gBAAM+R,iBAAiB,GAAG,IAAIJ,IAAI,CAACK,SAAL,CAAeC,YAAnB,CACxB,yBADwB,CAA1B;AAGAV,UAAAA,OAAO,CAAC,IAAII,IAAJ,CAASI,iBAAT,CAAD,CAAP;AACA;AACD;;AAGD;AAAS;AACPP,UAAAA,MAAM,CACJ,IAAIvR,KAAJ,yDAC0DoR,UAD1D,CADI,CAAN;AAKA;AACD;AAnCH;AAqCD,GAtCM,CAAP;AAuCD;AAED,AAAO,MAAMa,cAAc,GAAG,CAC5BC,SAD4B,EAE5BC,OAF4B,KAGAC,YAAY,CAACC,IAAb,CAAmBC,CAAD,IAAQH,OAAO,GAC3DG,CAAC,CAACJ,SAAF,KAAgBA,SAAhB,IAA6BI,CAAC,CAACH,OAAF,KAAcA,OADgB,GAE3DG,CAAC,CAACJ,SAAF,KAAgBA,SAFU,CAHvB;AAOP,AAAO,MAAMK,sBAAsB,aACjCd,IADiC;AAAA;;AAajC,UAAIe,WAAJ;;AAEA,UAAIN,SAAJ,EAAe;AACb,YAAI;AACFM,UAAAA,WAAW,GAAGP,cAAc,CAACC,SAAD,EAAYC,OAAZ,CAA5B;AACD,SAFD,CAEE,OAAOM,KAAP,EAAc;AACjB;;AACD,aAAOD,WAAP;;;AAhBA,QAAIN,SAAJ;AACA,QAAIC,OAAJ;;sCACI;AAAA,6BACgBV,IAAI,CAACiB,GAAL,CAASC,GAAT,CAAaC,KAAb,EADhB;AACFV,QAAAA,SAAS,sBAAT;;AADE;AAAA,cAGEA,SAHF;AAAA,mCAIgBT,IAAI,CAACiB,GAAL,CAASG,UAAT,EAJhB;AAIAV,cAAAA,OAAO,uBAAP;AAJA;AAAA;AAAA;;AAAA;AAAA;AAMH;;;AASF,GArBkC;AAAA;AAAA;AAAA,CAA5B;AAuBP,AAAO,MAAMW,qBAAqB,GAAG;AACnC,QAAMC,MAAM,GAAmB,EAA/B;AAEA,MAAI,CAAC7R,MAAM,CAACuQ,IAAZ,EAAkB,OAAOuB,SAAP;AAClB,QAAMnB,eAAe,GAAG3Q,MAAM,CAACuQ,IAAP,CAAYI,eAApC;;AAEA,MAAIA,eAAe,CAACoB,UAApB,EAAgC;AAE9BF,IAAAA,MAAM,CAACG,IAAP,CACErB,eAAe,CAACsB,aAAhB,GACItU,eAAe,CAACD,SAAS,CAACO,KAAX,CADnB,GAEIN,eAAe,CAACD,SAAS,CAACG,QAAX,CAHrB;AAKD;;AAED,MAAI8S,eAAe,CAACuB,OAApB,EAA6BL,MAAM,CAACG,IAAP,CAAYrU,eAAe,CAACD,SAAS,CAACW,KAAX,CAA3B;AAE7B,MAAIsS,eAAe,CAACwB,UAApB,EAAgCN,MAAM,CAACG,IAAP,CAAYrU,eAAe,CAACD,SAAS,CAACY,SAAX,CAA3B;AAEhC,MAAIqS,eAAe,CAACyB,aAApB,EAAmCP,MAAM,CAACG,IAAP,CAAYrU,eAAe,CAACD,SAAS,CAACa,YAAX,CAA3B;AAEnC,MAAIoS,eAAe,CAAC0B,QAApB,EAA8BR,MAAM,CAACG,IAAP,CAAYrU,eAAe,CAACD,SAAS,CAACc,MAAX,CAA3B;AAE9B,MAAImS,eAAe,CAAC2B,OAApB,EAA6BT,MAAM,CAACG,IAAP,CAAYrU,eAAe,CAACD,SAAS,CAACe,QAAX,CAA3B;AAG7B,MAAI,OAAQuB,MAAc,CAACuS,UAAvB,KAAsC,WAA1C,EAAuDV,MAAM,CAACG,IAAP,CAAYrU,eAAe,CAACD,SAAS,CAAC8U,MAAX,CAA3B;AAEvD,MAAI7B,eAAe,CAAC8B,WAAhB,CAA4B3U,IAA5B,KAAqC,kBAAzC,EAA6D+T,MAAM,CAACG,IAAP,CAAYrU,eAAe,CAACD,SAAS,CAACgB,IAAX,CAA3B;AAE7D,MAAIiS,eAAe,CAAC8B,WAAhB,CAA4B3U,IAA5B,KAAqC,mBAAzC,EAA8D+T,MAAM,CAACG,IAAP,CAAYrU,eAAe,CAACD,SAAS,CAACiB,MAAX,CAA3B;AAE9D,MAAIgS,eAAe,CAAC+B,IAAhB,IAAwB/B,eAAe,CAAC+B,IAAhB,CAAqBC,OAArB,CAA6B,QAA7B,MAA2C,CAAC,CAAxE,EAA2Ed,MAAM,CAACG,IAAP,CAAYrU,eAAe,CAACD,SAAS,CAACkB,MAAX,CAA3B;AAE3E,MAAI+R,eAAe,CAAC+B,IAAhB,IAAwB/B,eAAe,CAAC+B,IAAhB,CAAqBC,OAArB,CAA6B,WAA7B,MAA8C,CAAC,CAA3E,EAA8Ed,MAAM,CAACG,IAAP,CAAYrU,eAAe,CAACD,SAAS,CAACmB,KAAX,CAA3B;AAE9E,SAAOgT,MAAP;AACD,CArCM;AAuCP,AAAO,MAAMe,mBAAmB,GAAG,CACjCrC,IADiC,EAEjC/O,iBAFiC,EAGjCD,gBAHiC,EAIjCsR,OAJiC;AAMjC,MAAI,CAACtC,IAAL,EAAW,OAAOP,kBAAgB,CAAC8C,SAAxB;;AAEX,MAAIvR,gBAAgB,KAAKC,iBAAzB,EAA4C;AAC1C,WAAOwO,kBAAgB,CAAC+C,YAAxB;AACD;;AAED,MAAIF,OAAJ,EAAa;AACX,WAAO7C,kBAAgB,CAACgD,QAAxB;AACD;;AACD,SAAOhD,kBAAgB,CAACiD,YAAxB;AACD,CAhBM;;ACrGP,MAAMjb,WAAS,GAAGC,UAAU,CAAE2C,KAAD,KAAmB;AAC9CsY,EAAAA,WAAW,EAAE;AACXzS,IAAAA,QAAQ,EAAE5G,KAAK,CAACE,IAAN,CAAWC,IADV;AAEXiP,IAAAA,SAAS,EAAE;AAFA,GADiC;AAK9C9N,EAAAA,MAAM,EAAE;AACN4H,IAAAA,MAAM,eAAe9J,MAAM,CAACW,OADtB;AAEN,eAAW;AACTmJ,MAAAA,MAAM,eAAe9J,MAAM,CAACU;AADnB;AAFL,GALsC;AAW9CwZ,EAAAA,gBAAgB,EAAE;AAChB3T,IAAAA,WAAW,EAAE5E,KAAK,CAACyE,OAAN,CAAc,CAAd;AADG,GAX4B;AAc9C+T,EAAAA,YAAY,EAAE;AACZrU,IAAAA,OAAO,EAAEnE,KAAK,CAACyE,OAAN,CAAc,CAAd;AADG;AAdgC,CAAnB,CAAD,CAA5B;;AAmBA,MAAMgU,OAAO,GAAsB1X,KAAD;AAChC,QAAM;AACJ4U,IAAAA,IADI;AAEJe,IAAAA,WAFI;AAGJuB,IAAAA,OAHI;AAIJxN,IAAAA,WAJI;AAKJC,IAAAA,kBALI;AAMJ9D,IAAAA,iBANI;AAOJM,IAAAA,uBAPI;AAQJC,IAAAA,wBARI;AASJC,IAAAA,gBATI;AAUJuM,IAAAA,mBAVI;AAWJ+E,IAAAA,oBAAoB,GAAG;AAXnB,MAYF3X,KAZJ;AAaA,QAAM9C,OAAO,GAAGb,WAAS,EAAzB;AAEA,QAAM,CAACub,gBAAD,EAAmBC,mBAAnB,IAA0CxW,QAAQ,CAACsW,oBAAD,CAAxD;;AACA,QAAMG,uBAAuB,GAAG,MAAYD,mBAAmB,CAAC,KAAD,CAA/D;;AACA,QAAME,sBAAsB,GAAG,MAAYF,mBAAmB,CAAC,IAAD,CAA9D;;AACA,QAAM,CAACG,iBAAD,EAAoBC,oBAApB,IAA4C5W,QAAQ,CAAC,KAAD,CAA1D;;AACA,QAAM6W,iBAAiB,GAAG,MAAYD,oBAAoB,CAAC,IAAD,CAA1D;;AACA,QAAME,kBAAkB,GAAG,MAAYF,oBAAoB,CAAC,KAAD,CAA3D;;AACA,QAAMG,gBAAgB,GAAqBnB,mBAAmB,CAACrC,IAAD,EAAO/O,iBAAP,EAA0B8P,WAA1B,aAA0BA,WAA1B,uBAA0BA,WAAW,CAAEN,SAAvC,EAAkD6B,OAAlD,CAA9D;AAGA,QAAM,CAACmB,QAAD,EAAWC,WAAX,IAA0Bnb,cAAK,CAACkE,QAAN,CAAyC,IAAzC,CAAhC;AAEA,QAAMkX,WAAW,GAAGC,OAAO,CAACH,QAAD,CAA3B;AACA,QAAMpP,EAAE,GAAGsP,WAAW,GAAG,mBAAH,GAAyBpC,SAA/C;;AAEA,QAAMsC,kBAAkB,GAAG;AACzBH,IAAAA,WAAW,CAAC,IAAD,CAAX;AACD,GAFD;;AAIAI,EAAAA,SAAS,CAAC;AACR,QAAIN,gBAAgB,KAAK/D,kBAAgB,CAAC+C,YAA1C,EAAwD;AACtDc,MAAAA,iBAAiB;AAClB,KAFD,MAEO;AACLC,MAAAA,kBAAkB;AAClBM,MAAAA,kBAAkB;AACnB;AACF,GAPQ,EAON,CAACL,gBAAD,CAPM,CAAT;;AASA,QAAMb,WAAW,GAAG;AAClB,QAAIa,gBAAgB,KAAK/D,kBAAgB,CAAC8C,SAA1C,EAAqD,OAAO,gBAAP;AAErD,QAAIiB,gBAAgB,KAAK/D,kBAAgB,CAAC+C,YAA1C,EAAwD,OAAO,eAAP;;AAExD,QAAIF,OAAJ,EAAa;AAEX,aAAO3K,aAAa,CAAC2K,OAAD,CAApB;AACD;;AACD,WAAO,oBAAP;AACD,GAVD;;AAYA,QAAMyB,gBAAgB,GAAIpX,KAAD;AACvB,QAAI6W,gBAAgB,KAAK/D,kBAAgB,CAAC+C,YAA1C,EAAwD,OAAOc,iBAAiB,EAAxB;AAExD,QAAIE,gBAAgB,KAAK/D,kBAAgB,CAAC8C,SAA1C,EAAqD,OAAOY,sBAAsB,EAA7B;AAErD,QAAIK,gBAAgB,KAAK/D,kBAAgB,CAACgD,QAA1C,EAAoD,OAAOiB,WAAW,CAAC/W,KAAK,CAACqX,aAAP,CAAlB;AACpD,WAAO,IAAP;AACD,GAPD;;AASA,SACEzb,4BAAA,CAACA,cAAK,CAAC2M,QAAP,MAAA,EACE3M,4BAAA,CAACN,MAAD;AAAQkH,IAAAA,OAAO,EAAE4U;AAAkB7b,IAAAA,SAAS,EAAEI,OAAO,CAACsC;AAAQ+E,IAAAA,OAAO,EAAC;AAAYlE,IAAAA,KAAK,EAAC;AAAU1D,IAAAA,OAAO;GAAzG,EAEI,CAAC,CAACkJ,iBAAF,IACE1I,4BAAA,CAAC8I,gBAAD;AACEC,IAAAA,aAAa,EAAEhJ,OAAO,CAACsa;AACvB5R,IAAAA,gBAAgB,EAAE+P,WAAF,aAAEA,WAAF,uBAAEA,WAAW,CAAEN;AAC/BxP,IAAAA,iBAAiB,EAAEA;AACnBM,IAAAA,uBAAuB,EAAEA;AACzBC,IAAAA,wBAAwB,EAAEA;AAC1BC,IAAAA,gBAAgB,EAAEA;GANpB,CAHN,EAaElJ,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,EAAEI,OAAO,CAACqa;GAA/B,EACGA,WAAW,EADd,CAbF,CADF,EAmBEpa,4BAAA,CAAC0b,OAAD;AACE5P,IAAAA,EAAE,EAAEA;AACJ3E,IAAAA,IAAI,EAAEiU;AACNF,IAAAA,QAAQ,EAAEA;AACVzO,IAAAA,OAAO,EAAE6O;AACTK,IAAAA,YAAY,EAAE;AACZC,MAAAA,QAAQ,EAAE,QADE;AAEZC,MAAAA,UAAU,EAAE;AAFA;AAIdC,IAAAA,eAAe,EAAE;AACfF,MAAAA,QAAQ,EAAE,KADK;AAEfC,MAAAA,UAAU,EAAE;AAFG;GATnB,EAcE7b,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,EAAEI,OAAO,CAACua;GAA/B,uCACwC9B,WAArC,aAAqCA,WAArC,uBAAqCA,WAAW,CAAExT,OADrD,CAdF,CAnBF,EAqCEhF,4BAAA,CAACsM,YAAD;AACEnF,IAAAA,IAAI,EAAEsT;AACNhO,IAAAA,OAAO,EAAEkO;AACTlD,IAAAA,IAAI,EAAEA;AACN/K,IAAAA,aAAa,EAAEiO;AACfpO,IAAAA,WAAW,EAAEA;AACbC,IAAAA,kBAAkB,EAAEA;GANtB,CArCF,EA6CExM,4BAAA,CAACuV,iBAAD;AACEpO,IAAAA,IAAI,EAAE0T;AACNpO,IAAAA,OAAO,EAAEuO;AACTvF,IAAAA,mBAAmB,EAAEA;AACrBD,IAAAA,kBAAkB,EAAEgD,WAAF,aAAEA,WAAF,uBAAEA,WAAW,CAAExT;GAJnC,CA7CF,CADF;AAsDD,CAtHD;;ACnCA,MAAM9F,WAAS,GAAGC,UAAU,CAAE2C,KAAD,KAAmB;AAC9Cia,EAAAA,aAAa,EAAE;AACb7Y,IAAAA,KAAK,KAAK/C,MAAM,CAACW,kBADJ;AAEb8B,IAAAA,UAAU,EAAE7B,KAAK,CAACS,MAAN,CAAaH;AAFZ,GAD+B;AAK9C2a,EAAAA,OAAO,EAAE;AACP3V,IAAAA,UAAU,EAAE,QADL;AAEPnD,IAAAA,KAAK,EAAE/C,MAAM,CAACW,KAFP;AAGPsF,IAAAA,OAAO,EAAE,MAHF;AAIP2K,IAAAA,WAAW,EAAEjP,KAAK,CAACyE,OAAN,CAAc,CAAd,CAJN;AAKP0K,IAAAA,YAAY,EAAEnP,KAAK,CAACyE,OAAN,CAAc,CAAd,CALP;AAMP4J,IAAAA,SAAS,EAAE,QANJ;AAOPF,IAAAA,cAAc,EAAE,MAPT;AAQP,eAAW;AACT/M,MAAAA,KAAK,EAAE/C,MAAM,CAACQ,KADL;AAETsP,MAAAA,cAAc,EAAE;AAFP;AARJ,GALqC;AAkB9CgM,EAAAA,gBAAgB,EAAE;AAChB7V,IAAAA,OAAO,EAAE;AADO,GAlB4B;AAqB9CpD,EAAAA,IAAI,EAAE;AACJzD,IAAAA,SAAS,EAAE,MADP;AAGJ8D,IAAAA,MAAM,EAAEvB,KAAK,CAACyE,OAAN,CAAc3E,eAAe,CAACC,YAA9B;AAHJ;AArBwC,CAAnB,CAAD,CAA5B;;AA4BA,MAAMqa,aAAa,GAAoB,CAAC;AACtCC,EAAAA,QADsC;AAC5BC,EAAAA,UAD4B;AAChBC,EAAAA,QADgB;AACNC,EAAAA;AADM,CAAD;AAGrC,QAAMvc,OAAO,GAAGb,WAAS,EAAzB;AACA,QAAMqd,KAAK,GAAGD,KAAd;AAEA,SACEtc,4BAAA,CAACwc,MAAD;AAAQnS,IAAAA,QAAQ,EAAC;AAAQ1K,IAAAA,SAAS,EAAEI,OAAO,CAACiD;GAA5C,EACEhD,4BAAA,CAACyc,OAAD,MAAA,EACEzc,4BAAA,CAAC4R,MAAD;AACEC,IAAAA,SAAS;GADX,EAGE7R,4BAAA,CAAC4R,MAAD;AAAM1C,IAAAA,IAAI;AAAC4C,IAAAA,EAAE,EAAE;GAAf,EACE9R,4BAAA,CAACkI,OAAD;AAASuI,IAAAA,EAAE,EAAE0L;GAAb,EACEnc,4BAAA,CAAC0H,UAAD,MAAA,CADF,CADF,CAHF,EAQE1H,4BAAA,CAAC4R,MAAD;AACE1C,IAAAA,IAAI;AACJ4C,IAAAA,EAAE,EAAE;AACJD,IAAAA,SAAS;AACT6K,IAAAA,OAAO,EAAC;GAJV,EAOE,CAAC,CAACN,UAAU,CAACxP,MAAb,IACGwP,UAAU,CAACvP,GAAX,CAAgB8P,OAAD,IAChB3c,4BAAA,CAAC4K,UAAD;AACEjL,IAAAA,SAAS,EAAEI,OAAO,CAACkc;AACnBnP,IAAAA,GAAG,QAAQ2C,iBAAiB,CAACkN,OAAO,CAACpV,KAAT;GAF9B,EAIEvH,4BAAA,CAACkI,OAAD;AACEvI,IAAAA,SAAS,EAAEI,OAAO,CAACic;AACnBY,IAAAA,eAAe,EAAE7c,OAAO,CAACgc;KACrBY,QAHN,EAKGA,OAAO,CAACpV,KALX,CAJF,CADC,CARL,CARF,EAgCEvH,4BAAA,CAAC4R,MAAD;AACE1C,IAAAA,IAAI;AACJ4C,IAAAA,EAAE,EAAE;AACJD,IAAAA,SAAS;AACT6K,IAAAA,OAAO,EAAC;AACRG,IAAAA,YAAY,EAAC;GALf,EAQE,CAAC,EAACR,QAAD,aAACA,QAAD,uBAACA,QAAQ,CAAEzP,MAAX,CAAD,IACGyP,QAAQ,CAACxP,GAAT,CAAa,CAAC;AAAEpI,IAAAA,IAAF;AAAQ,OAAG3E;AAAX,GAAD,KACdE,4BAAA,CAAC8c,YAAD;AAAchQ,IAAAA,GAAG,EAAErI,IAAI,CAACqI;KAAShN,KAAjC,EACG2E,IADH,CADC,CATL,CAhCF,EAgDEzE,4BAAA,CAAC4R,MAAD;AACE1C,IAAAA,IAAI;AACJ2C,IAAAA,SAAS;AACTC,IAAAA,EAAE,EAAE;AACJ+K,IAAAA,YAAY,EAAC;GAJf,EAME7c,4BAAA,CAACuc,KAAD,MAAA,CANF,CAhDF,CADF,CADF,CADF;AA+DD,CArED;;ACvBA,MAAMQ,WAAW,GAAG,GAApB;AAEA,MAAM7d,WAAS,GAAGC,UAAU,CAAE2C,KAAD,IAAkB6B,cAAY,CAAC;AAC1DqZ,EAAAA,YAAY,EAAE;AACZ5W,IAAAA,OAAO,EAAE,MADG;AAEZC,IAAAA,UAAU,EAAE,QAFA;AAGZJ,IAAAA,OAAO,EAAEnE,KAAK,CAACyE,OAAN,CAAc,CAAd,EAAiB,CAAjB,CAHG;AAKZ,OAAGzE,KAAK,CAACmb,MAAN,CAAaC,OALJ;AAMZ1W,IAAAA,cAAc,EAAE;AANJ,GAD4C;AAS1D2W,EAAAA,WAAW,EAAE;AACX9d,IAAAA,KAAK,EAAE0d;AADI,GAT6C;AAY1DK,EAAAA,YAAY,EAAE;AACZ7d,IAAAA,SAAS,EAAE,MADC;AAGZ8D,IAAAA,MAAM,EAAEvB,KAAK,CAACyE,OAAN,CAAc3E,eAAe,CAACC,YAA9B,CAHI;AAIZwb,IAAAA,UAAU,EAAEvb,KAAK,CAACwb,WAAN,CAAkBC,MAAlB,CAAyB,CAAC,QAAD,EAAW,OAAX,CAAzB,EAA8C;AACxDC,MAAAA,MAAM,EAAE1b,KAAK,CAACwb,WAAN,CAAkBE,MAAlB,CAAyBC,KADuB;AAExDC,MAAAA,QAAQ,EAAE5b,KAAK,CAACwb,WAAN,CAAkBI,QAAlB,CAA2BC;AAFmB,KAA9C;AAJA,GAZ4C;AAqB1DC,EAAAA,iBAAiB,EAAE;AACjBve,IAAAA,KAAK,iBAAiB0d,gBADL;AAEjBtZ,IAAAA,UAAU,EAAEsZ,WAFK;AAGjBM,IAAAA,UAAU,EAAEvb,KAAK,CAACwb,WAAN,CAAkBC,MAAlB,CAAyB,CAAC,QAAD,EAAW,OAAX,CAAzB,EAA8C;AACxDC,MAAAA,MAAM,EAAE1b,KAAK,CAACwb,WAAN,CAAkBE,MAAlB,CAAyBK,OADuB;AAExDH,MAAAA,QAAQ,EAAE5b,KAAK,CAACwb,WAAN,CAAkBI,QAAlB,CAA2BI;AAFmB,KAA9C;AAHK,GArBuC;AA6B1DC,EAAAA,aAAa,EAAE;AACb1X,IAAAA,UAAU,EAAE,QADC;AAEbnD,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KAFD;AAGb0F,IAAAA,OAAO,EAAE,MAHI;AAIb6J,IAAAA,cAAc,EAAE,MAJH;AAKb5Q,IAAAA,KAAK,EAAE,MALM;AAMb,eAAW;AACT6D,MAAAA,KAAK,EAAE/C,MAAM,CAACQ,KADL;AAETsP,MAAAA,cAAc,EAAE;AAFP;AANE,GA7B2C;AAwC1D+N,EAAAA,mBAAmB,EAAE;AACnB9a,IAAAA,KAAK,KAAK/C,MAAM,CAACE;AADE;AAxCqC,CAAD,CAA/B,CAA5B;;AA6CA,MAAM4d,YAAY,GAAoB,CAAC;AACrC9B,EAAAA,QADqC;AAC3BC,EAAAA,UAD2B;AACfC,EAAAA,QADe;AACLC,EAAAA,KAAK,EAAEC;AADF,CAAD;AAGpC,QAAMxc,OAAO,GAAGb,WAAS,EAAzB;AACA,QAAM,CAACiI,IAAD,EAAO+W,OAAP,IAAkBha,QAAQ,CAAC,KAAD,CAAhC;;AAEA,QAAMia,YAAY,GAAIC,MAAD,IACnBha,KADwC;AAGxC,QACEA,KAAK,CAAC6N,IAAN,KAAe,SAAf,KACK7N,KAA6B,CAAC0I,GAA9B,KAAsC,KAAtC,IACC1I,KAA6B,CAAC0I,GAA9B,KAAsC,OAF5C,CADF,EAIE;AACA;AACD;;AACDoR,IAAAA,OAAO,CAACE,MAAD,CAAP;AACD,GAXD;;AAaA,SACEpe,4BAAA,MAAA;AACEqe,IAAAA,IAAI,EAAC;AACLC,IAAAA,SAAS,EAAEH,YAAY,CAAC,KAAD;GAFzB,EAIEne,4BAAA,CAACwc,MAAD;AACEnS,IAAAA,QAAQ,EAAC;AACT1K,IAAAA,SAAS,KACJI,OAAO,CAACqd,gBAAgBjW,IAAI,GAAGpH,OAAO,CAAC6d,iBAAX,GAA+B,IAA9D,CAAmE1d,IAAnE;GAHJ,EAMEF,4BAAA,CAACyc,OAAD,MAAA,EACG,CAACtV,IAAD,IACCnH,4BAAA,CAAC4R,MAAD;AAAMC,IAAAA,SAAS;GAAf,EACE7R,4BAAA,CAAC4R,MAAD;AAAM1C,IAAAA,IAAI;AAAC4C,IAAAA,EAAE,EAAE;GAAf,EACE9R,4BAAA,CAACmV,YAAD;AACEjS,IAAAA,KAAK,EAAC;kBACK;AACX0D,IAAAA,OAAO,EAAEuX,YAAY,CAAC,IAAD;GAHvB,EAKEne,4BAAA,CAACue,QAAD,MAAA,CALF,CADF,CADF,EAUEve,4BAAA,CAAC4R,MAAD;AAAM1C,IAAAA,IAAI;AAAC4C,IAAAA,EAAE,EAAE;GAAf,EACE9R,4BAAA,CAACkI,OAAD;AAASuI,IAAAA,EAAE,EAAE0L;GAAb,EACEnc,4BAAA,CAAC0H,UAAD,MAAA,CADF,CADF,CAVF,EAeE1H,4BAAA,CAAC4R,MAAD;AACE1C,IAAAA,IAAI;AACJ4C,IAAAA,EAAE,EAAE;AACJD,IAAAA,SAAS;AACT6K,IAAAA,OAAO,EAAC;AACRG,IAAAA,YAAY,EAAC;GALf,EAQF,CAAC,EAACR,QAAD,aAACA,QAAD,uBAACA,QAAQ,CAAEzP,MAAX,CAAD,IACGyP,QAAQ,CAACxP,GAAT,CAAa,CAAC;AAAEpI,IAAAA,IAAF;AAAQ,OAAG3E;AAAX,GAAD,KACdE,4BAAA,CAAC8c,YAAD;AAAchQ,IAAAA,GAAG,EAAErI,IAAI,CAACqI;KAAShN,KAAjC,EACG2E,IADH,CADC,CATD,CAfF,EA+BEzE,4BAAA,CAAC4R,MAAD;AAAM1C,IAAAA,IAAI;AAAC4C,IAAAA,EAAE,EAAE;GAAf,EACE9R,4BAAA,CAACuc,KAAD,MAAA,CADF,CA/BF,CAFJ,CANF,CAJF,EAkDEvc,4BAAA,CAACwe,MAAD;AACEC,IAAAA,MAAM,EAAC;AACPtX,IAAAA,IAAI,EAAEA;AACNsF,IAAAA,OAAO,EAAE0R,YAAY,CAAC,KAAD;AACrBpe,IAAAA,OAAO,EAAE;AACP+J,MAAAA,KAAK,EAAE/J,OAAO,CAACod;AADR;AAGTvW,IAAAA,OAAO,EAAEuX,YAAY,CAAC,KAAD;GAPvB,EASEne,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACid;GAAxB,EACEhd,4BAAA,CAACmV,YAAD;AAAYvO,IAAAA,OAAO,EAAEuX,YAAY,CAAC,KAAD;GAAjC,EACEne,4BAAA,CAAC0e,eAAD,MAAA,CADF,CADF,CATF,EAcE1e,4BAAA,CAAC2e,OAAD,MAAA,CAdF,EAeE3e,4BAAA,CAAC4e,IAAD,MAAA,EAEI,CAAC,CAACxC,UAAU,CAACxP,MAAb,IACGwP,UAAU,CAACvP,GAAX,CAAgBgS,UAAD,IAChB7e,4BAAA,CAAC8e,QAAD;AACEzc,IAAAA,MAAM;AACNyK,IAAAA,GAAG,SAAS2C,iBAAiB,CAACoP,UAAU,CAACtX,KAAZ;GAF/B,EAIEvH,4BAAA,CAACkI,OAAD;AACEuI,IAAAA,EAAE,EAAEoO,UAAU,CAACpO;AACf9Q,IAAAA,SAAS,EAAEI,OAAO,CAACge;AACnBnB,IAAAA,eAAe,EAAE7c,OAAO,CAACie;GAH3B,EAKEhe,4BAAA,CAAC8c,YAAD,MAAA,EACG+B,UAAU,CAACpa,IADd,CALF,EAQEzE,4BAAA,CAAC+e,YAAD;AAAc1e,IAAAA,OAAO,EAAEwe,UAAU,CAACtX;GAAlC,CARF,CAJF,CADC,CAHP,CAfF,CAlDF,CADF;AA4FD,CA/GD;;AC1DA,MAAMyX,MAAM,GAAqBnc,KAAD,IAC9B7C,4BAAA,CAACA,cAAK,CAAC2M,QAAP,MAAA,EACE3M,4BAAA,CAACif,MAAD;AAAQC,EAAAA,MAAM;CAAd,EACElf,4BAAA,CAACkc,aAAD,oBAAmBrZ,MAAnB,CADF,CADF,EAIE7C,4BAAA,CAACif,MAAD;AAAQE,EAAAA,IAAI;CAAZ,EACEnf,4BAAA,CAACie,YAAD,oBAAkBpb,MAAlB,CADF,CAJF,CADF;;ACMA,MAAM3D,WAAS,GAAGC,UAAU,CAAE2C,KAAD,KAAmB;AAC9Csd,EAAAA,aAAa,EAAE;AACb/Y,IAAAA,UAAU,EAAE,QADC;AAEb0D,IAAAA,eAAe,EAAE5J,MAAM,CAACE,OAFX;AAGb+F,IAAAA,OAAO,EAAE,MAHI;AAIbI,IAAAA,cAAc,EAAE,QAJH;AAKbnH,IAAAA,KAAK,EAAE;AALM,GAD+B;AAQ9CggB,EAAAA,WAAW,EAAE;AACXnc,IAAAA,KAAK,EAAE/C,MAAM,CAACW,KADH;AAEXsF,IAAAA,OAAO,EAAE,MAFE;AAGX2J,IAAAA,aAAa,EAAE,QAHJ;AAIXI,IAAAA,SAAS,EAAE,QAJA;AAKX,KAACrO,KAAK,CAACkM,WAAN,CAAkBsR,IAAlB,CAAuB,IAAvB,CAAD,GAAgC;AAC9BpR,MAAAA,QAAQ,EAAE;AADoB,KALrB;AAQX,KAACpM,KAAK,CAACkM,WAAN,CAAkBC,EAAlB,CAAqB,IAArB,CAAD,GAA8B;AAC5BC,MAAAA,QAAQ,EAAE;AADkB,KARnB;AAWX,KAACpM,KAAK,CAACkM,WAAN,CAAkBC,EAAlB,CAAqB,IAArB,CAAD,GAA8B;AAC5BC,MAAAA,QAAQ,EAAE;AADkB;AAXnB,GARiC;AAuB9CqR,EAAAA,YAAY,EAAE;AACZlJ,IAAAA,YAAY,EAAEvU,KAAK,CAACyE,OAAN,CAAc,CAAd,CADF;AAEZoB,IAAAA,QAAQ,EAAE7F,KAAK,CAACyE,OAAN,CAAc,CAAd,CAFE;AAGZ3D,IAAAA,UAAU,EAAE7B,KAAK,CAACS,MAAN,CAAaE;AAHb,GAvBgC;AA4B9C8d,EAAAA,SAAS,EAAE;AACTngB,IAAAA,KAAK,EAAE;AADE;AA5BmC,CAAnB,CAAD,CAA5B;;AAiCA,MAAMogB,YAAY,GAA0B,CAC1C;AAAEC,EAAAA,WAAF;AAAeC,EAAAA,UAAf;AAA2BC,EAAAA;AAA3B,CAD0C;AAG1C,QAAM7f,OAAO,GAAGb,WAAS,EAAzB;AAEA,SACEc,4BAAA,CAACA,cAAK,CAAC2M,QAAP,MAAA,EACE3M,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACqf;GAAxB,EACEpf,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACsf;GAAxB,EACErf,4BAAA,CAAC4K,UAAD;AACEjL,IAAAA,SAAS,EAAEI,OAAO,CAACwf;AACnBnY,IAAAA,OAAO,EAAC;GAFV,EAIGuY,UAJH,EAKE3f,4BAAA,KAAA,MAAA,CALF,EAMG,GANH,EAOG4f,UAPH,CADF,EAUE5f,4BAAA,CAAC4K,UAAD;AAAYxD,IAAAA,OAAO,EAAC;GAApB,EAAiCsY,WAAjC,CAVF,CADF,CADF,EAeE1f,4BAAA,MAAA;AACEL,IAAAA,SAAS,EAAEI,OAAO,CAACyf;AACnBzY,IAAAA,GAAG,EAAE8Y;AACL7Y,IAAAA,GAAG,EAAC;GAHN,CAfF,CADF;AAuBD,CA5BD;;AChCA,MAAM9H,WAAS,GAAGC,UAAU,CAAE2C,KAAD,KAAmB;AAC9CkB,EAAAA,IAAI,EAAE;AACJqD,IAAAA,UAAU,EAAE,QADR;AAEJD,IAAAA,OAAO,EAAE,MAFL;AAGJ2J,IAAAA,aAAa,EAAE,QAHX;AAIJsF,IAAAA,SAAS,EAAEvT,KAAK,CAACyE,OAAN,CAAc,CAAd;AAJP,GADwC;AAO9CsL,EAAAA,SAAS,EAAE;AACTxL,IAAAA,UAAU,EAAE,QADH;AAETD,IAAAA,OAAO,EAAE,MAFA;AAGT2J,IAAAA,aAAa,EAAE,QAHN;AAIT,KAACjO,KAAK,CAACkM,WAAN,CAAkBC,EAAlB,CAAqB,IAArB,CAAD,GAA8B;AAC5BC,MAAAA,QAAQ,EAAE;AADkB;AAJrB,GAPmC;AAe9C4R,EAAAA,cAAc,EAAE;AACd/V,IAAAA,eAAe,EAAE5J,MAAM,CAACI;AADV,GAf8B;AAkB9Cwf,EAAAA,SAAS,EAAE;AACTpY,IAAAA,QAAQ,EAAE7F,KAAK,CAACK,UAAN,CAAiByF,OAAjB,CAAyB,EAAzB,CADD;AAET1B,IAAAA,MAAM,EAAEpE,KAAK,CAACyE,OAAN,CAAc,CAAd,EAAiB,CAAjB;AAFC,GAlBmC;AAsB9CyZ,EAAAA,gBAAgB,EAAE;AAChB3Z,IAAAA,UAAU,EAAE,QADI;AAEhBD,IAAAA,OAAO,EAAE,MAFO;AAGhB2J,IAAAA,aAAa,EAAE,QAHC;AAIhBsF,IAAAA,SAAS,EAAEvT,KAAK,CAACyE,OAAN,CAAc,CAAd;AAJK;AAtB4B,CAAnB,CAAD,CAA5B;;AA8BA,MAAM0Z,eAAe,GAA6B,CAAC;AAAEtgB,EAAAA,SAAS,GAAG,EAAd;AAAkBogB,EAAAA,SAAlB;AAA6BG,EAAAA;AAA7B,CAAD;AAChD,QAAMngB,OAAO,GAAGb,WAAS,EAAzB;AACA,SACEc,4BAAA,MAAA;AAAKL,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD,WAAnB,CAA+BO,IAA/B;GAAhB,EACEF,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAAC8R;GAAxB,EACE7R,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,EAAEI,OAAO,CAACggB;AAAW3Y,IAAAA,OAAO,EAAC;AAAKlE,IAAAA,KAAK,EAAC;GAA7D,EAAwE6c,SAAxE,CADF,EAEE/f,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACigB;GAAxB,EAEIE,mBAAmB,CAACrT,GAApB,CAAwB,CAACsT,KAAD,EAAyBhR,CAAzB,KACtBnP,4BAAA,CAACoO,UAAD;AAAYzO,IAAAA,SAAS,KAAKwP,CAAC,GAAG,CAAJ,KAAU,CAAV,GAAcpP,OAAO,CAAC+f,cAAtB,GAAuC;AAAMhT,IAAAA,GAAG,SAAS2C,iBAAiB,CAAC0Q,KAAK,CAAC7R,QAAP;KAAwB6R,MAA5H,CADF,CAFJ,CAFF,CADF,CADF;AAcD,CAhBD;;ACrCA,MAAMjhB,WAAS,GAAGC,UAAU,CAAE2C,KAAD,KAAmB;AAC9CkB,EAAAA,IAAI,EAAE;AAEJqS,IAAAA,SAAS,EAAEvT,KAAK,CAACyE,OAAN,CAAc3E,eAAe,CAACC,YAA9B,CAFP;AAGJxC,IAAAA,KAAK,EAAE;AAHH;AADwC,CAAnB,CAAD,CAA5B;;AAQA,MAAM+gB,YAAY,GAA0B,CAAC;AAAEvgB,EAAAA,QAAF;AAAYF,EAAAA,SAAS,GAAG,EAAxB;AAA4B,KAAGkD;AAA/B,CAAD;AAC1C,QAAM9C,OAAO,GAAGb,WAAS,EAAzB;AAEA,SACEc,4BAAA,MAAA;AAAKL,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD,WAAnB,CAA+BO,IAA/B;KAA2C2C,MAA3D,EACGhD,QADH,CADF;AAKD,CARD;;MCiBawgB,gBAAgB,GAAsB;AACjDjJ,EAAAA,QAAQ,EAAE4B,SADuC;AAEjDvB,EAAAA,IAAI,EAAEuB,SAF2C;AAGjDe,EAAAA,OAAO,EAAEf,SAHwC;AAIjDR,EAAAA,WAAW,EAAEQ;AAJoC,CAA5C;AAOP,MAAasH,SAAS,GAAGC,aAAa,CAAoB;AACxDC,EAAAA,KAAK,EAAEH,gBADiD;AAExDI,EAAAA,OAAO,EAAE;AACPlU,IAAAA,WAAW,EAAE,MAAqB8K,OAAO,CAACC,OAAR,EAD3B;AAEPoJ,IAAAA,wBAAwB,EAAE,MAAW,CAF9B;AAGPC,IAAAA,wBAAwB,EAAE,MAAW;AAH9B,GAF+C;AAOxDjY,EAAAA,iBAAiB,EAAEsQ,SAPqC;AAQxD4H,EAAAA,eAAe,EAAE5H;AARuC,CAApB,CAA/B;;AAkBP,MAAM6H,yBAAyB,GAAIC,QAAD;AAChC,MAAI/G,OAAJ;AAEA,MAAIgH,KAAK,CAACC,OAAN,CAAcF,QAAd,CAAJ,EAA6B,CAAC/G,OAAD,IAAY+G,QAAZ,CAA7B,KACK/G,OAAO,GAAG+G,QAAV;AACL,SAAO/G,OAAP;AACD,CAND;;AAgBA,MAAMkH,iBAAiB,GAAG,CACxBvY,iBADwB,EAExBkY,eAFwB,EAGxBpI,WAHwB;AAMxB,MAAI,CAAC9P,iBAAL,EAAwB,OAAO,IAAP;;AAExB,MAAIA,iBAAiB,MAAK8P,WAAL,aAAKA,WAAL,uBAAKA,WAAW,CAAEN,SAAlB,CAArB,EAAkD;AAEhD,QAAI0I,eAAJ,EAAqB,OAAOA,eAAe,MAAKpI,WAAL,aAAKA,WAAL,uBAAKA,WAAW,CAAEL,OAAlB,CAAtB;AACrB,WAAO,IAAP;AACD;;AACD,SAAO,KAAP;AACD,CAdD;;AAgBA,MAAM+I,YAAN,SAA2BC,SAA3B;AAOExH,EAAAA,YAAY9W;AACV,UAAMA,KAAN;AACA,SAAK2d,KAAL,GAAaH,gBAAb;AACA,SAAK3X,iBAAL,GAAyB7F,KAAK,CAAC6F,iBAA/B;AACA,SAAKkY,eAAL,GAAuB/d,KAAK,CAAC+d,eAA7B;AACA,SAAKF,wBAAL,GAAgC7d,KAAK,CAAC4d,OAAN,CAAcC,wBAA9C;AACA,SAAKC,wBAAL,GAAgC9d,KAAK,CAAC4d,OAAN,CAAcE,wBAA9C;AACA,SAAKpU,WAAL,GAAmB,KAAKA,WAAL,CAAiB6U,IAAjB,CAAsB,IAAtB,CAAnB;AACA,SAAKC,UAAL;AACD;;AAMY9U,EAAAA,YAAY6K,UACvBkK;;oBAK2C;;6BAJxBnK,OAAO,CAACC,QAAD,kBAApBK;+BACiBA,IAAI,CAACiB,GAAL,CAAS6I,WAAT,mBAAjBT;iCACoBvI,sBAAsB,CAACd,IAAD,kBAA1Ce;AAEN,kBAAMgJ,gBAAgB,GAAGP,iBAAiB,CAAC,MAAKvY,iBAAN,EAAyB,MAAKkY,eAA9B,EAA+CpI,WAA/C,CAA1C;AAEA,kBAAMuB,OAAO,GAAGyH,gBAAgB,GAC5BX,yBAAyB,CAACC,QAAD,CADG,GAE5B9H,SAFJ;;AAIA,kBAAKyI,QAAL,CACE;AACEhK,cAAAA,IADF;AAEEL,cAAAA,QAFF;AAGE2C,cAAAA,OAHF;AAIEvB,cAAAA;AAJF,aADF,EAOE,MAAO8I,cAAc,IAAIA,cAAc,CAACvH,OAAD,CAPzC;;;;AASD;;;;;AAEOsH,EAAAA,UAAU;mBASU;;AAR1B,QAAI,CAACna,MAAM,CAACsQ,QAAZ,EAAsB;AACpB;AACD;;AACD,SAAKhL,kBAAL,GAA0BsM,qBAAqB,EAA/C;AAEA5R,IAAAA,MAAM,CAACsQ,QAAP,CAAgBkK,0BAAhB,GAA6C,KAA7C;AAEAxa,IAAAA,MAAM,CAACsQ,QAAP,CAAgBmK,EAAhB,CAAmB,gBAAnB,YAA4CC,MAA5C;AAAA;AACE,cAAM;AAAEpJ,UAAAA;AAAF,YAAkB,OAAKgI,KAA7B;AAEA,YAAI,CAAChI,WAAL,EAAkB;AAClB,cAAM;AAAEpB,UAAAA;AAAF,YAAe,OAAKoJ,KAA1B;+BACmBrJ,OAAO,CAACC,QAAD,kBAApBK;iCACiBA,IAAI,CAACiB,GAAL,CAAS6I,WAAT,mBAAjBT;mCACuBvI,sBAAsB,CAACd,IAAD,kBAA7CoK;AAGN,oBAAML,gBAAgB,GAAGP,iBAAiB,CACxC,OAAKvY,iBADmC,EAExC,OAAKkY,eAFmC,EAGxCiB,cAHwC,CAA1C;AAKA,oBAAM9H,OAAO,GAAGyH,gBAAgB,GAC5BX,yBAAyB,CAACC,QAAD,CADG,GAE5B9H,SAFJ;;AAIA,qBAAKyI,QAAL,CACE;AACEjJ,gBAAAA,WAAW,EAAEqJ,cADf;AAEE9H,gBAAAA;AAFF,eADF,EAKE,MAAM,OAAK2G,wBAAL,IAAiC,OAAKA,wBAAL,EALzC;;;;AAOD,OA1BD;AAAA;AAAA;AAAA;AA4BAxZ,IAAAA,MAAM,CAACsQ,QAAP,CAAgBmK,EAAhB,CAAmB,iBAAnB,EAAuCb,QAAD;AACpC,YAAM;AAAEtI,QAAAA;AAAF,UAAkB,KAAKgI,KAA7B;AAEA,UAAI,CAAChI,WAAL,EAAkB;AAGlB,YAAMgJ,gBAAgB,GAAGP,iBAAiB,CACxC,KAAKvY,iBADmC,EAChB,KAAKkY,eADW,EACMpI,WADN,CAA1C;;AAIA,UAAIgJ,gBAAJ,EAAsB;AACpB,cAAMzH,OAAO,GAAG8G,yBAAyB,CAACC,QAAD,CAAzC;;AAEA,YAAI/G,OAAJ,EAAa;AACX,eAAK0H,QAAL,CAAc;AACZ1H,YAAAA;AADY,WAAd,EAGA,MAAM,KAAK4G,wBAAL,IACC,KAAKA,wBAAL,EAJP;AAKD;AACF;AACF,KArBD;AAsBD;;AAEMmB,EAAAA,MAAM;AACX,UAAM;AACJ1K,MAAAA,QADI;AAEJK,MAAAA,IAFI;AAGJsC,MAAAA,OAHI;AAIJvB,MAAAA;AAJI,QAKF,KAAKgI,KALT;AAMA,UAAM;AACJjU,MAAAA,WADI;AAEJmU,MAAAA,wBAFI;AAGJC,MAAAA,wBAHI;AAIJnU,MAAAA;AAJI,QAKF,IALJ;AAOA,UAAM;AAAE3M,MAAAA;AAAF,QAAe,KAAKgD,KAA1B;AAEA,WACE7C,4BAAA,CAACsgB,SAAS,CAACyB,QAAX;AACEvQ,MAAAA,KAAK,EAAE;AACLiP,QAAAA,OAAO,EAAE;AACPlU,UAAAA,WADO;AAEPmU,UAAAA,wBAFO;AAGPC,UAAAA;AAHO,SADJ;AAMLH,QAAAA,KAAK,EAAE;AACLpJ,UAAAA,QADK;AAELK,UAAAA,IAFK;AAGLsC,UAAAA,OAHK;AAILvB,UAAAA;AAJK,SANF;AAYLhM,QAAAA;AAZK;KADT,EAgBG3M,QAhBH,CADF;AAoBD;;;;AAGH,qBAAe;AAAEmiB,EAAAA,QAAQ,EAAE1B,SAAS,CAAC0B,QAAtB;AAAgCD,EAAAA,QAAQ,EAAEb;AAA1C,CAAf;;;;"} \ No newline at end of file +{"version":3,"file":"index.modern.js","sources":["../src/components/atoms/Button.tsx","../src/theme/theme.ts","../src/components/atoms/Checkbox.tsx","../src/assets/images/icons/nifty.png","../src/assets/images/icons/rifCom.png","../src/assets/images/icons/rifDir.png","../src/assets/images/icons/rifGat.png","../src/assets/images/icons/rifMar.png","../src/assets/images/icons/rifPay.png","../src/assets/images/icons/rifSto.png","../src/models/ProviderInfo.ts","../src/components/atoms/LoginOption.tsx","../src/components/atoms/Logo.tsx","../src/components/atoms/LogoNavbar.tsx","../src/components/atoms/StyledNavTab.tsx","../src/components/atoms/NetworkIndicator.tsx","../src/components/atoms/modal/Modal.tsx","../src/components/atoms/modal/ModalHeader.tsx","../src/components/atoms/modal/ModalTitle.tsx","../src/components/atoms/modal/ModalFooter.tsx","../src/components/atoms/modal/ModalBody.tsx","../src/components/hoc/WithSpinner.tsx","../src/components/molecules/Accordion.tsx","../src/components/molecules/AccountModal.tsx","../src/components/molecules/CopyTextTooltip.tsx","../src/components/molecules/FAQSection.tsx","../src/components/molecules/LabeledCheckbox.tsx","../src/components/molecules/FilterCheckboxCard.tsx","../src/utils.ts","../src/components/molecules/FooterColumn.tsx","../src/components/molecules/ModalDialogue.tsx","../src/components/molecules/UnitsInput.tsx","../src/components/molecules/RangeSliderWithInputs.tsx","../src/components/molecules/ShortenTextTooltip.tsx","../src/components/molecules/StyledTabs.tsx","../src/components/molecules/SwitchTabs.tsx","../src/components/molecules/TooltipIconButton.tsx","../src/components/molecules/WrongNetworkModal.tsx","../src/components/organisms/Footer.tsx","../src/models/Enums.ts","../src/services/Web3Service.ts","../src/components/organisms/Account.tsx","../src/components/organisms/Header/HeaderDesktop.tsx","../src/components/organisms/Header/HeaderMobile.tsx","../src/components/organisms/Header/Header.tsx","../src/components/organisms/Header/HeaderTongue.tsx","../src/components/templates/FAQPageTemplate.tsx","../src/components/templates/PageTemplate.tsx","../src/providers/Web3Provider.tsx"],"sourcesContent":["import React, { FC } from 'react'\nimport { Button as MUIButton, ButtonProps as MUIButtonProps } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\n\nexport interface ButtonProps extends MUIButtonProps {\n block?: boolean\n shadow?: boolean\n rounded?: boolean\n}\n\nconst useStyles = makeStyles(() => ({\n block: {\n width: '100%',\n },\n noShadow: {\n boxShadow: 'none',\n },\n rounded: {\n borderRadius: 50,\n },\n}))\n\nconst Button: FC = ({\n className = '', block, shadow, rounded, children, ...rest\n}) => {\n const classes = useStyles()\n\n return (\n \n {children}\n \n )\n}\n\nexport default Button\n","import { createMuiTheme } from '@material-ui/core/styles'\nimport '../assets/css/fonts/rubik.css'\n\nexport const colors = {\n black: '#000000',\n primary: '#008FF7',\n darkBlue: '#197DC6',\n gray1: '#F8F7F7',\n gray2: '#E5E5E5',\n gray3: '#C4C4C4',\n gray4: '#919191',\n gray5: '#4D4C4C',\n gray6: '#15171B',\n transparent: '#FFFFFF00',\n white: '#FFFFFF',\n}\n\nexport const fonts = {\n family: 'Rubik',\n size: {\n tiny: 10,\n small: 12,\n normal: 14,\n medium: 16,\n subtitleSmall: 18,\n subtitleBig: 22,\n },\n weight: {\n light: 300,\n regular: 400,\n medium: 500,\n bold: 700,\n },\n}\n\nexport const globalConstants = {\n headerHeight: 8,\n}\n\nconst theme = createMuiTheme({\n palette: {\n primary: {\n main: colors.primary,\n },\n secondary: {\n main: colors.gray4,\n },\n },\n typography: {\n fontFamily: fonts.family,\n button: {\n textTransform: 'none',\n },\n fontWeightLight: fonts.weight.light,\n fontWeightRegular: fonts.weight.regular,\n fontWeightMedium: fonts.weight.medium,\n fontWeightBold: fonts.weight.bold,\n body1: {\n fontWeight: fonts.weight.light,\n },\n },\n props: {},\n overrides: {\n MuiButton: {\n root: {\n fontWeight: fonts.weight.light,\n },\n },\n MuiFormControlLabel: {\n root: {\n color: colors.gray3,\n },\n },\n MuiSlider: {\n rail: {\n color: colors.gray3,\n height: 4,\n opacity: 1,\n },\n root: {\n width: '100%',\n color: colors.primary,\n height: 4,\n },\n track: {\n height: 4,\n },\n thumb: {\n marginLeft: -4,\n height: 14,\n width: 14,\n },\n },\n MuiTextField: {\n root: {\n color: colors.gray3,\n '&:hover': {\n color: colors.gray2,\n },\n },\n },\n },\n})\n\nexport default theme\n","import React, { FC, useState } from 'react'\nimport {\n Checkbox as MUICheckbox,\n CheckboxProps as MUICheckboxProps,\n makeStyles,\n createStyles,\n} from '@material-ui/core'\nimport { CheckBoxOutlineBlankSharp, CheckBoxSharp } from '@material-ui/icons'\nimport { colors } from '../../theme'\n\nexport type CheckboxProps = MUICheckboxProps;\n\nconst useStyles = makeStyles(() => createStyles({\n unCheckedIcon: {\n color: colors.gray4,\n },\n checkedIcon: {\n color: colors.primary,\n },\n}))\n\nconst Checkbox: FC = (props) => {\n const classes = useStyles()\n const { checked } = props\n const [isChecked, setIsChecked] = useState(!!checked)\n\n const handleChange = (event: React.ChangeEvent,\n newChecked: boolean): void => {\n setIsChecked(newChecked)\n const { onChange } = props\n\n if (onChange) onChange(event, newChecked)\n }\n\n return (\n \n }\n icon={\n \n }\n {...props}\n checked={isChecked}\n onChange={handleChange}\n />\n )\n}\n\nexport default Checkbox\n","/* loaded by smart-asset */\nexport default require(\"./nifty~RMIWdZeg.png\")","/* loaded by smart-asset */\nexport default require(\"./rifCom~udwpaCym.png\")","/* loaded by smart-asset */\nexport default require(\"./rifDir~bottaDNJ.png\")","/* loaded by smart-asset */\nexport default require(\"./rifGat~balFpEzC.png\")","/* loaded by smart-asset */\nexport default require(\"./rifMar~IDqKMWpK.png\")","/* loaded by smart-asset */\nexport default require(\"./rifPay~bdtOAceT.png\")","/* loaded by smart-asset */\nexport default require(\"./rifSto~fMRetflo.png\")","import { metaMaskIconImg, niftyIconImg } from '../assets/images'\n\nexport default interface ProviderInfo {\n name: string\n eProvider: EProvider\n iconImg?: string\n}\n\nexport enum EProvider {\n METAMASK = 'Metamask',\n NIFTY = 'Nifty',\n LEDGER = 'Ledger',\n TREZOR = 'Trezor',\n TRUST = 'Trust',\n LOCAL = 'Localhost',\n GO_WALLET = 'GoWallet',\n ALPHA_WALLET = 'AlphaWallet',\n STATUS = 'status',\n CIPHER = 'cipher',\n COINBASE = 'coinbase',\n MIST = 'mist',\n PARITY = 'parity',\n INFURA = 'infura'\n}\n\nexport const getProviderInfo = (eProvider: EProvider): ProviderInfo => {\n switch (eProvider) {\n case EProvider.METAMASK:\n return {\n name: 'MetaMask',\n eProvider,\n iconImg: metaMaskIconImg,\n }\n case EProvider.NIFTY:\n return {\n name: 'Nifty',\n eProvider,\n iconImg: niftyIconImg,\n }\n case EProvider.LEDGER:\n return {\n name: 'Ledger',\n eProvider,\n }\n case EProvider.TREZOR:\n return {\n name: 'Trezor',\n eProvider,\n }\n case EProvider.TRUST:\n return {\n name: 'Trust',\n eProvider,\n }\n case EProvider.GO_WALLET:\n return {\n name: 'Go Wallet',\n eProvider,\n }\n case EProvider.ALPHA_WALLET:\n return {\n name: 'Alpha Wallet',\n eProvider,\n }\n case EProvider.STATUS:\n return {\n name: 'Status',\n eProvider,\n }\n case EProvider.COINBASE:\n return {\n name: 'Coinbase',\n eProvider,\n }\n case EProvider.MIST:\n return {\n name: 'Mist',\n eProvider,\n }\n case EProvider.PARITY:\n return {\n name: 'Parity',\n eProvider,\n }\n case EProvider.INFURA:\n return {\n name: 'Infura',\n eProvider,\n }\n case EProvider.LOCAL:\n return {\n name: 'Localhost',\n eProvider,\n }\n default: {\n throw new Error(\n `EProvider not implemented or unknown. Chosen provider ${eProvider}`,\n )\n }\n }\n}\n","import React, { FC } from 'react'\nimport { makeStyles, Theme, Tooltip } from '@material-ui/core'\nimport Button from './Button'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport { niftyIconImg } from '../../assets/images'\n\nexport interface LoginOptionProps {\n className?: string\n onClick?: () => void\n providerInfo?: ProviderInfo\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n padding: 5,\n margin: 5,\n width: '100%',\n },\n content: {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n maxHeight: theme.spacing(5),\n justifyContent: 'center',\n },\n imageWrapper: {\n maxHeight: theme.spacing(4),\n marginRight: theme.spacing(2),\n },\n}))\n\n/**\n * If not providerInfo is received, we assume there's no provider available and so suggest to install Nifty wallet\n * Same happens when no onClick is provided. We open the Nifty page on a new tab\n */\nconst LoginOption: FC = ({\n className = '',\n onClick,\n providerInfo,\n ...rest\n}) => {\n const classes = useStyles()\n\n const providerContent = (\n
\n {\n providerInfo?.iconImg\n && (\n \n )\n }\n {providerInfo?.name}\n
\n )\n\n const handleOnClick = () => {\n if (onClick) {\n return onClick()\n }\n return window.open('https://www.poa.network/for-users/nifty-wallet/getting-started', '_blank')\n }\n\n return (\n \n {/* only with Nifty we display the Tooltip because atm we can't check if MetaMask is also enabled */}\n {!!providerInfo && providerInfo.eProvider === EProvider.NIFTY\n && (\n \n {providerContent}\n \n )}\n {!!providerInfo && providerInfo.eProvider !== EProvider.NIFTY\n && providerContent}\n {!providerInfo\n && (\n
\n \n Install Nifty wallet\n
\n )}\n \n )\n}\n\nexport default LoginOption\n","import React, { FC } from 'react'\nimport { logoFullWhite } from '../../assets/images'\n\nconst Logo: FC> = (\n { alt = 'RIF OS logo', ...rest },\n) => {alt}\n\nexport default Logo\n","import React, { FC } from 'react'\nimport { logoFullWhite } from '../../assets/images'\n\ninterface LogoProps extends React.Props {\n alt?: string\n height?: string | number\n style?: React.CSSProperties\n}\n\nconst LogoNavbar: FC = ({ alt = 'navbar logo', height = '44px', ...rest }) => (\n \n)\nexport default LogoNavbar\n","import React, { FC } from 'react'\nimport { Theme, makeStyles } from '@material-ui/core/styles'\nimport Tab from '@material-ui/core/Tab'\nimport { NavLink } from 'react-router-dom'\nimport { colors } from '../../theme'\n\nexport interface StyledNavTabProps {\n label: string\n to: string\n value: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n textTransform: 'none',\n color: colors.gray5,\n fontWeight: theme.typography.fontWeightRegular,\n fontSize: theme.typography.pxToRem(15),\n marginRight: theme.spacing(1),\n '&:focus': {\n opacity: 1,\n },\n },\n selected: {\n fontWeight: theme.typography.fontWeightMedium,\n borderBottom: '2px solid #000000',\n },\n}))\n\nconst StyledNavTab: FC = (props: StyledNavTabProps) => {\n const classes = useStyles()\n return \n}\n\nexport default StyledNavTab\n","import React, { FC } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport CheckCircleOutlineOutlinedIcon from '@material-ui/icons/CheckCircleOutlineOutlined'\nimport ErrorIcon from '@material-ui/icons/Error'\nimport WarningIcon from '@material-ui/icons/Warning'\nimport { green, yellow } from '@material-ui/core/colors'\n\nexport interface NetworkIndicatorProps {\n iconClassName?: string\n currentNetworkId?: number\n requiredNetworkId?: number\n onCorrectNetworkMessage?: string\n onNetworkMismatchMessage?: string\n noNetworkMessage?: string\n}\n\nconst defaultonCorrectNetworkMessage = 'You are on the right network'\nconst deaulftonNetworkMismatchMessage = 'You are on the wrong network'\nconst defaultNoNetworkMessage = 'You are not connected to any network'\n\nexport enum NetworkStatus {\n NO_NETWORK = 1,\n NETWORK_MISSMATCH = 2,\n CORRECT_NETWORK = 3\n}\n\nconst getNetworkStatus = (currentNetworkId, requiredNetworkId): NetworkStatus => {\n if (!currentNetworkId) return NetworkStatus.NO_NETWORK\n\n if (currentNetworkId === requiredNetworkId) return NetworkStatus.CORRECT_NETWORK\n return NetworkStatus.NETWORK_MISSMATCH\n}\n\nconst NetworkIndicator: FC = ({\n iconClassName = '',\n currentNetworkId, requiredNetworkId, onCorrectNetworkMessage,\n onNetworkMismatchMessage, noNetworkMessage,\n}) => {\n const networkStatus = getNetworkStatus(currentNetworkId, requiredNetworkId)\n\n const iconPerNetworkStatus = new Map()\n iconPerNetworkStatus.set(NetworkStatus.NO_NETWORK, (\n \n \n \n ))\n iconPerNetworkStatus.set(NetworkStatus.NETWORK_MISSMATCH, (\n \n \n \n ))\n iconPerNetworkStatus.set(NetworkStatus.CORRECT_NETWORK, (\n \n \n \n ))\n\n return (\n iconPerNetworkStatus.get(networkStatus)\n )\n}\n\nexport default NetworkIndicator\n","import React, { FC } from 'react'\nimport { Modal as MUIModal, ModalProps as MUIModalProps } from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport type ModalProps = MUIModalProps;\n\nconst useStyles = makeStyles((theme: Theme) => ({\n paper: {\n backgroundColor: theme.palette.background.paper,\n border: `2px solid ${colors.primary}`,\n boxShadow: theme.shadows[5],\n left: '50%',\n minWidth: 400,\n padding: theme.spacing(2, 4, 3),\n position: 'absolute',\n top: '50%',\n transform: 'translate(-50%, -50%)',\n },\n}))\n\nconst Modal: FC = ({ children, ...rest }) => {\n const classes = useStyles()\n\n return (\n \n
\n {children}\n
\n
\n )\n}\n\nexport default Modal\n","import React, { FC } from 'react'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport interface ModalHeaderProps {\n className?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n borderBottom: `1px solid ${colors.gray2}`,\n color: colors.primary,\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n },\n}))\n\nconst ModalHeader: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalHeader\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\n\nexport interface ModalTitleProps {\n className?: string\n}\n\nconst ModalTitle: FC = ({ children, ...rest }) => (\n \n {children}\n \n)\n\nexport default ModalTitle\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport interface ModalFooterProps {\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n borderTop: `1px solid ${colors.gray2}`,\n display: 'flex',\n justifyContent: 'center',\n paddingTop: theme.spacing(1),\n width: '100%',\n },\n}))\n\nconst ModalFooter: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalFooter\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\n\nexport interface ModalBodyProps {\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n padding: theme.spacing(3, 0),\n width: '100%',\n },\n}))\n\nconst ModalBody: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalBody\n","import React from 'react'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { logoBlueIcon } from '../../assets/images'\n\nconst useStyles = makeStyles(() => ({\n '@keyframes spin': {\n '0%': { transform: 'rotate(0deg)' },\n '100%': { transform: 'rotate(360deg)' },\n },\n root: {\n position: 'relative',\n },\n overlay: {\n position: 'absolute',\n zIndex: 2,\n height: '100%',\n width: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n background: '#FFFFFF55',\n },\n spinner: {\n display: 'inline-block',\n zIndex: 3,\n width: '50px',\n height: '50px',\n border: 'none',\n animation: '$spin 2s ease-in-out infinite',\n },\n}))\n\nconst WithSpinner = (WrappedComponent: React.ElementType) => {\n const Spinner = ({ isLoading, ...props }) => {\n const classes = useStyles()\n\n return (\n
\n {\n isLoading\n && (\n
\n \"logo\"\n
\n )\n }\n \n
\n )\n }\n return Spinner\n}\n\nexport default WithSpinner\n","import React, { FC, useState } from 'react'\nimport { Accordion as MUIAccordion, AccordionProps as MUIAccordionProps } from '@material-ui/core'\nimport Typography from '@material-ui/core/Typography'\nimport AccordionDetails from '@material-ui/core/AccordionDetails'\nimport AccordionSummary from '@material-ui/core/AccordionSummary'\nimport { makeStyles, Theme, createStyles } from '@material-ui/core/styles'\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore'\nimport { colors } from '../../theme'\n\ninterface AccordionProps extends MUIAccordionProps {\n id: string\n title?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n root: {\n boxShadow: 'none',\n color: colors.gray4,\n width: '100%',\n },\n heading: {\n color: colors.gray4,\n fontSize: theme.typography.pxToRem(15),\n fontWeight: theme.typography.fontWeightRegular,\n width: '100%',\n },\n accordionSummary: {\n borderBottom: `1px solid ${colors.gray2}`,\n },\n}))\n\nconst Accordion: FC = ({\n children, expanded, id, title,\n}) => {\n const classes = useStyles()\n const [isExpanded, setIsExpanded] = useState(!!expanded)\n\n const onChange = (): void => setIsExpanded(!isExpanded)\n\n return (\n \n }\n aria-controls={`panel-${id}-content`}\n id={id}\n >\n {title}\n \n \n {children}\n \n \n )\n}\n\nexport default Accordion\n","import React, { FC } from 'react'\nimport Web3 from 'web3'\nimport {\n Button, LoginOption, Modal, ModalBody, ModalFooter, ModalHeader, ModalTitle,\n} from '../atoms'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport NetworkInfo from '../../models/NetworkInfo'\n\nexport interface AccountModalProps {\n web3?: Web3\n networkInfo?: NetworkInfo\n setProvider?: (provider: EProvider, onProviderSet?:\n (account?: string) => void) => Promise\n availableProviders?: ProviderInfo[]\n onClose?: () => void\n onProviderSet?: (account) => void\n open: boolean\n}\n\nconst AccountModal: FC = ({\n setProvider,\n availableProviders,\n open,\n onClose,\n onProviderSet,\n}) => (\n \n \n \n Connect a wallet to get started\n \n \n {\n availableProviders && availableProviders.length && availableProviders.map(\n (providerInfo) => (\n => {\n if (setProvider) await setProvider(providerInfo.eProvider, onProviderSet)\n }}\n />\n ),\n )\n }\n {!availableProviders\n && (\n // TODO: Create LoginOptionTemplate to extract this\n // empty LoginOption means suggest to install Nifty wallet\n \n )}\n \n \n \n Close\n \n \n \n \n)\n\nexport default AccountModal\n","import React, { FC, useState } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport { makeStyles } from '@material-ui/core/styles'\nimport FileCopyIcon from '@material-ui/icons/FileCopy'\nimport Typography from '@material-ui/core/Typography'\n\nexport interface CopyTextTooltipProps {\n displayElement: React.ReactElement\n fullText: string\n}\n\nconst useStyles = makeStyles(() => ({\n tooltipTitle: {\n display: 'flex',\n alignItems: 'center',\n },\n}))\n\nconst CopyTextTooltip: FC = ({ displayElement, fullText }) => {\n const [isCopied, setIsCopied] = useState(false)\n\n const classes = useStyles()\n\n const tooltipContent = (\n
\n \n \n {fullText}\n \n
\n )\n\n return (\n Copied! : tooltipContent}\n onClick={() => {\n navigator.clipboard.writeText(fullText)\n .then(() => { setIsCopied(true) })\n }}\n onClose={() => {\n setIsCopied(false)\n }}\n >\n {displayElement}\n \n )\n}\n\nexport default CopyTextTooltip\n","import React, { FC, useState } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Accordion from '@material-ui/core/Accordion'\nimport AccordionDetails from '@material-ui/core/AccordionDetails'\nimport AccordionSummary from '@material-ui/core/AccordionSummary'\nimport Typography from '@material-ui/core/Typography'\nimport AddIcon from '@material-ui/icons/Add'\nimport RemoveIcon from '@material-ui/icons/Remove'\nimport { colors, fonts } from '../../theme'\n\nexport interface FAQSectionProps {\n answer: string\n initiallyExpanded?: boolean\n question: string\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n boxShadow: 'none',\n color: colors.gray4,\n width: '100%',\n },\n heading: {\n display: 'flex',\n justifyContent: 'center',\n color: colors.gray5,\n fontSize: fonts.size.subtitleSmall,\n width: '100%',\n },\n headingExpanded: {\n color: colors.primary,\n },\n headingCollapsed: {\n fontWeight: fonts.weight.regular,\n },\n panelDetails: {\n display: 'flex',\n justifyContent: 'center',\n },\n answerContainer: {\n [theme.breakpoints.up('md')]: {\n maxWidth: '80%',\n },\n },\n answerText: {\n color: colors.gray5,\n },\n}))\n\nconst FAQSection: FC = ({\n className = '', initiallyExpanded, question, answer,\n}) => {\n const classes = useStyles()\n const [isExpanded, setIsExpanded] = useState(!!initiallyExpanded)\n\n const onChange = (): void => setIsExpanded(!isExpanded)\n\n return (\n \n : }\n >\n {question}\n \n \n
\n {answer}\n
\n
\n
\n )\n}\n\nexport default FAQSection\n","import React, { FC } from 'react'\nimport { FormControlLabel } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Checkbox, { CheckboxProps } from '../atoms/Checkbox'\nimport { colors } from '../../theme'\n\nexport interface LabeledCheckboxProps extends CheckboxProps {\n labelText: string\n labelClassName?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n color: colors.gray4,\n width: '100%',\n },\n}))\n\nconst LabeledCheckbox: FC = ({ labelText, labelClassName = '', ...rest }) => {\n const classes = useStyles()\n return (\n \n }\n />\n\n )\n}\n\nexport default LabeledCheckbox\n","import React, { FC } from 'react'\nimport LabeledCheckbox, { LabeledCheckboxProps } from './LabeledCheckbox'\n\nexport interface FilterCheckboxCardProps {\n className?: string\n items: LabeledCheckboxProps[]\n onClick?: (event: React.MouseEvent) => void\n}\n\nconst FilterCheckboxCard: FC = ({ className = '', onClick, items }) => (\n
\n {items.map((item: LabeledCheckboxProps, i) => (\n \n ))}\n
\n)\n\nexport default FilterCheckboxCard\n","const shortenString = (\n str: string,\n largerThan = 16,\n charsShownCount = 6,\n): string => (str.length > largerThan\n ? `${str.substr(0, charsShownCount)}...${str.substr(str.length - 4)}`\n : str)\n\nconst removeEmptySpaces = (str: string): string => str.replace(/\\s/g, '')\n\nconst maxSupportedNumber = 99999999999999\nconst minSupportedNumber = 0.000001\n\nconst validatedNumber = (num: number): number => {\n if (num > 0) {\n if (num > maxSupportedNumber) return maxSupportedNumber\n\n if (num < minSupportedNumber) return minSupportedNumber\n }\n\n if (num < 0) {\n if (num < -maxSupportedNumber) return -maxSupportedNumber\n\n if (num > -minSupportedNumber) return -minSupportedNumber\n }\n return num\n}\n\nexport {\n shortenString,\n removeEmptySpaces,\n maxSupportedNumber,\n minSupportedNumber,\n validatedNumber,\n}\n","import React, { FC } from 'react'\nimport { NavLinkProps, NavLink } from 'react-router-dom'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../theme'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FooterColumnProps {\n className?: string\n links: FooterLinkProps[]\n title: string\n}\n\nexport interface FooterLinkProps extends NavLinkProps {\n isExternal?: boolean\n title: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n },\n footerLink: {\n color: colors.gray4,\n fontWeight: fonts.weight.light,\n textDecoration: 'none',\n '&:hover': {\n fontWeight: fonts.weight.regular,\n },\n },\n footerTitle: {\n fontSize: fonts.size.subtitleBig,\n textAlign: 'center',\n },\n}))\n\nconst FooterColumn: FC = ({ title, links, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {title}\n {\n links.map((link: FooterLinkProps) => {\n const key = removeEmptySpaces(link.title)\n\n if (link.isExternal) {\n const href = (link.to || '#').toString()\n return (\n \n {link.title}\n \n )\n }\n return (\n \n {link.title}\n \n )\n })\n }\n
\n )\n}\n\nexport default FooterColumn\n","import React, { FC } from 'react'\nimport {\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n ModalTitle,\n} from '../atoms'\nimport { ModalProps } from '../atoms/modal/Modal'\n\nexport interface ModalDialogueProps extends ModalProps {\n title: string\n footer?: React.ReactElement\n}\n\nconst ModalDialogue: FC = ({\n title,\n footer,\n children,\n ...props\n}) => (\n \n \n \n {title}\n \n {children}\n {footer}\n \n \n)\n\nexport default ModalDialogue\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Input, { InputProps } from '@material-ui/core/Input'\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../theme'\n\nexport interface UnitsInputProps extends InputProps {\n handleOnChange: (event: React.ChangeEvent) => void\n handleOnBlur?: () => void\n maxValue?: number\n minValue?: number\n step?: number\n units?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n color: colors.gray4,\n display: 'flex',\n },\n input: {\n color: colors.gray4,\n paddingLeft: theme.spacing(0.1),\n textAlign: 'center',\n '&::before': {\n borderBottom: `1px solid ${colors.gray4}`,\n },\n },\n inputContainer: {\n paddingRight: '0 !important',\n },\n units: {\n color: colors.gray4,\n display: 'flex',\n fontSize: fonts.size.tiny,\n },\n unitsContainer: {\n alignSelf: 'center',\n color: colors.gray4,\n display: 'flex',\n fontSize: fonts.size.normal,\n paddingLeft: '0 !important',\n },\n}))\n\nconst UnitsInput: FC = ({\n maxValue,\n minValue,\n units,\n value,\n step = 1,\n handleOnBlur,\n handleOnChange,\n ...rest\n}) => {\n const classes = useStyles()\n\n return (\n \n \n \n \n \n \n \n {units}\n \n \n \n \n )\n}\n\nexport default UnitsInput\n","import Slider, { SliderProps } from '@material-ui/core/Slider'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport UnitsInput from './UnitsInput'\nimport { validatedNumber } from '../../utils'\nimport { fonts } from '../../theme'\n\nexport interface RangeSliderWithInputsProps extends SliderProps {\n values: {\n start: number\n end: number\n }\n unit?: string\n handleChange: ({ min, max }) => void\n className?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n width: '100%',\n },\n inputsContainer: {\n alignSelf: 'center',\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n },\n toContainer: {\n alignSelf: 'center',\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n fontWeight: fonts.weight.regular,\n },\n}))\n\nconst RangeSliderWithInputs: FC = ({\n values: {\n start: startValue, end: endValue,\n }, unit, handleChange, className, ...rest\n}) => {\n const classes = useStyles()\n\n const maxValue = rest.max || endValue\n const minValue = rest.min || startValue\n const step = rest.step || 1\n\n const handleStartInputChange = (\n event: React.ChangeEvent,\n ): void => {\n const newStartValue = validatedNumber(Number(event.target.value)) || minValue\n handleChange({ min: newStartValue, max: endValue })\n }\n\n const handleEndInputChange = (\n event: React.ChangeEvent,\n ): void => {\n const newEndValue = validatedNumber(Number(event.target.value)) || endValue\n handleChange({ min: startValue, max: newEndValue })\n }\n\n const handleSliderChange = (\n _: React.ChangeEvent<{}>, newSliderValue: number | number[],\n ): void => {\n handleChange({ min: newSliderValue[0], max: newSliderValue[1] })\n }\n\n const handleStartValueBlur = (): void => {\n if (startValue < minValue) {\n handleChange({ min: minValue, max: endValue })\n } else if (startValue > endValue) {\n handleChange({ min: endValue, max: endValue })\n }\n }\n\n const handleEndValueBlur = (): void => {\n if (endValue < startValue) {\n handleChange({ min: minValue, max: startValue })\n } else if (endValue > maxValue) {\n handleChange({ min: minValue, max: maxValue })\n }\n }\n\n const getCommonInputValues = (): {} => ({\n maxValue,\n minValue,\n step,\n units: unit,\n })\n\n return (\n
\n \n
\n \n \n to\n \n \n
\n
\n )\n}\n\nexport default RangeSliderWithInputs\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport CopyTextTooltip from './CopyTextTooltip'\nimport { shortenString } from '../../utils'\n\nexport interface ShortenTextTooltipProps {\n value: string\n maxLength?: number\n charsShownCount?: number\n}\n\nconst ShortenTextTooltip: FC = ({ value, maxLength = 20, charsShownCount }) => (\n \n {\n value.length > maxLength\n && (\n {shortenString(value, maxLength, charsShownCount || maxLength - 5)}}\n fullText={value}\n />\n )\n }\n {\n value.length <= maxLength\n && value\n }\n \n)\n\nexport default ShortenTextTooltip\n","import React, { FC } from 'react'\nimport Tabs, { TabsProps } from '@material-ui/core/Tabs'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { colors } from '../../theme'\n\nexport interface StyledTabsProps {\n value: string\n onChange: (event: React.ChangeEvent<{}>, newValue: string) => void\n}\n\nconst useStyles = makeStyles({\n indicator: {\n display: 'flex',\n justifyContent: 'center',\n backgroundColor: 'transparent',\n },\n root: {\n borderBottom: `1px solid ${colors.gray3}`,\n },\n})\n\nconst StyledTabs: FC = (props: TabsProps) => {\n const { children } = props\n const classes = useStyles()\n return (\n \n {children}\n \n )\n}\n\nexport default StyledTabs\n","import { Tab as MUITab, Tabs as MUITabs } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React, { FC } from 'react'\nimport { colors, fonts } from '../../theme'\n\nexport interface SwitchTabsProps {\n label1: string\n label2: string\n value?: 0 | 1\n onChange: (event: React.ChangeEvent<{}>, value: number) => void\n}\n\nconst a11yProps = (index: number): {} => ({\n id: `full-width-tab-${index}`,\n 'aria-controls': `full-width-tabpanel-${index}`,\n})\n\nconst useStyles = makeStyles(() => ({\n root: {\n backgroundColor: colors.white,\n minHeight: 20,\n width: '100%',\n border: `${colors.primary} solid 1px`,\n borderRadius: 50,\n overflow: 'hidden',\n },\n tabContainer: {\n minHeight: 20,\n width: '100%',\n },\n tab: {\n '&:hover': {\n color: colors.primary,\n },\n borderRadius: 50,\n color: colors.gray3,\n fontWeight: fonts.weight.light,\n maxWidth: '50%',\n minHeight: '100%',\n minWidth: '50%',\n outlineStyle: 'none',\n padding: 0,\n textTransform: 'capitalize',\n zIndex: 1,\n '&:focus': {\n outlineStyle: 'none',\n },\n },\n // shows the transition between tabs\n tabIndicator: {\n backgroundColor: colors.primary,\n borderRadius: 50,\n height: '100%',\n },\n tabSelected: {\n // the '!important' overrides the on hover functionality when it's active\n backgroundColor: `${colors.primary} !important`,\n color: `${colors.white} !important`,\n },\n}))\n\nconst SwitchTabs: FC = ({\n label1, label2, value: controlledValue, onChange,\n}) => {\n const classes = useStyles()\n\n const handleChange = (\n event: React.ChangeEvent<{}>, newValue: number,\n ): void => {\n onChange(event, newValue)\n }\n\n return (\n
\n \n \n \n \n
\n )\n}\n\nexport default SwitchTabs\n","import React, { FC } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport IconButton, { IconButtonProps } from '@material-ui/core/IconButton'\n\nexport interface TooltipIconButtonProps {\n tooltipTitle: string\n iconButtonProps: IconButtonProps\n icon: React.ReactNode\n}\n\nconst TooltipIconButton: FC = ({\n tooltipTitle,\n iconButtonProps,\n icon,\n}) => (\n \n \n \n {icon}\n \n \n\n \n)\n\nexport default TooltipIconButton\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport Box from '@material-ui/core/Box'\nimport Grid from '@material-ui/core/Grid'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../theme'\nimport ModalDialogue from './ModalDialogue'\n\nexport interface WrongNetworkModalProps {\n open: boolean\n currentNetworkName?: string\n requiredNetworkName: string\n onClose: () => void\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n boxContainer: {\n border: `1px solid ${colors.primary}`,\n padding: theme.spacing(5),\n marginTop: theme.spacing(3),\n },\n loaderContainer: {\n display: 'flex',\n justifyContent: 'center',\n },\n}))\n\nconst WrongNetworkModal: FC = ({\n open, currentNetworkName = 'Private network', requiredNetworkName, onClose,\n}) => {\n const classes = useStyles()\n return (\n \n \n \n This dApp only works on the\n {' '}\n {requiredNetworkName}\n .\n You are currently on\n {' '}\n {currentNetworkName}\n .\n \n \n \n \n \n \n Waiting for the right network...\n \n Switch networks on your wallet\n \n \n \n \n \n )\n}\nexport default WrongNetworkModal\n","import React, { FC, HTMLAttributes } from 'react'\nimport { Grid } from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport FooterColumn, { FooterColumnProps } from '../molecules/FooterColumn'\nimport { colors, fonts } from '../../theme'\nimport { logoBlackAndBlue } from '../../assets/images'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FooterProps extends HTMLAttributes {\n className?: string\n copyrightText: string\n linksColumns: FooterColumnProps[]\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n copyright: {\n display: 'flex',\n justifyContent: 'center',\n },\n copyrightContent: {\n color: colors.gray4,\n fontSize: fonts.size.tiny,\n },\n footerContainer: {\n backgroundColor: colors.gray2,\n display: 'flex',\n justifyContent: 'center',\n paddingBottom: theme.spacing(2),\n width: '100%',\n },\n footerContent: {\n marginTop: theme.spacing(2),\n maxWidth: '80%',\n width: '100%',\n },\n linksColumn: {\n marginBottom: theme.spacing(1),\n },\n logoColumn: {\n display: 'flex',\n justifyContent: 'center',\n padding: theme.spacing(5),\n },\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n paddingTop: theme.spacing(4),\n width: '100%',\n },\n tongue: {\n backgroundColor: colors.gray2,\n borderTopLeftRadius: '50% 80%',\n borderTopRightRadius: '50% 80%',\n height: theme.spacing(10),\n width: '100%',\n },\n}))\n\nconst Footer: FC = ({\n className = '', copyrightText, linksColumns, ...rest\n}) => {\n const classes = useStyles()\n\n return (\n
\n
\n
\n
\n \n \n \"logo\"\n \n {\n linksColumns.map((linkColumn: FooterColumnProps) => (\n \n \n \n ))\n }\n \n
\n \n {copyrightText}\n \n
\n
\n
\n
\n )\n}\n\nexport default Footer\n","export enum ConnectionStatus {\n LoggedIn = 0,\n LoggedOut = 1,\n WalletLocked = 2,\n WrongNetwork = 3\n}\n\nexport default ConnectionStatus\n","import Web3 from 'web3'\nimport NetworkInfo from '../models/NetworkInfo'\nimport networksData from '../data/networks.json'\nimport ProviderInfo, {\n EProvider,\n getProviderInfo,\n} from '../models/ProviderInfo'\nimport ConnectionStatus from '../models/Enums'\n\ndeclare global {\n interface Window {\n ethereum: any // FIXME: This should be properly typed as per metamask\n web3: Web3\n }\n}\n\nexport function getWeb3(\n provider: EProvider = EProvider.METAMASK,\n): Promise {\n return new Promise((resolve, reject) => {\n switch (provider) {\n // Injected Web3 wallet like MetaMask or Nifty\n case EProvider.NIFTY:\n case EProvider.METAMASK: {\n // New MetaMask\n if (window.ethereum) {\n const web3 = new Web3(window.ethereum)\n window.ethereum\n .enable()\n .then(() => resolve(web3))\n .catch(reject)\n } else if (window.web3) {\n // Older versions of MetaMask or other\n resolve(new Web3(window.web3.currentProvider))\n } else reject(new Error('No injected web3 found'))\n break\n }\n\n // Localhost\n case EProvider.LOCAL: {\n const localhostProvider = new Web3.providers.HttpProvider(\n \"'http://127.0.0.1:4444'\",\n )\n resolve(new Web3(localhostProvider))\n break\n }\n\n // Unknown & not implemented\n default: {\n reject(\n new Error(\n `Provider not implemented or unknown. Chosen provider ${provider}`,\n ),\n )\n break\n }\n }\n })\n}\n\nexport const getNetworkInfo = (\n networkId: number,\n chainId?: number,\n): NetworkInfo | undefined => networksData.find((n) => (chainId\n ? n.networkId === networkId && n.chainId === chainId\n : n.networkId === networkId)) as NetworkInfo\n\nexport const getNetworkInfoFromWeb3 = async (\n web3: Web3,\n): Promise => {\n // set networkId and chainId\n let networkId: number | undefined\n let chainId: number | undefined\n try {\n networkId = await web3.eth.net.getId()\n\n if (networkId) {\n chainId = await web3.eth.getChainId()\n }\n } catch (error) {}\n let networkInfo: NetworkInfo | undefined\n\n if (networkId) {\n try {\n networkInfo = getNetworkInfo(networkId, chainId)\n } catch (error) {}\n }\n return networkInfo\n}\n\nconst getWeb3Provider = (): any => {\n // New Metamask\n if (window.ethereum) return window.ethereum\n\n // Older versions of Metamask or other\n if (window.web3) return window.web3.currentProvider\n return undefined\n}\n\n/* eslint-disable complexity */\nexport const getAvailableProviders = (): ProviderInfo[] | undefined => {\n const result: ProviderInfo[] = []\n\n const currentProvider = getWeb3Provider()\n\n if (!currentProvider) return undefined\n\n if (currentProvider.isMetaMask) {\n // Nifty is also MetaMask\n result.push(\n currentProvider.isNiftyWallet\n ? getProviderInfo(EProvider.NIFTY)\n : getProviderInfo(EProvider.METAMASK),\n )\n }\n\n if (currentProvider.isTrust) result.push(getProviderInfo(EProvider.TRUST))\n\n if (currentProvider.isGoWallet) result.push(getProviderInfo(EProvider.GO_WALLET))\n\n if (currentProvider.isAlphaWallet) result.push(getProviderInfo(EProvider.ALPHA_WALLET))\n\n if (currentProvider.isStatus) result.push(getProviderInfo(EProvider.STATUS))\n\n if (currentProvider.isToshi) result.push(getProviderInfo(EProvider.COINBASE))\n\n // eslint-disable-next-line no-underscore-dangle\n if (typeof (window as any).__CIPHER__ !== 'undefined') result.push(getProviderInfo(EProvider.CIPHER))\n\n if (currentProvider.constructor.name === 'EthereumProvider') result.push(getProviderInfo(EProvider.MIST))\n\n if (currentProvider.constructor.name === 'Web3FrameProvider') result.push(getProviderInfo(EProvider.PARITY))\n\n if (currentProvider.host && currentProvider.host.indexOf('infura') !== -1) result.push(getProviderInfo(EProvider.INFURA))\n\n if (currentProvider.host && currentProvider.host.indexOf('localhost') !== -1) result.push(getProviderInfo(EProvider.LOCAL))\n\n return result\n}\n\nexport const getConnectionStatus = (\n web3?: Web3,\n requiredNetworkId?: number,\n currentNetworkId?: number,\n account?: string,\n): ConnectionStatus => {\n if (!web3) return ConnectionStatus.LoggedOut\n\n if (currentNetworkId !== requiredNetworkId) {\n return ConnectionStatus.WrongNetwork\n }\n\n if (account) {\n return ConnectionStatus.LoggedIn\n }\n return ConnectionStatus.WalletLocked\n}\n","import React, { FC, useState, useEffect } from 'react'\nimport Web3 from 'web3'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Popover from '@material-ui/core/Popover'\nimport Typography from '@material-ui/core/Typography'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport { shortenString } from '../../utils'\nimport { Button, NetworkIndicator } from '../atoms'\nimport { colors, fonts } from '../../theme'\nimport { AccountModal, WrongNetworkModal } from '../molecules'\nimport ConnectionStatus from '../../models/Enums'\nimport { getConnectionStatus } from '../../services/Web3Service'\nimport NetworkInfo from '../../models/NetworkInfo'\n\nexport interface AccountProps {\n requiredNetworkName: string\n setProvider?: (provider: EProvider) => Promise\n web3?: Web3\n networkInfo?: NetworkInfo\n account?: string\n availableProviders?: ProviderInfo[]\n requiredNetworkId?: number\n onCorrectNetworkMessage?: string\n onNetworkMismatchMessage?: string\n noNetworkMessage?: string\n modalInitiallyOpened?: boolean\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n accountText: {\n fontSize: fonts.size.tiny,\n textAlign: 'center',\n },\n button: {\n border: `1px solid ${colors.white}`,\n '&:hover': {\n border: `1px solid ${colors.transparent}`,\n },\n },\n networkIndicator: {\n marginRight: theme.spacing(1),\n },\n rightNetwork: {\n padding: theme.spacing(2),\n },\n}))\n\nconst Account: FC = (props) => {\n const {\n web3,\n networkInfo,\n account,\n setProvider,\n availableProviders,\n requiredNetworkId,\n onCorrectNetworkMessage,\n onNetworkMismatchMessage,\n noNetworkMessage,\n requiredNetworkName,\n modalInitiallyOpened = false,\n } = props\n const classes = useStyles()\n\n const [accountModalOpen, setAccountModalOpen] = useState(modalInitiallyOpened)\n const handleAccountModalClose = (): void => setAccountModalOpen(false)\n const handleAccountModalOpen = (): void => setAccountModalOpen(true)\n const [wrongNetModalOpen, setWrongNetModalOpen] = useState(false)\n const openWrongNetModal = (): void => setWrongNetModalOpen(true)\n const closeWrongNetModal = (): void => setWrongNetModalOpen(false)\n const connectionStatus: ConnectionStatus = getConnectionStatus(web3, requiredNetworkId, networkInfo?.networkId, account)\n\n // TODO: extract popover functionallity into new component\n const [anchorEl, setAnchorEl] = React.useState(null)\n\n const popoverOpen = Boolean(anchorEl)\n const id = popoverOpen ? 'right-net-popover' : undefined\n\n const handlePopoverClose = () => {\n setAnchorEl(null)\n }\n\n useEffect(() => {\n if (connectionStatus === ConnectionStatus.WrongNetwork) {\n openWrongNetModal()\n } else {\n closeWrongNetModal()\n handlePopoverClose()\n }\n }, [connectionStatus])\n\n const accountText = (): string => {\n if (connectionStatus === ConnectionStatus.LoggedOut) return 'Connect wallet'\n\n if (connectionStatus === ConnectionStatus.WrongNetwork) return 'Wrong Network'\n\n if (account) {\n // means connectionStatus === ConnectionStatus.LoggedIn\n return shortenString(account)\n }\n return 'Unlock your wallet'\n }\n\n const onAccountClicked = (event: React.MouseEvent): void | null => {\n if (connectionStatus === ConnectionStatus.WrongNetwork) return openWrongNetModal()\n\n if (connectionStatus === ConnectionStatus.LoggedOut) return handleAccountModalOpen()\n\n if (connectionStatus === ConnectionStatus.LoggedIn) return setAnchorEl(event.currentTarget)\n return null\n }\n\n return (\n \n \n {/* TODO: extract molecule */}\n \n \n {`You are successfully connected to ${networkInfo?.name}.`}\n \n \n \n \n \n )\n}\n\nexport default Account\n","import React, { FC } from 'react'\nimport {\n AppBar, Grid, ListItemIcon, Toolbar,\n} from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { NavLink } from 'react-router-dom'\nimport Typography from '@material-ui/core/Typography'\nimport { ActionHeaderItemProps, HeaderProps, NavItemProps } from './HeaderProps'\nimport { LogoNavbar } from '../../atoms'\nimport { colors, fonts, globalConstants } from '../../../theme'\nimport { removeEmptySpaces } from '../../../utils'\n\nconst useStyles = makeStyles((theme: Theme) => ({\n activeNavlink: {\n color: `${colors.white} !important`,\n fontWeight: fonts.weight.medium,\n },\n navLink: {\n alignItems: 'center',\n color: colors.white,\n display: 'flex',\n paddingLeft: theme.spacing(5),\n paddingRight: theme.spacing(5),\n textAlign: 'center',\n textDecoration: 'none',\n '&:hover': {\n color: colors.gray5,\n textDecoration: 'none',\n },\n },\n navLinkContainer: {\n display: 'flex',\n },\n root: {\n boxShadow: 'none',\n // this height needs to be equal to the marginTop of PageTemplate\n height: theme.spacing(globalConstants.headerHeight),\n },\n}))\n\nconst HeaderDesktop: FC = ({\n hreflogo, itemsStart, itemsEnd, login,\n}) => {\n const classes = useStyles()\n const Login = login\n\n return (\n \n \n \n \n \n \n \n \n \n {\n !!itemsStart?.length\n && itemsStart.map((navItem: NavItemProps) => (\n \n \n {navItem.title}\n \n \n ))\n }\n \n \n {\n !!itemsEnd?.length\n && itemsEnd.map(({ icon, ...rest }: ActionHeaderItemProps) => (\n \n {icon}\n \n ))\n }\n \n \n
\n \n
\n \n \n
\n
\n )\n}\n\nexport default HeaderDesktop\n","import React, { FC, useState } from 'react'\nimport {\n AppBar,\n Divider,\n Drawer, Toolbar,\n IconButton, List, ListItem,\n ListItemText, ListItemIcon, Grid,\n} from '@material-ui/core'\nimport { NavLink } from 'react-router-dom'\nimport MenuIcon from '@material-ui/icons/Menu'\nimport ChevronLeftIcon from '@material-ui/icons/ChevronLeft'\nimport { Theme, createStyles, makeStyles } from '@material-ui/core/styles'\nimport { ActionHeaderItemProps, HeaderProps, NavItemProps } from './HeaderProps'\nimport { colors, globalConstants } from '../../../theme'\nimport { LogoNavbar } from '../../atoms'\nimport { removeEmptySpaces } from '../../../utils'\n\nconst drawerWidth = 240\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n drawerHeader: {\n display: 'flex',\n alignItems: 'center',\n padding: theme.spacing(0, 1),\n // necessary for content to be below app bar\n ...theme.mixins.toolbar,\n justifyContent: 'flex-end',\n },\n drawerPaper: {\n width: drawerWidth,\n },\n mobileAppBar: {\n boxShadow: 'none',\n // this height needs to be equal to the marginTop of PageTemplate\n height: theme.spacing(globalConstants.headerHeight),\n transition: theme.transitions.create(['margin', 'width'], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n },\n mobileAppBarShift: {\n width: `calc(100% - ${drawerWidth}px)`,\n marginLeft: drawerWidth,\n transition: theme.transitions.create(['margin', 'width'], {\n easing: theme.transitions.easing.easeOut,\n duration: theme.transitions.duration.enteringScreen,\n }),\n },\n mobileNavLink: {\n alignItems: 'center',\n color: colors.gray4,\n display: 'flex',\n textDecoration: 'none',\n width: '100%',\n '&:hover': {\n color: colors.gray5,\n textDecoration: 'none',\n },\n },\n mobileNavLinkActive: {\n color: `${colors.primary} !important`,\n },\n}))\n\nconst HeaderMobile: FC = ({\n hreflogo, itemsStart, itemsEnd, login: Login,\n}) => {\n const classes = useStyles()\n const [open, setOpen] = useState(false)\n\n const toggleDrawer = (isOpen: boolean) => (\n event: React.KeyboardEvent | React.MouseEvent,\n ): void => {\n if (\n event.type === 'keydown'\n && ((event as React.KeyboardEvent).key === 'Tab'\n || (event as React.KeyboardEvent).key === 'Shift')\n ) {\n return\n }\n setOpen(isOpen)\n }\n\n return (\n \n \n \n {!open && (\n \n \n \n \n \n \n \n \n \n \n \n \n {\n !!itemsEnd?.length\n && itemsEnd.map(({ icon, ...rest }: ActionHeaderItemProps) => (\n \n {icon}\n \n ))\n }\n \n \n
\n \n
\n
\n \n )}\n
\n \n \n
\n \n \n \n
\n \n \n {\n !!itemsStart?.length\n && itemsStart.map((headerItem: NavItemProps) => (\n \n \n \n {headerItem.icon}\n \n \n \n \n ))\n }\n \n \n \n\n )\n}\n\nexport default HeaderMobile\n","import React, { FC } from 'react'\nimport Hidden from '@material-ui/core/Hidden'\nimport { HeaderProps } from './HeaderProps'\nimport HeaderDesktop from './HeaderDesktop'\nimport HeaderMobile from './HeaderMobile'\n\nconst Header: FC = (props) => (\n \n \n \n \n \n \n \n \n)\n\nexport default Header\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../../theme'\nimport { headerTongueImg } from '../../../assets/images'\n\nexport interface HeaderTongueProps {\n description: string\n titleLine1: string\n titleLine2: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n textContainer: {\n alignItems: 'center',\n backgroundColor: colors.primary,\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n },\n textContent: {\n color: colors.white,\n display: 'flex',\n flexDirection: 'column',\n textAlign: 'center',\n [theme.breakpoints.down('sm')]: {\n maxWidth: '90%',\n },\n [theme.breakpoints.up('md')]: {\n maxWidth: '65%',\n },\n [theme.breakpoints.up('xl')]: {\n maxWidth: '55%',\n },\n },\n titleContent: {\n marginBottom: theme.spacing(1),\n fontSize: theme.spacing(5),\n fontWeight: fonts.weight.regular,\n },\n tongueImg: {\n width: '100%',\n },\n}))\n\nconst HeaderTongue: FC = (\n { description, titleLine1, titleLine2 },\n) => {\n const classes = useStyles()\n\n return (\n \n
\n
\n \n {titleLine1}\n
\n {' '}\n {titleLine2}\n \n {description}\n
\n
\n \n
\n )\n}\n\nexport default HeaderTongue\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport FAQSection, { FAQSectionProps } from '../molecules/FAQSection'\nimport { colors } from '../../theme'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FAQPageTemplateProps {\n className?: string\n mainTitle: string\n questionsAndAnswers: FAQSectionProps[]\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n marginTop: theme.spacing(3),\n },\n container: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n [theme.breakpoints.up('md')]: {\n maxWidth: '80%',\n },\n },\n grayBackground: {\n backgroundColor: colors.gray1,\n },\n mainTitle: {\n fontSize: theme.typography.pxToRem(50),\n margin: theme.spacing(2, 0),\n },\n questionsSection: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n marginTop: theme.spacing(2),\n },\n}))\n\nconst FAQPageTemplate: FC = ({ className = '', mainTitle, questionsAndAnswers }) => {\n const classes = useStyles()\n return (\n
\n
\n {mainTitle}\n
\n {\n questionsAndAnswers.map((qAndA: FAQSectionProps, i) => (\n \n ))\n }\n
\n
\n
\n )\n}\n\nexport default FAQPageTemplate\n","import React, { FC, HTMLAttributes } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { globalConstants } from '../../theme'\n\nexport type PageTemplateProps = HTMLAttributes;\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n // as the header has fixed position, we need to match its height\n marginTop: theme.spacing(globalConstants.headerHeight),\n width: '100%',\n },\n}))\n\nconst PageTemplate: FC = ({ children, className = '', ...props }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default PageTemplate\n","import React, {\n Component, createContext, ReactNode,\n} from 'react'\nimport Web3 from 'web3'\nimport {\n getWeb3, getNetworkInfoFromWeb3, getAvailableProviders,\n} from '../services/Web3Service'\nimport NetworkInfo from '../models/NetworkInfo'\nimport ProviderInfo, { EProvider } from '../models/ProviderInfo'\n\nexport interface Web3ProviderProps {\n state: {\n provider?: EProvider\n web3?: Web3\n account?: string\n networkInfo?: NetworkInfo\n requiredNetworkId?: number\n }\n actions: {\n setProvider?: (\n provider: EProvider,\n onStateChanged?: (account?: string) => void\n ) => Promise\n onConnectedNetworkChange?: () => void\n onConnectedAccountChange?: () => void\n }\n requiredNetworkId?: number\n requiredChainId?: number\n availableProviders?: ProviderInfo[]\n}\n\nexport const defaultWeb3State: Web3ProviderState = {\n provider: undefined,\n web3: undefined,\n account: undefined,\n networkInfo: undefined,\n}\n\nexport const Web3Store = createContext({\n state: defaultWeb3State,\n actions: {\n setProvider: (): Promise => Promise.resolve(),\n onConnectedNetworkChange: (): any => 0,\n onConnectedAccountChange: (): any => 0,\n },\n requiredNetworkId: undefined,\n requiredChainId: undefined,\n})\n\ninterface Web3ProviderState {\n provider?: EProvider\n web3?: Web3\n account?: string\n networkInfo?: NetworkInfo\n}\n\nconst getAccountFromEthAccounts = (accounts: string[] | string): string | undefined => {\n let account: string\n\n if (Array.isArray(accounts)) [account] = accounts\n else account = accounts\n return account\n}\n\n/**\n * The provider will not read the account when a requiredNetworkId was provided\n * and it does not match the networkId of current networkInfo, same applies to\n * chainId. Nothing happens if the requiredNetworkId was not specified\n * @param requiredNetworkId given on the props of the provider\n * @param requiredChainId given on the props of the provider\n * @param networkInfo obtained from the wallet\n */\nconst shouldReadAccount = (\n requiredNetworkId?: number,\n requiredChainId?: number,\n networkInfo?: NetworkInfo,\n): boolean => {\n // the consumer did not provide enough information to validate the network, so we do not check\n if (!requiredNetworkId) return true\n\n if (requiredNetworkId === networkInfo?.networkId) {\n // only when chainId is provided we compare it\n if (requiredChainId) return requiredChainId === networkInfo?.chainId\n return true\n }\n return false\n}\n\nclass Web3Provider extends Component {\n private readonly requiredNetworkId?: number\n\n private readonly requiredChainId?: number\n\n private availableProviders?: ProviderInfo[]\n\n constructor(props: Web3ProviderProps) {\n super(props)\n this.state = defaultWeb3State\n this.requiredNetworkId = props.requiredNetworkId\n this.requiredChainId = props.requiredChainId\n this.onConnectedNetworkChange = props.actions.onConnectedNetworkChange\n this.onConnectedAccountChange = props.actions.onConnectedAccountChange\n this.setProvider = this.setProvider.bind(this)\n this.initialize()\n }\n\n private readonly onConnectedNetworkChange?: () => void\n\n private readonly onConnectedAccountChange?: () => void\n\n public async setProvider(provider: EProvider,\n onStateChanged?: (account?: string) => void): Promise {\n const web3 = await getWeb3(provider)\n const accounts = await web3.eth.getAccounts()\n const networkInfo = await getNetworkInfoFromWeb3(web3)\n // only validate requiredNetworkId and requiredChainId when are provided\n const shouldSetAccount = shouldReadAccount(this.requiredNetworkId, this.requiredChainId, networkInfo)\n\n const account = shouldSetAccount\n ? getAccountFromEthAccounts(accounts)\n : undefined\n\n this.setState(\n {\n web3,\n provider,\n account,\n networkInfo,\n },\n () => (onStateChanged && onStateChanged(account)),\n )\n }\n\n private initialize(): void {\n if (!window.ethereum) {\n return\n }\n this.availableProviders = getAvailableProviders()\n\n window.ethereum.autoRefreshOnNetworkChange = false\n // handle on networkChange\n window.ethereum.on('networkChanged', async (_netId) => {\n const { networkInfo } = this.state\n\n if (!networkInfo) return // wallet is not connected\n const { provider } = this.state\n const web3 = await getWeb3(provider)\n const accounts = await web3.eth.getAccounts()\n const newNetworkInfo = await getNetworkInfoFromWeb3(web3)\n\n // we do not want to set the account if we know it is the wrong network\n const shouldSetAccount = shouldReadAccount(\n this.requiredNetworkId,\n this.requiredChainId,\n newNetworkInfo,\n )\n const account = shouldSetAccount\n ? getAccountFromEthAccounts(accounts)\n : undefined\n\n this.setState(\n {\n networkInfo: newNetworkInfo,\n account,\n },\n () => this.onConnectedNetworkChange && this.onConnectedNetworkChange(),\n )\n })\n // handle on accountsChanged\n window.ethereum.on('accountsChanged', (accounts: string | string[]) => {\n const { networkInfo } = this.state\n\n if (!networkInfo) return // wallet is not connected\n // we only care about this change if it is on the right network\n // or if we can not validate the required network\n const shouldSetAccount = shouldReadAccount(\n this.requiredNetworkId, this.requiredChainId, networkInfo,\n )\n\n if (shouldSetAccount) {\n const account = getAccountFromEthAccounts(accounts)\n\n if (account) {\n this.setState({\n account,\n },\n () => this.onConnectedAccountChange\n && this.onConnectedAccountChange())\n }\n }\n })\n }\n\n public render(): ReactNode {\n const {\n provider,\n web3,\n account,\n networkInfo,\n } = this.state\n const {\n setProvider,\n onConnectedNetworkChange,\n onConnectedAccountChange,\n availableProviders,\n } = this\n\n const { children } = this.props\n\n return (\n \n {children}\n \n )\n }\n}\n\nexport default { Consumer: Web3Store.Consumer, Provider: Web3Provider }\n"],"names":["useStyles","makeStyles","block","width","noShadow","boxShadow","rounded","borderRadius","Button","className","shadow","children","rest","classes","React","MUIButton","trim","colors","black","primary","darkBlue","gray1","gray2","gray3","gray4","gray5","gray6","transparent","white","fonts","family","size","tiny","small","normal","medium","subtitleSmall","subtitleBig","weight","light","regular","bold","globalConstants","headerHeight","theme","createMuiTheme","palette","main","secondary","typography","fontFamily","button","textTransform","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","body1","fontWeight","props","overrides","MuiButton","root","MuiFormControlLabel","color","MuiSlider","rail","height","opacity","track","thumb","marginLeft","MuiTextField","createStyles","unCheckedIcon","checkedIcon","Checkbox","checked","isChecked","setIsChecked","useState","handleChange","event","newChecked","onChange","MUICheckbox","CheckBoxSharp","icon","CheckBoxOutlineBlankSharp","require","EProvider","getProviderInfo","eProvider","METAMASK","name","iconImg","metaMaskIconImg","NIFTY","niftyIconImg","LEDGER","TREZOR","TRUST","GO_WALLET","ALPHA_WALLET","STATUS","COINBASE","MIST","PARITY","INFURA","LOCAL","Error","padding","margin","content","display","alignItems","maxHeight","spacing","justifyContent","imageWrapper","marginRight","LoginOption","onClick","providerInfo","providerContent","src","alt","handleOnClick","window","open","variant","Tooltip","arrow","title","Logo","logoFullWhite","LogoNavbar","fontSize","pxToRem","selected","borderBottom","StyledNavTab","Tab","component","NavLink","disableRipple","defaultonCorrectNetworkMessage","deaulftonNetworkMismatchMessage","defaultNoNetworkMessage","NetworkStatus","getNetworkStatus","currentNetworkId","requiredNetworkId","NO_NETWORK","CORRECT_NETWORK","NETWORK_MISSMATCH","NetworkIndicator","iconClassName","onCorrectNetworkMessage","onNetworkMismatchMessage","noNetworkMessage","networkStatus","iconPerNetworkStatus","Map","set","WarningIcon","style","yellow","ErrorIcon","CheckCircleOutlineOutlinedIcon","green","get","paper","backgroundColor","background","border","shadows","left","minWidth","position","top","transform","Modal","MUIModal","ModalHeader","ModalTitle","Typography","borderTop","paddingTop","ModalFooter","ModalBody","overlay","zIndex","spinner","animation","WithSpinner","WrappedComponent","Spinner","isLoading","logoBlueIcon","heading","accordionSummary","Accordion","expanded","id","isExpanded","setIsExpanded","MUIAccordion","AccordionSummary","expandIcon","ExpandMoreIcon","AccordionDetails","AccountModal","setProvider","availableProviders","onClose","onProviderSet","Fragment","length","map","key","tooltipTitle","CopyTextTooltip","displayElement","fullText","isCopied","setIsCopied","tooltipContent","FileCopyIcon","interactive","navigator","clipboard","writeText","then","headingExpanded","headingCollapsed","panelDetails","answerContainer","breakpoints","up","maxWidth","answerText","FAQSection","initiallyExpanded","question","answer","RemoveIcon","AddIcon","LabeledCheckbox","labelText","labelClassName","FormControlLabel","label","control","FilterCheckboxCard","items","item","i","shortenString","str","largerThan","charsShownCount","substr","removeEmptySpaces","replace","maxSupportedNumber","minSupportedNumber","validatedNumber","num","flexDirection","footerLink","textDecoration","footerTitle","textAlign","FooterColumn","links","link","isExternal","href","to","toString","target","ModalDialogue","footer","input","paddingLeft","inputContainer","paddingRight","units","unitsContainer","alignSelf","UnitsInput","maxValue","minValue","value","step","handleOnBlur","handleOnChange","Grid","container","xs","Input","onBlur","type","fullWidth","inputProps","min","max","inputsContainer","toContainer","RangeSliderWithInputs","values","start","startValue","end","endValue","unit","handleStartInputChange","newStartValue","Number","handleEndInputChange","newEndValue","handleSliderChange","_","newSliderValue","handleStartValueBlur","handleEndValueBlur","getCommonInputValues","Slider","ShortenTextTooltip","maxLength","indicator","StyledTabs","Tabs","a11yProps","index","minHeight","overflow","tabContainer","tab","outlineStyle","tabIndicator","tabSelected","SwitchTabs","label1","label2","controlledValue","newValue","MUITabs","TabIndicatorProps","MUITab","TooltipIconButton","iconButtonProps","IconButton","boxContainer","marginTop","loaderContainer","WrongNetworkModal","currentNetworkName","requiredNetworkName","gutterBottom","align","Box","sm","CircularProgress","copyright","copyrightContent","footerContainer","paddingBottom","footerContent","linksColumn","marginBottom","logoColumn","tongue","borderTopLeftRadius","borderTopRightRadius","Footer","copyrightText","linksColumns","direction","md","lg","logoBlackAndBlue","linkColumn","ConnectionStatus","getWeb3","provider","Promise","resolve","reject","ethereum","web3","Web3","enable","catch","currentProvider","localhostProvider","providers","HttpProvider","getNetworkInfo","networkId","chainId","networksData","find","n","getNetworkInfoFromWeb3","eth","net","getId","getChainId","error","networkInfo","getWeb3Provider","undefined","getAvailableProviders","result","isMetaMask","push","isNiftyWallet","isTrust","isGoWallet","isAlphaWallet","isStatus","isToshi","__CIPHER__","CIPHER","constructor","host","indexOf","getConnectionStatus","account","LoggedOut","WrongNetwork","LoggedIn","WalletLocked","accountText","networkIndicator","rightNetwork","Account","modalInitiallyOpened","accountModalOpen","setAccountModalOpen","handleAccountModalClose","handleAccountModalOpen","wrongNetModalOpen","setWrongNetModalOpen","openWrongNetModal","closeWrongNetModal","connectionStatus","anchorEl","setAnchorEl","popoverOpen","Boolean","handlePopoverClose","useEffect","onAccountClicked","currentTarget","Popover","anchorOrigin","vertical","horizontal","transformOrigin","activeNavlink","navLink","navLinkContainer","HeaderDesktop","hreflogo","itemsStart","itemsEnd","login","Login","AppBar","Toolbar","justify","navItem","activeClassName","alignContent","ListItemIcon","drawerWidth","drawerHeader","mixins","toolbar","drawerPaper","mobileAppBar","transition","transitions","create","easing","sharp","duration","leavingScreen","mobileAppBarShift","easeOut","enteringScreen","mobileNavLink","mobileNavLinkActive","HeaderMobile","setOpen","toggleDrawer","isOpen","role","onKeyDown","MenuIcon","Drawer","anchor","ChevronLeftIcon","Divider","List","headerItem","ListItem","ListItemText","Header","Hidden","smDown","mdUp","textContainer","textContent","down","titleContent","tongueImg","HeaderTongue","description","titleLine1","titleLine2","headerTongueImg","grayBackground","mainTitle","questionsSection","FAQPageTemplate","questionsAndAnswers","qAndA","PageTemplate","defaultWeb3State","Web3Store","createContext","state","actions","onConnectedNetworkChange","onConnectedAccountChange","requiredChainId","getAccountFromEthAccounts","accounts","Array","isArray","shouldReadAccount","Web3Provider","Component","bind","initialize","onStateChanged","getAccounts","shouldSetAccount","setState","autoRefreshOnNetworkChange","on","_netId","newNetworkInfo","render","Provider","Consumer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,MAAMA,SAAS,GAAGC,UAAU,CAAC,OAAO;AAClCC,EAAAA,KAAK,EAAE;AACLC,IAAAA,KAAK,EAAE;AADF,GAD2B;AAIlCC,EAAAA,QAAQ,EAAE;AACRC,IAAAA,SAAS,EAAE;AADH,GAJwB;AAOlCC,EAAAA,OAAO,EAAE;AACPC,IAAAA,YAAY,EAAE;AADP;AAPyB,CAAP,CAAD,CAA5B;;AAYA,MAAMC,MAAM,GAAoB,CAAC;AAC/BC,EAAAA,SAAS,EAATA,UAAS,GAAG,EADmB;AACfP,EAAAA,KADe;AACRQ,EAAAA,MADQ;AACAJ,EAAAA,OADA;AACSK,EAAAA,QADT;AACmB,KAAGC;AADtB,CAAD;AAG9B,QAAMC,OAAO,GAAGb,SAAS,EAAzB;AAEA,SACEc,4BAAA,CAACC,QAAD;AACEN,IAAAA,SAAS,KACJH,OAAO,GAAGO,OAAO,CAACP,OAAX,GAAqB;UAC7BI,MAAM,GAAG,EAAH,GAAQG,OAAO,CAACT;UACtBF,KAAK,GAAGW,OAAO,CAACX,KAAX,GAAmB,MAAMO,YAFhC,CAE4CO,IAF5C;KAIEJ,KANN,EAQGD,QARH,CADF;AAYD,CAjBD;;MCnBaM,MAAM,GAAG;AACpBC,EAAAA,KAAK,EAAE,SADa;AAEpBC,EAAAA,OAAO,EAAE,SAFW;AAGpBC,EAAAA,QAAQ,EAAE,SAHU;AAIpBC,EAAAA,KAAK,EAAE,SAJa;AAKpBC,EAAAA,KAAK,EAAE,SALa;AAMpBC,EAAAA,KAAK,EAAE,SANa;AAOpBC,EAAAA,KAAK,EAAE,SAPa;AAQpBC,EAAAA,KAAK,EAAE,SARa;AASpBC,EAAAA,KAAK,EAAE,SATa;AAUpBC,EAAAA,WAAW,EAAE,WAVO;AAWpBC,EAAAA,KAAK,EAAE;AAXa,CAAf;AAcP,MAAaC,KAAK,GAAG;AACnBC,EAAAA,MAAM,EAAE,OADW;AAEnBC,EAAAA,IAAI,EAAE;AACJC,IAAAA,IAAI,EAAE,EADF;AAEJC,IAAAA,KAAK,EAAE,EAFH;AAGJC,IAAAA,MAAM,EAAE,EAHJ;AAIJC,IAAAA,MAAM,EAAE,EAJJ;AAKJC,IAAAA,aAAa,EAAE,EALX;AAMJC,IAAAA,WAAW,EAAE;AANT,GAFa;AAUnBC,EAAAA,MAAM,EAAE;AACNC,IAAAA,KAAK,EAAE,GADD;AAENC,IAAAA,OAAO,EAAE,GAFH;AAGNL,IAAAA,MAAM,EAAE,GAHF;AAINM,IAAAA,IAAI,EAAE;AAJA;AAVW,CAAd;AAkBP,MAAaC,eAAe,GAAG;AAC7BC,EAAAA,YAAY,EAAE;AADe,CAAxB;AAIP,MAAMC,KAAK,GAAGC,cAAc,CAAC;AAC3BC,EAAAA,OAAO,EAAE;AACP3B,IAAAA,OAAO,EAAE;AACP4B,MAAAA,IAAI,EAAE9B,MAAM,CAACE;AADN,KADF;AAIP6B,IAAAA,SAAS,EAAE;AACTD,MAAAA,IAAI,EAAE9B,MAAM,CAACO;AADJ;AAJJ,GADkB;AAS3ByB,EAAAA,UAAU,EAAE;AACVC,IAAAA,UAAU,EAAErB,KAAK,CAACC,MADR;AAEVqB,IAAAA,MAAM,EAAE;AACNC,MAAAA,aAAa,EAAE;AADT,KAFE;AAKVC,IAAAA,eAAe,EAAExB,KAAK,CAACS,MAAN,CAAaC,KALpB;AAMVe,IAAAA,iBAAiB,EAAEzB,KAAK,CAACS,MAAN,CAAaE,OANtB;AAOVe,IAAAA,gBAAgB,EAAE1B,KAAK,CAACS,MAAN,CAAaH,MAPrB;AAQVqB,IAAAA,cAAc,EAAE3B,KAAK,CAACS,MAAN,CAAaG,IARnB;AASVgB,IAAAA,KAAK,EAAE;AACLC,MAAAA,UAAU,EAAE7B,KAAK,CAACS,MAAN,CAAaC;AADpB;AATG,GATe;AAsB3BoB,EAAAA,KAAK,EAAE,EAtBoB;AAuB3BC,EAAAA,SAAS,EAAE;AACTC,IAAAA,SAAS,EAAE;AACTC,MAAAA,IAAI,EAAE;AACJJ,QAAAA,UAAU,EAAE7B,KAAK,CAACS,MAAN,CAAaC;AADrB;AADG,KADF;AAMTwB,IAAAA,mBAAmB,EAAE;AACnBD,MAAAA,IAAI,EAAE;AACJE,QAAAA,KAAK,EAAE/C,MAAM,CAACM;AADV;AADa,KANZ;AAWT0C,IAAAA,SAAS,EAAE;AACTC,MAAAA,IAAI,EAAE;AACJF,QAAAA,KAAK,EAAE/C,MAAM,CAACM,KADV;AAEJ4C,QAAAA,MAAM,EAAE,CAFJ;AAGJC,QAAAA,OAAO,EAAE;AAHL,OADG;AAMTN,MAAAA,IAAI,EAAE;AACJ3D,QAAAA,KAAK,EAAE,MADH;AAEJ6D,QAAAA,KAAK,EAAE/C,MAAM,CAACE,OAFV;AAGJgD,QAAAA,MAAM,EAAE;AAHJ,OANG;AAWTE,MAAAA,KAAK,EAAE;AACLF,QAAAA,MAAM,EAAE;AADH,OAXE;AAcTG,MAAAA,KAAK,EAAE;AACLC,QAAAA,UAAU,EAAE,CAAC,CADR;AAELJ,QAAAA,MAAM,EAAE,EAFH;AAGLhE,QAAAA,KAAK,EAAE;AAHF;AAdE,KAXF;AA+BTqE,IAAAA,YAAY,EAAE;AACZV,MAAAA,IAAI,EAAE;AACJE,QAAAA,KAAK,EAAE/C,MAAM,CAACM,KADV;AAEJ,mBAAW;AACTyC,UAAAA,KAAK,EAAE/C,MAAM,CAACK;AADL;AAFP;AADM;AA/BL;AAvBgB,CAAD,CAA5B;;AC3BA,MAAMtB,WAAS,GAAGC,YAAU,CAAC,MAAMwE,YAAY,CAAC;AAC9CC,EAAAA,aAAa,EAAE;AACbV,IAAAA,KAAK,EAAE/C,MAAM,CAACO;AADD,GAD+B;AAI9CmD,EAAAA,WAAW,EAAE;AACXX,IAAAA,KAAK,EAAE/C,MAAM,CAACE;AADH;AAJiC,CAAD,CAAnB,CAA5B;;AASA,MAAMyD,QAAQ,GAAuBjB,KAAD;AAClC,QAAM9C,OAAO,GAAGb,WAAS,EAAzB;AACA,QAAM;AAAE6E,IAAAA;AAAF,MAAclB,KAApB;AACA,QAAM,CAACmB,SAAD,EAAYC,YAAZ,IAA4BC,QAAQ,CAAC,CAAC,CAACH,OAAH,CAA1C;;AAEA,QAAMI,YAAY,GAAG,CAACC,KAAD,EACnBC,UADmB;AAEnBJ,IAAAA,YAAY,CAACI,UAAD,CAAZ;AACA,UAAM;AAAEC,MAAAA;AAAF,QAAezB,KAArB;AAEA,QAAIyB,QAAJ,EAAcA,QAAQ,CAACF,KAAD,EAAQC,UAAR,CAAR;AACf,GAND;;AAQA,SACErE,4BAAA,CAACuE,UAAD;AACEV,IAAAA,WAAW,EACT7D,4BAAA,CAACwE,aAAD;AAAe7E,MAAAA,SAAS,EAAEI,OAAO,CAAC8D;KAAlC;AAEFY,IAAAA,IAAI,EACFzE,4BAAA,CAAC0E,yBAAD;AAA2B/E,MAAAA,SAAS,EAAEI,OAAO,CAAC6D;KAA9C;KAEEf;AACJkB,IAAAA,OAAO,EAAEC;AACTM,IAAAA,QAAQ,EAAEH;IATZ,CADF;AAaD,CA1BD;;;;;;;;;;;;;;ACpBA,mBAAeQ,OAAO,CAAC,sBAAD,CAAtB;;ACAA,aAAeA,OAAO,CAAC,uBAAD,CAAtB;;ACAA,aAAeA,OAAO,CAAC,uBAAD,CAAtB;;ACAA,aAAeA,OAAO,CAAC,uBAAD,CAAtB;;ACAA,aAAeA,OAAO,CAAC,uBAAD,CAAtB;;ACAA,aAAeA,OAAO,CAAC,uBAAD,CAAtB;;ACAA,aAAeA,OAAO,CAAC,uBAAD,CAAtB;;;;;;;;;;;;ACOA,IAAYC,SAAZ;;AAAA,WAAYA;AACVA,EAAAA,qBAAA,aAAA;AACAA,EAAAA,kBAAA,UAAA;AACAA,EAAAA,mBAAA,WAAA;AACAA,EAAAA,mBAAA,WAAA;AACAA,EAAAA,kBAAA,UAAA;AACAA,EAAAA,kBAAA,cAAA;AACAA,EAAAA,sBAAA,aAAA;AACAA,EAAAA,yBAAA,gBAAA;AACAA,EAAAA,mBAAA,WAAA;AACAA,EAAAA,mBAAA,WAAA;AACAA,EAAAA,qBAAA,aAAA;AACAA,EAAAA,iBAAA,SAAA;AACAA,EAAAA,mBAAA,WAAA;AACAA,EAAAA,mBAAA,WAAA;AACD,CAfD,EAAYA,SAAS,KAATA,SAAS,KAAA,CAArB;;AAiBA,AAAO,MAAMC,eAAe,GAAIC,SAAD;AAC7B,UAAQA,SAAR;AACE,SAAKF,SAAS,CAACG,QAAf;AACE,aAAO;AACLC,QAAAA,IAAI,EAAE,UADD;AAELF,QAAAA,SAFK;AAGLG,QAAAA,OAAO,EAAEC;AAHJ,OAAP;;AAKF,SAAKN,SAAS,CAACO,KAAf;AACE,aAAO;AACLH,QAAAA,IAAI,EAAE,OADD;AAELF,QAAAA,SAFK;AAGLG,QAAAA,OAAO,EAAEG;AAHJ,OAAP;;AAKF,SAAKR,SAAS,CAACS,MAAf;AACE,aAAO;AACLL,QAAAA,IAAI,EAAE,QADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACU,MAAf;AACE,aAAO;AACLN,QAAAA,IAAI,EAAE,QADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACW,KAAf;AACE,aAAO;AACLP,QAAAA,IAAI,EAAE,OADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACY,SAAf;AACE,aAAO;AACLR,QAAAA,IAAI,EAAE,WADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACa,YAAf;AACE,aAAO;AACLT,QAAAA,IAAI,EAAE,cADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACc,MAAf;AACE,aAAO;AACLV,QAAAA,IAAI,EAAE,QADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACe,QAAf;AACE,aAAO;AACLX,QAAAA,IAAI,EAAE,UADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACgB,IAAf;AACE,aAAO;AACLZ,QAAAA,IAAI,EAAE,MADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACiB,MAAf;AACE,aAAO;AACLb,QAAAA,IAAI,EAAE,QADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACkB,MAAf;AACE,aAAO;AACLd,QAAAA,IAAI,EAAE,QADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACmB,KAAf;AACE,aAAO;AACLf,QAAAA,IAAI,EAAE,WADD;AAELF,QAAAA;AAFK,OAAP;;AAIF;AAAS;AACP,cAAM,IAAIkB,KAAJ,0DACqDlB,WADrD,CAAN;AAGD;AAxEH;AA0ED,CA3EM;;ACbP,MAAM5F,WAAS,GAAGC,YAAU,CAAE2C,KAAD,KAAmB;AAC9CkB,EAAAA,IAAI,EAAE;AACJiD,IAAAA,OAAO,EAAE,CADL;AAEJC,IAAAA,MAAM,EAAE,CAFJ;AAGJ7G,IAAAA,KAAK,EAAE;AAHH,GADwC;AAM9C8G,EAAAA,OAAO,EAAE;AACPC,IAAAA,OAAO,EAAE,MADF;AAEPC,IAAAA,UAAU,EAAE,QAFL;AAGPhH,IAAAA,KAAK,EAAE,MAHA;AAIPiH,IAAAA,SAAS,EAAExE,KAAK,CAACyE,OAAN,CAAc,CAAd,CAJJ;AAKPC,IAAAA,cAAc,EAAE;AALT,GANqC;AAa9CC,EAAAA,YAAY,EAAE;AACZH,IAAAA,SAAS,EAAExE,KAAK,CAACyE,OAAN,CAAc,CAAd,CADC;AAEZG,IAAAA,WAAW,EAAE5E,KAAK,CAACyE,OAAN,CAAc,CAAd;AAFD;AAbgC,CAAnB,CAAD,CAA5B;;AAuBA,MAAMI,WAAW,GAAyB,CAAC;AACzChH,EAAAA,SAAS,EAATA,UAAS,GAAG,EAD6B;AAEzCiH,EAAAA,OAFyC;AAGzCC,EAAAA,YAHyC;AAIzC,KAAG/G;AAJsC,CAAD;AAMxC,QAAMC,OAAO,GAAGb,WAAS,EAAzB;AAEA,QAAM4H,eAAe,GACnB9G,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACoG;GAAxB,EAEI,CAAAU,YAAY,SAAZ,IAAAA,YAAY,WAAZ,YAAAA,YAAY,CAAE5B,OAAd,KAEEjF,4BAAA,MAAA;AACEL,IAAAA,SAAS,EAAEI,OAAO,CAAC0G;AACnBM,IAAAA,GAAG,EAAEF,YAAF,aAAEA,YAAF,uBAAEA,YAAY,CAAE5B;AACnB+B,IAAAA,GAAG,KAAKH,YAAH,aAAGA,YAAH,uBAAGA,YAAY,CAAE7B;GAHxB,CAJN,EAWG6B,YAXH,aAWGA,YAXH,uBAWGA,YAAY,CAAE7B,IAXjB,CADF;;AAgBA,QAAMiC,aAAa,GAAG;AACpB,QAAIL,OAAJ,EAAa;AACX,aAAOA,OAAO,EAAd;AACD;;AACD,WAAOM,MAAM,CAACC,IAAP,CAAY,gEAAZ,EAA8E,QAA9E,CAAP;AACD,GALD;;AAOA,SACEnH,4BAAA,CAACN,MAAD;AACEC,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD;AAC9BP,IAAAA,KAAK;AACLI,IAAAA,OAAO;AACP4H,IAAAA,OAAO,EAAC;AACRlE,IAAAA,KAAK,EAAC;AACN0D,IAAAA,OAAO,EAAEK;KACLnH,KAPN,EAUG,CAAC,CAAC+G,YAAF,IAAkBA,YAAY,CAAC/B,SAAb,KAA2BF,SAAS,CAACO,KAAvD,IAECnF,4BAAA,CAACqH,OAAD;AAASC,IAAAA,KAAK;AAACC,IAAAA,KAAK,EAAC;GAArB,EACGT,eADH,CAZJ,EAgBG,CAAC,CAACD,YAAF,IAAkBA,YAAY,CAAC/B,SAAb,KAA2BF,SAAS,CAACO,KAAvD,IACI2B,eAjBP,EAkBG,CAACD,YAAD,IAEC7G,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACoG;GAAxB,EACEnG,4BAAA,MAAA;AACEL,IAAAA,SAAS,EAAEI,OAAO,CAAC0G;AACnBM,IAAAA,GAAG,EAAE3B;AACL4B,IAAAA,GAAG,EAAC;GAHN,CADF,wBAAA,CApBJ,CADF;AAgCD,CA/DD;;AChCA,MAAMQ,IAAI,GAAkD,CAC1D;AAAER,EAAAA,GAAG,EAAHA,IAAG,GAAG,aAAR;AAAuB,KAAGlH;AAA1B,CAD0D,KAEvDE,4BAAA,MAAA;AAAK+G,EAAAA,GAAG,EAAEU;AAAeT,EAAAA,GAAG,EAAEA;GAASlH,KAAvC,CAFL;;ACMA,MAAM4H,UAAU,GAAkB,CAAC;AAAEV,EAAAA,GAAG,EAAHA,IAAG,GAAG,aAAR;AAAuB3D,EAAAA,MAAM,EAANA,OAAM,GAAG,MAAhC;AAAwC,KAAGvD;AAA3C,CAAD,KAChCE,4BAAA,MAAA;AACE+G,EAAAA,GAAG,EAAEU;AACLT,EAAAA,GAAG,EAAEA;AACL3D,EAAAA,MAAM,EAAEA;GACJvD,KAJN,CADF;;ACGA,MAAMZ,WAAS,GAAGC,UAAU,CAAE2C,KAAD,KAAmB;AAC9CkB,EAAAA,IAAI,EAAE;AACJV,IAAAA,aAAa,EAAE,MADX;AAEJY,IAAAA,KAAK,EAAE/C,MAAM,CAACQ,KAFV;AAGJiC,IAAAA,UAAU,EAAEd,KAAK,CAACK,UAAN,CAAiBK,iBAHzB;AAIJmF,IAAAA,QAAQ,EAAE7F,KAAK,CAACK,UAAN,CAAiByF,OAAjB,CAAyB,EAAzB,CAJN;AAKJlB,IAAAA,WAAW,EAAE5E,KAAK,CAACyE,OAAN,CAAc,CAAd,CALT;AAMJ,eAAW;AACTjD,MAAAA,OAAO,EAAE;AADA;AANP,GADwC;AAW9CuE,EAAAA,QAAQ,EAAE;AACRjF,IAAAA,UAAU,EAAEd,KAAK,CAACK,UAAN,CAAiBM,gBADrB;AAERqF,IAAAA,YAAY,EAAE;AAFN;AAXoC,CAAnB,CAAD,CAA5B;;AAiBA,MAAMC,YAAY,GAA2BlF,KAAD;AAC1C,QAAM9C,OAAO,GAAGb,WAAS,EAAzB;AACA,SAAOc,4BAAA,CAACgI,GAAD;AAAKjI,IAAAA,OAAO,EAAEA;AAASkI,IAAAA,SAAS,EAAEC;AAASC,IAAAA,aAAa;KAAKtF,MAA7D,CAAP;AACD,CAHD;;ACbA,MAAMuF,8BAA8B,GAAG,8BAAvC;AACA,MAAMC,+BAA+B,GAAG,8BAAxC;AACA,MAAMC,uBAAuB,GAAG,sCAAhC;AAEA,AAAA,IAAYC,aAAZ;;AAAA,WAAYA;AACVA,EAAAA,8CAAA,eAAA;AACAA,EAAAA,qDAAA,sBAAA;AACAA,EAAAA,mDAAA,oBAAA;AACD,CAJD,EAAYA,aAAa,KAAbA,aAAa,KAAA,CAAzB;;AAMA,MAAMC,gBAAgB,GAAG,CAACC,gBAAD,EAAmBC,iBAAnB;AACvB,MAAI,CAACD,gBAAL,EAAuB,OAAOF,aAAa,CAACI,UAArB;AAEvB,MAAIF,gBAAgB,KAAKC,iBAAzB,EAA4C,OAAOH,aAAa,CAACK,eAArB;AAC5C,SAAOL,aAAa,CAACM,iBAArB;AACD,CALD;;AAOA,MAAMC,gBAAgB,GAA8B,CAAC;AACnDC,EAAAA,aAAa,EAAbA,cAAa,GAAG,EADmC;AAEnDN,EAAAA,gBAFmD;AAEjCC,EAAAA,iBAFiC;AAEdM,EAAAA,uBAFc;AAGnDC,EAAAA,wBAHmD;AAGzBC,EAAAA;AAHyB,CAAD;AAKlD,QAAMC,aAAa,GAAGX,gBAAgB,CAACC,gBAAD,EAAmBC,iBAAnB,CAAtC;AAEA,QAAMU,oBAAoB,GAAG,IAAIC,GAAJ,EAA7B;AACAD,EAAAA,oBAAoB,CAACE,GAArB,CAAyBf,aAAa,CAACI,UAAvC,EACE3I,4BAAA,CAACqH,SAAD;AAASE,IAAAA,KAAK,EAAE2B,gBAAgB,IAAIZ;GAApC,EACEtI,4BAAA,CAACuJ,WAAD;AAAa5J,IAAAA,SAAS,EAAEoJ;AAAeS,IAAAA,KAAK,EAAE;AAAEtG,MAAAA,KAAK,EAAEuG,MAAM,CAAC,GAAD;AAAf;GAA9C,CADF,CADF;AAKAL,EAAAA,oBAAoB,CAACE,GAArB,CAAyBf,aAAa,CAACM,iBAAvC,EACE7I,4BAAA,CAACqH,SAAD;AAASE,IAAAA,KAAK,EAAE0B,wBAAwB,IAAIZ;GAA5C,EACErI,4BAAA,CAAC0J,SAAD;AAAW/J,IAAAA,SAAS,EAAEoJ;AAAe7F,IAAAA,KAAK,EAAC;GAA3C,CADF,CADF;AAKAkG,EAAAA,oBAAoB,CAACE,GAArB,CAAyBf,aAAa,CAACK,eAAvC,EACE5I,4BAAA,CAACqH,SAAD;AAASE,IAAAA,KAAK,EAAEyB,uBAAuB,IAAIZ;GAA3C,EACEpI,4BAAA,CAAC2J,8BAAD;AACEhK,IAAAA,SAAS,EAAEoJ;AACXS,IAAAA,KAAK,EAAE;AAAEtG,MAAAA,KAAK,EAAE0G,KAAK,CAAC,GAAD;AAAd;GAFT,CADF,CADF;AASA,SACER,oBAAoB,CAACS,GAArB,CAAyBV,aAAzB,CADF;AAGD,CA9BD;;AC1BA,MAAMjK,WAAS,GAAGC,UAAU,CAAE2C,KAAD,KAAmB;AAC9CgI,EAAAA,KAAK,EAAE;AACLC,IAAAA,eAAe,EAAEjI,KAAK,CAACE,OAAN,CAAcgI,UAAd,CAAyBF,KADrC;AAELG,IAAAA,MAAM,eAAe9J,MAAM,CAACE,SAFvB;AAGLd,IAAAA,SAAS,EAAEuC,KAAK,CAACoI,OAAN,CAAc,CAAd,CAHN;AAILC,IAAAA,IAAI,EAAE,KAJD;AAKLC,IAAAA,QAAQ,EAAE,GALL;AAMLnE,IAAAA,OAAO,EAAEnE,KAAK,CAACyE,OAAN,CAAc,CAAd,EAAiB,CAAjB,EAAoB,CAApB,CANJ;AAOL8D,IAAAA,QAAQ,EAAE,UAPL;AAQLC,IAAAA,GAAG,EAAE,KARA;AASLC,IAAAA,SAAS,EAAE;AATN;AADuC,CAAnB,CAAD,CAA5B;;AAcA,MAAMC,KAAK,GAAmB,CAAC;AAAE3K,EAAAA,QAAF;AAAY,KAAGC;AAAf,CAAD;AAC5B,QAAMC,OAAO,GAAGb,WAAS,EAAzB;AAEA,SACEc,4BAAA,CAACyK,OAAD,oBAAc3K,KAAd,EACEE,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAAC+J;GAAxB,EACGjK,QADH,CADF,CADF;AAOD,CAVD;;ACbA,MAAMX,WAAS,GAAGC,UAAU,CAAC,OAAO;AAClC6D,EAAAA,IAAI,EAAE;AACJ8E,IAAAA,YAAY,eAAe3H,MAAM,CAACK,OAD9B;AAEJ0C,IAAAA,KAAK,EAAE/C,MAAM,CAACE,OAFV;AAGJ+F,IAAAA,OAAO,EAAE,MAHL;AAIJI,IAAAA,cAAc,EAAE,QAJZ;AAKJnH,IAAAA,KAAK,EAAE;AALH;AAD4B,CAAP,CAAD,CAA5B;;AAUA,MAAMqL,WAAW,GAAyB,CAAC;AAAE7K,EAAAA,QAAF;AAAYF,EAAAA,SAAS,EAATA,UAAS,GAAG;AAAxB,CAAD;AACxC,QAAMI,OAAO,GAAGb,WAAS,EAAzB;AAEA,SACEc,4BAAA,MAAA;AAAKL,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD,YAAnB,CAA+BO,IAA/B;GAAhB,EACGL,QADH,CADF;AAKD,CARD;;ACXA,MAAM8K,UAAU,GAAwB,CAAC;AAAE9K,EAAAA,QAAF;AAAY,KAAGC;AAAf,CAAD,KACtCE,4BAAA,CAAC4K,UAAD;AAAYxD,EAAAA,OAAO,EAAC;GAAStH,KAA7B,EACGD,QADH,CADF;;ACCA,MAAMX,WAAS,GAAGC,UAAU,CAAE2C,KAAD,KAAmB;AAC9CkB,EAAAA,IAAI,EAAE;AACJ6H,IAAAA,SAAS,eAAe1K,MAAM,CAACK,OAD3B;AAEJ4F,IAAAA,OAAO,EAAE,MAFL;AAGJI,IAAAA,cAAc,EAAE,QAHZ;AAIJsE,IAAAA,UAAU,EAAEhJ,KAAK,CAACyE,OAAN,CAAc,CAAd,CAJR;AAKJlH,IAAAA,KAAK,EAAE;AALH;AADwC,CAAnB,CAAD,CAA5B;;AAUA,MAAM0L,WAAW,GAAyB,CAAC;AAAElL,EAAAA,QAAF;AAAYF,EAAAA,SAAS,EAATA,UAAS,GAAG;AAAxB,CAAD;AACxC,QAAMI,OAAO,GAAGb,WAAS,EAAzB;AAEA,SACEc,4BAAA,MAAA;AAAKL,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD,YAAnB,CAA+BO,IAA/B;GAAhB,EACGL,QADH,CADF;AAKD,CARD;;ACXA,MAAMX,WAAS,GAAGC,UAAU,CAAE2C,KAAD,KAAmB;AAC9CkB,EAAAA,IAAI,EAAE;AACJiD,IAAAA,OAAO,EAAEnE,KAAK,CAACyE,OAAN,CAAc,CAAd,EAAiB,CAAjB,CADL;AAEJlH,IAAAA,KAAK,EAAE;AAFH;AADwC,CAAnB,CAAD,CAA5B;;AAOA,MAAM2L,SAAS,GAAuB,CAAC;AAAEnL,EAAAA,QAAF;AAAYF,EAAAA,SAAS,EAATA,UAAS,GAAG;AAAxB,CAAD;AACpC,QAAMI,OAAO,GAAGb,WAAS,EAAzB;AAEA,SACEc,4BAAA,MAAA;AAAKL,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD,YAAnB,CAA+BO,IAA/B;GAAhB,EACGL,QADH,CADF;AAKD,CARD;;ACVA,MAAMX,WAAS,GAAGC,UAAU,CAAC,OAAO;AAClC,qBAAmB;AACjB,UAAM;AAAEoL,MAAAA,SAAS,EAAE;AAAb,KADW;AAEjB,YAAQ;AAAEA,MAAAA,SAAS,EAAE;AAAb;AAFS,GADe;AAKlCvH,EAAAA,IAAI,EAAE;AACJqH,IAAAA,QAAQ,EAAE;AADN,GAL4B;AAQlCY,EAAAA,OAAO,EAAE;AACPZ,IAAAA,QAAQ,EAAE,UADH;AAEPa,IAAAA,MAAM,EAAE,CAFD;AAGP7H,IAAAA,MAAM,EAAE,MAHD;AAIPhE,IAAAA,KAAK,EAAE,MAJA;AAKP+G,IAAAA,OAAO,EAAE,MALF;AAMPI,IAAAA,cAAc,EAAE,QANT;AAOPH,IAAAA,UAAU,EAAE,QAPL;AAQP2D,IAAAA,UAAU,EAAE;AARL,GARyB;AAkBlCmB,EAAAA,OAAO,EAAE;AACP/E,IAAAA,OAAO,EAAE,cADF;AAEP8E,IAAAA,MAAM,EAAE,CAFD;AAGP7L,IAAAA,KAAK,EAAE,MAHA;AAIPgE,IAAAA,MAAM,EAAE,MAJD;AAKP4G,IAAAA,MAAM,EAAE,MALD;AAMPmB,IAAAA,SAAS,EAAE;AANJ;AAlByB,CAAP,CAAD,CAA5B;;AA4BA,MAAMC,WAAW,GAAIC,gBAAD;AAClB,QAAMC,OAAO,GAAG,CAAC;AAAEC,IAAAA,SAAF;AAAa,OAAG3I;AAAhB,GAAD;AACd,UAAM9C,OAAO,GAAGb,WAAS,EAAzB;AAEA,WACEc,4BAAA,MAAA;AAAKL,MAAAA,SAAS,EAAEI,OAAO,CAACiD;KAAxB,EAEIwI,SAAS,IAEPxL,4BAAA,MAAA;AAAKL,MAAAA,SAAS,EAAEI,OAAO,CAACkL;KAAxB,EACEjL,4BAAA,MAAA;AAAKL,MAAAA,SAAS,EAAEI,OAAO,CAACoL;AAASpE,MAAAA,GAAG,EAAE0E;AAAczE,MAAAA,GAAG,EAAC;KAAxD,CADF,CAJN,EASEhH,4BAAA,CAACsL,gBAAD,oBAAsBzI,MAAtB,CATF,CADF;AAaD,GAhBD;;AAiBA,SAAO0I,OAAP;AACD,CAnBD;;AClBA,MAAMrM,WAAS,GAAGC,UAAU,CAAE2C,KAAD,IAAkB6B,cAAY,CAAC;AAC1DX,EAAAA,IAAI,EAAE;AACJzD,IAAAA,SAAS,EAAE,MADP;AAEJ2D,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KAFV;AAGJrB,IAAAA,KAAK,EAAE;AAHH,GADoD;AAM1DqM,EAAAA,OAAO,EAAE;AACPxI,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KADP;AAEPiH,IAAAA,QAAQ,EAAE7F,KAAK,CAACK,UAAN,CAAiByF,OAAjB,CAAyB,EAAzB,CAFH;AAGPhF,IAAAA,UAAU,EAAEd,KAAK,CAACK,UAAN,CAAiBK,iBAHtB;AAIPnD,IAAAA,KAAK,EAAE;AAJA,GANiD;AAY1DsM,EAAAA,gBAAgB,EAAE;AAChB7D,IAAAA,YAAY,eAAe3H,MAAM,CAACK;AADlB;AAZwC,CAAD,CAA/B,CAA5B;;AAiBA,MAAMoL,SAAS,GAAuB,CAAC;AACrC/L,EAAAA,QADqC;AAC3BgM,EAAAA,QAD2B;AACjBC,EAAAA,EADiB;AACbvE,EAAAA;AADa,CAAD;AAGpC,QAAMxH,OAAO,GAAGb,WAAS,EAAzB;AACA,QAAM,CAAC6M,UAAD,EAAaC,aAAb,IAA8B9H,QAAQ,CAAU,CAAC,CAAC2H,QAAZ,CAA5C;;AAEA,QAAMvH,QAAQ,GAAG,MAAY0H,aAAa,CAAC,CAACD,UAAF,CAA1C;;AAEA,SACE/L,4BAAA,CAACiM,WAAD;AACEtM,IAAAA,SAAS,EAAEI,OAAO,CAACiD;AACnB6I,IAAAA,QAAQ,EAAEE;AACVzH,IAAAA,QAAQ,EAAEA;GAHZ,EAKEtE,4BAAA,CAACkM,gBAAD;AACEvM,IAAAA,SAAS,EAAEI,OAAO,CAAC4L;AACnBQ,IAAAA,UAAU,EAAEnM,4BAAA,CAACoM,cAAD,MAAA;8BACYN;AACxBA,IAAAA,EAAE,EAAEA;GAJN,EAME9L,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,EAAEI,OAAO,CAAC2L;GAA/B,EAAyCnE,KAAzC,CANF,CALF,EAaEvH,4BAAA,CAACqM,gBAAD,MAAA,EACGxM,QADH,CAbF,CADF;AAmBD,CA3BD;;ACZA,MAAMyM,YAAY,GAA0B,CAAC;AAC3CC,EAAAA,WAD2C;AAE3CC,EAAAA,kBAF2C;AAG3CrF,EAAAA,IAH2C;AAI3CsF,EAAAA,OAJ2C;AAK3CC,EAAAA;AAL2C,CAAD,KAO1C1M,4BAAA,CAACwK,KAAD;AACErD,EAAAA,IAAI,EAAEA;AACNsF,EAAAA,OAAO,EAAEA;qBACO;sBACC;CAJnB,EAMEzM,4BAAA,CAACA,cAAK,CAAC2M,QAAP,MAAA,EACE3M,4BAAA,CAAC0K,WAAD,MAAA,EACE1K,4BAAA,CAAC2K,UAAD,MAAA,mCAAA,CADF,CADF,EAIE3K,4BAAA,CAACgL,SAAD,MAAA,EAEMwB,kBAAkB,IAAIA,kBAAkB,CAACI,MAAzC,IAAmDJ,kBAAkB,CAACK,GAAnB,CAChDhG,YAAD,IACE7G,4BAAA,CAAC2G,WAAD;AACEE,EAAAA,YAAY,EAAEA;AACdiG,EAAAA,GAAG,EAAEjG,YAAY,CAAC/B;AAClB8B,EAAAA,OAAO,EAAE;AACP,QAAI2F,WAAJ,EAAiB,MAAMA,WAAW,CAAC1F,YAAY,CAAC/B,SAAd,EAAyB4H,aAAzB,CAAjB;AAClB;CALH,CAF+C,CAFzD,EAcG,CAACF,kBAAD,IAIKxM,4BAAA,CAAC2G,WAAD,MAAA,CAlBR,CAJF,EAyBE3G,4BAAA,CAAC+K,WAAD,MAAA,EACE/K,4BAAA,CAACN,MAAD;AACE0H,EAAAA,OAAO,EAAC;AACRlE,EAAAA,KAAK,EAAC;AACN9D,EAAAA,KAAK;AACLwH,EAAAA,OAAO,EAAE6F;CAJX,SAAA,CADF,CAzBF,CANF,CAPF;;ACRA,MAAMvN,WAAS,GAAGC,UAAU,CAAC,OAAO;AAClC4N,EAAAA,YAAY,EAAE;AACZ3G,IAAAA,OAAO,EAAE,MADG;AAEZC,IAAAA,UAAU,EAAE;AAFA;AADoB,CAAP,CAAD,CAA5B;;AAOA,MAAM2G,eAAe,GAA6B,CAAC;AAAEC,EAAAA,cAAF;AAAkBC,EAAAA;AAAlB,CAAD;AAChD,QAAM,CAACC,QAAD,EAAWC,WAAX,IAA0BlJ,QAAQ,CAAC,KAAD,CAAxC;AAEA,QAAMnE,OAAO,GAAGb,WAAS,EAAzB;AAEA,QAAMmO,cAAc,GAClBrN,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACgN;GAAxB,EACE/M,4BAAA,CAACsN,YAAD,MAAA,CADF,EAEEtN,4BAAA,CAAC4K,UAAD;AAAYxD,IAAAA,OAAO,EAAC;GAApB,EACG8F,QADH,CAFF,CADF;AASA,SACElN,4BAAA,CAACqH,SAAD;AACEkG,IAAAA,WAAW;AACXhG,IAAAA,KAAK,EAAE4F,QAAQ,GAAGnN,4BAAA,CAAC4K,UAAD;AAAYxD,MAAAA,OAAO,EAAC;KAApB,WAAA,CAAH,GAAsDiG;AACrEzG,IAAAA,OAAO,EAAE;AACP4G,MAAAA,SAAS,CAACC,SAAV,CAAoBC,SAApB,CAA8BR,QAA9B,EACGS,IADH,CACQ;AAAQP,QAAAA,WAAW,CAAC,IAAD,CAAX;AAAmB,OADnC;AAED;AACDX,IAAAA,OAAO,EAAE;AACPW,MAAAA,WAAW,CAAC,KAAD,CAAX;AACD;GATH,EAWGH,cAXH,CADF;AAeD,CA7BD;;ACDA,MAAM/N,WAAS,GAAGC,UAAU,CAAE2C,KAAD,KAAmB;AAC9CkB,EAAAA,IAAI,EAAE;AACJzD,IAAAA,SAAS,EAAE,MADP;AAEJ2D,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KAFV;AAGJrB,IAAAA,KAAK,EAAE;AAHH,GADwC;AAM9CqM,EAAAA,OAAO,EAAE;AACPtF,IAAAA,OAAO,EAAE,MADF;AAEPI,IAAAA,cAAc,EAAE,QAFT;AAGPtD,IAAAA,KAAK,EAAE/C,MAAM,CAACQ,KAHP;AAIPgH,IAAAA,QAAQ,EAAE5G,KAAK,CAACE,IAAN,CAAWK,aAJd;AAKPjC,IAAAA,KAAK,EAAE;AALA,GANqC;AAa9CuO,EAAAA,eAAe,EAAE;AACf1K,IAAAA,KAAK,EAAE/C,MAAM,CAACE;AADC,GAb6B;AAgB9CwN,EAAAA,gBAAgB,EAAE;AAChBjL,IAAAA,UAAU,EAAE7B,KAAK,CAACS,MAAN,CAAaE;AADT,GAhB4B;AAmB9CoM,EAAAA,YAAY,EAAE;AACZ1H,IAAAA,OAAO,EAAE,MADG;AAEZI,IAAAA,cAAc,EAAE;AAFJ,GAnBgC;AAuB9CuH,EAAAA,eAAe,EAAE;AACf,KAACjM,KAAK,CAACkM,WAAN,CAAkBC,EAAlB,CAAqB,IAArB,CAAD,GAA8B;AAC5BC,MAAAA,QAAQ,EAAE;AADkB;AADf,GAvB6B;AA4B9CC,EAAAA,UAAU,EAAE;AACVjL,IAAAA,KAAK,EAAE/C,MAAM,CAACQ;AADJ;AA5BkC,CAAnB,CAAD,CAA5B;;AAiCA,MAAMyN,UAAU,GAAwB,CAAC;AACvCzO,EAAAA,SAAS,EAATA,UAAS,GAAG,EAD2B;AACvB0O,EAAAA,iBADuB;AACJC,EAAAA,QADI;AACMC,EAAAA;AADN,CAAD;AAGtC,QAAMxO,OAAO,GAAGb,WAAS,EAAzB;AACA,QAAM,CAAC6M,UAAD,EAAaC,aAAb,IAA8B9H,QAAQ,CAAC,CAAC,CAACmK,iBAAH,CAA5C;;AAEA,QAAM/J,QAAQ,GAAG,MAAY0H,aAAa,CAAC,CAACD,UAAF,CAA1C;;AAEA,SACE/L,4BAAA,CAAC4L,WAAD;AAAWjM,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD,YAAnB,CAA+BO,IAA/B;AAAuC2L,IAAAA,QAAQ,EAAEE;AAAYzH,IAAAA,QAAQ,EAAEA;GAA7F,EACEtE,4BAAA,CAACkM,gBAAD;AACEC,IAAAA,UAAU,EAAEJ,UAAU,GAAG/L,4BAAA,CAACwO,UAAD,MAAA,CAAH,GAAoBxO,4BAAA,CAACyO,OAAD,MAAA;GAD5C,EAGEzO,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,KAAKI,OAAO,CAAC2L,WAAWK,UAAU,GAAGhM,OAAO,CAAC6N,eAAX,GAA6B7N,OAAO,CAAC8N,kBAArE,CAAwF3N,IAAxF;GAAvB,EAAwHoO,QAAxH,CAHF,CADF,EAMEtO,4BAAA,CAACqM,gBAAD;AAAkB1M,IAAAA,SAAS,EAAEI,OAAO,CAAC+N;GAArC,EACE9N,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACgO;GAAxB,EACE/N,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,EAAEI,OAAO,CAACoO;GAA/B,EAA4CI,MAA5C,CADF,CADF,CANF,CADF;AAcD,CAtBD;;ACvCA,MAAMrP,WAAS,GAAGC,UAAU,CAAC,OAAO;AAClC6D,EAAAA,IAAI,EAAE;AACJE,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KADV;AAEJrB,IAAAA,KAAK,EAAE;AAFH;AAD4B,CAAP,CAAD,CAA5B;;AAOA,MAAMqP,eAAe,GAA6B,CAAC;AAAEC,EAAAA,SAAF;AAAaC,EAAAA,cAAc,EAAdA,eAAc,GAAG,EAA9B;AAAkC,KAAG9O;AAArC,CAAD;AAChD,QAAMC,OAAO,GAAGb,WAAS,EAAzB;AACA,SACEc,4BAAA,CAAC6O,gBAAD;AACElP,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQ4L,eAAc,CAAC1O,IAAf;AAC9B4O,IAAAA,KAAK,EAAEH;AACPI,IAAAA,OAAO,EACL/O,4BAAA,CAAC8D,QAAD,oBAAchE,KAAd;GAJJ,CADF;AAUD,CAZD;;ACTA,MAAMkP,kBAAkB,GAAgC,CAAC;AAAErP,EAAAA,SAAS,EAATA,UAAS,GAAG,EAAd;AAAkBiH,EAAAA,OAAlB;AAA2BqI,EAAAA;AAA3B,CAAD,KACtDjP,4BAAA,MAAA;AAAKL,EAAAA,SAAS,EAAEA;CAAhB,EACGsP,KAAK,CAACpC,GAAN,CAAU,CAACqC,IAAD,EAA6BC,CAA7B,KACTnP,4BAAA,CAAC0O,eAAD;AACE9H,EAAAA,OAAO,EAAEA;AACTkG,EAAAA,GAAG,qBAAqBoC,IAAI,CAACpD,IAAxB,uBAAmDqD,KAAKxP,YAAxB,CAAoCO,IAApC;AACrC0O,EAAAA,cAAc,EAAEM,IAAI,CAACN;GACjBM,KAJN,CADD,CADH,CADF;;MCTME,aAAa,GAAG,CACpBC,GADoB,EAEpBC,UAAU,GAAG,EAFO,EAGpBC,eAAe,GAAG,CAHE,KAIRF,GAAG,CAACzC,MAAJ,GAAa0C,UAAb,MACPD,GAAG,CAACG,MAAJ,CAAW,CAAX,EAAcD,eAAd,OAAoCF,GAAG,CAACG,MAAJ,CAAWH,GAAG,CAACzC,MAAJ,GAAa,CAAxB,GAD7B,GAEVyC,GANJ;;AAQA,MAAMI,iBAAiB,GAAIJ,GAAD,IAAyBA,GAAG,CAACK,OAAJ,CAAY,KAAZ,EAAmB,EAAnB,CAAnD;;AAEA,MAAMC,kBAAkB,GAAG,cAA3B;AACA,MAAMC,kBAAkB,GAAG,QAA3B;;AAEA,MAAMC,eAAe,GAAIC,GAAD;AACtB,MAAIA,GAAG,GAAG,CAAV,EAAa;AACX,QAAIA,GAAG,GAAGH,kBAAV,EAA8B,OAAOA,kBAAP;AAE9B,QAAIG,GAAG,GAAGF,kBAAV,EAA8B,OAAOA,kBAAP;AAC/B;;AAED,MAAIE,GAAG,GAAG,CAAV,EAAa;AACX,QAAIA,GAAG,GAAG,CAACH,kBAAX,EAA+B,OAAO,CAACA,kBAAR;AAE/B,QAAIG,GAAG,GAAG,CAACF,kBAAX,EAA+B,OAAO,CAACA,kBAAR;AAChC;;AACD,SAAOE,GAAP;AACD,CAbD;;ACKA,MAAM5Q,WAAS,GAAGC,UAAU,CAAC,OAAO;AAClC6D,EAAAA,IAAI,EAAE;AACJqD,IAAAA,UAAU,EAAE,QADR;AAEJD,IAAAA,OAAO,EAAE,MAFL;AAGJ2J,IAAAA,aAAa,EAAE;AAHX,GAD4B;AAMlCC,EAAAA,UAAU,EAAE;AACV9M,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KADJ;AAEVkC,IAAAA,UAAU,EAAE7B,KAAK,CAACS,MAAN,CAAaC,KAFf;AAGVwO,IAAAA,cAAc,EAAE,MAHN;AAIV,eAAW;AACTrN,MAAAA,UAAU,EAAE7B,KAAK,CAACS,MAAN,CAAaE;AADhB;AAJD,GANsB;AAclCwO,EAAAA,WAAW,EAAE;AACXvI,IAAAA,QAAQ,EAAE5G,KAAK,CAACE,IAAN,CAAWM,WADV;AAEX4O,IAAAA,SAAS,EAAE;AAFA;AAdqB,CAAP,CAAD,CAA5B;;AAoBA,MAAMC,YAAY,GAA0B,CAAC;AAAE7I,EAAAA,KAAF;AAAS8I,EAAAA,KAAT;AAAgB1Q,EAAAA,SAAS,EAATA,UAAS,GAAG;AAA5B,CAAD;AAC1C,QAAMI,OAAO,GAAGb,WAAS,EAAzB;AAEA,SACEc,4BAAA,MAAA;AAAKL,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD,YAAnB,CAA+BO,IAA/B;GAAhB,EACEF,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,EAAEI,OAAO,CAACmQ;AAAa9I,IAAAA,OAAO,EAAC;AAAYlE,IAAAA,KAAK,EAAC;GAAtE,EAAiFqE,KAAjF,CADF,EAGI8I,KAAK,CAACxD,GAAN,CAAWyD,IAAD;AACR,UAAMxD,GAAG,GAAG2C,iBAAiB,CAACa,IAAI,CAAC/I,KAAN,CAA7B;;AAEA,QAAI+I,IAAI,CAACC,UAAT,EAAqB;AACnB,YAAMC,IAAI,GAAG,CAACF,IAAI,CAACG,EAAL,IAAW,GAAZ,EAAiBC,QAAjB,EAAb;AACA,aACE1Q,4BAAA,IAAA;AACEL,QAAAA,SAAS,EAAEI,OAAO,CAACiQ;AACnBW,QAAAA,MAAM,EAAEL,IAAI,CAACK;AACbzN,QAAAA,KAAK,EAAC;AACN4J,QAAAA,GAAG,EAAEA;AACL0D,QAAAA,IAAI,EAAEA;OALR,EAOGF,IAAI,CAAC/I,KAPR,CADF;AAWD;;AACD,WACEvH,4BAAA,CAACkI,OAAD;AACEvI,MAAAA,SAAS,EAAEI,OAAO,CAACiQ;AACnBW,MAAAA,MAAM,EAAEL,IAAI,CAACK;AACbzN,MAAAA,KAAK,EAAC;AACN4J,MAAAA,GAAG,EAAEA;AACL2D,MAAAA,EAAE,EAAEH,IAAI,CAACG;KALX,EAOGH,IAAI,CAAC/I,KAPR,CADF;AAWD,GA5BD,CAHJ,CADF;AAoCD,CAvCD;;ACvBA,MAAMqJ,aAAa,GAA2B,CAAC;AAC7CrJ,EAAAA,KAD6C;AAE7CsJ,EAAAA,MAF6C;AAG7ChR,EAAAA,QAH6C;AAI7C,KAAGgD;AAJ0C,CAAD,KAM5C7C,4BAAA,CAACwK,KAAD,oBAAW3H,MAAX,EACE7C,4BAAA,CAACA,cAAK,CAAC2M,QAAP,MAAA,EACE3M,4BAAA,CAAC0K,WAAD,MAAA,EACE1K,4BAAA,CAAC2K,UAAD,MAAA,EAAapD,KAAb,CADF,CADF,EAIEvH,4BAAA,CAACgL,SAAD,MAAA,EAAYnL,QAAZ,CAJF,EAKEG,4BAAA,CAAC+K,WAAD,MAAA,EAAc8F,MAAd,CALF,CADF,CANF;;ACCA,MAAM3R,WAAS,GAAGC,UAAU,CAAE2C,KAAD,KAAmB;AAC9CkB,EAAAA,IAAI,EAAE;AACJE,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KADV;AAEJ0F,IAAAA,OAAO,EAAE;AAFL,GADwC;AAK9C0K,EAAAA,KAAK,EAAE;AACL5N,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KADT;AAELqQ,IAAAA,WAAW,EAAEjP,KAAK,CAACyE,OAAN,CAAc,GAAd,CAFR;AAGL4J,IAAAA,SAAS,EAAE,QAHN;AAIL,iBAAa;AACXrI,MAAAA,YAAY,eAAe3H,MAAM,CAACO;AADvB;AAJR,GALuC;AAa9CsQ,EAAAA,cAAc,EAAE;AACdC,IAAAA,YAAY,EAAE;AADA,GAb8B;AAgB9CC,EAAAA,KAAK,EAAE;AACLhO,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KADT;AAEL0F,IAAAA,OAAO,EAAE,MAFJ;AAGLuB,IAAAA,QAAQ,EAAE5G,KAAK,CAACE,IAAN,CAAWC;AAHhB,GAhBuC;AAqB9CiQ,EAAAA,cAAc,EAAE;AACdC,IAAAA,SAAS,EAAE,QADG;AAEdlO,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KAFA;AAGd0F,IAAAA,OAAO,EAAE,MAHK;AAIduB,IAAAA,QAAQ,EAAE5G,KAAK,CAACE,IAAN,CAAWG,MAJP;AAKd2P,IAAAA,WAAW,EAAE;AALC;AArB8B,CAAnB,CAAD,CAA5B;;AA8BA,MAAMM,UAAU,GAAwB,CAAC;AACvCC,EAAAA,QADuC;AAEvCC,EAAAA,QAFuC;AAGvCL,EAAAA,KAHuC;AAIvCM,EAAAA,KAJuC;AAKvCC,EAAAA,IAAI,EAAJA,KAAI,GAAG,CALgC;AAMvCC,EAAAA,YANuC;AAOvCC,EAAAA,cAPuC;AAQvC,KAAG7R;AARoC,CAAD;AAUtC,QAAMC,OAAO,GAAGb,WAAS,EAAzB;AAEA,SACEc,4BAAA,CAACA,cAAK,CAAC2M,QAAP,MAAA,EACE3M,4BAAA,CAAC4R,IAAD;AAAMjS,IAAAA,SAAS,EAAEI,OAAO,CAACiD;AAAM6O,IAAAA,SAAS;AAACtL,IAAAA,OAAO,EAAE;GAAlD,EACEvG,4BAAA,CAAC4R,IAAD;AAAMjS,IAAAA,SAAS,EAAEI,OAAO,CAACiR;AAAgB9B,IAAAA,IAAI;AAAC4C,IAAAA,EAAE,EAAE;GAAlD,EACE9R,4BAAA,CAAC+R,KAAD;AACEpS,IAAAA,SAAS,EAAEI,OAAO,CAAC+Q;AACnB/Q,IAAAA,OAAO,EAAE;AAAE+Q,MAAAA,KAAK,EAAE/Q,OAAO,CAAC+Q;AAAjB;AACTU,IAAAA,KAAK,EAAEA;AACPlN,IAAAA,QAAQ,EAAEqN;AACVK,IAAAA,MAAM,EAAEN;AACRO,IAAAA,IAAI,EAAC;AACLC,IAAAA,SAAS;AACTC,IAAAA,UAAU,EAAE;AACVV,MAAAA,IAAI,EAAJA,KADU;AAEVW,MAAAA,GAAG,EAAEb,QAFK;AAGVc,MAAAA,GAAG,EAAEf,QAHK;AAIV,yBAAmB;AAJT;KAMRxR,KAdN,CADF,CADF,EAmBEE,4BAAA,CAAC4R,IAAD;AAAM1C,IAAAA,IAAI;AAAC4C,IAAAA,EAAE,EAAE;AAAGnS,IAAAA,SAAS,EAAEI,OAAO,CAACoR;GAArC,EACEnR,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,EAAEI,OAAO,CAACmR;GAA/B,EACGA,KADH,CADF,CAnBF,CADF,CADF;AA6BD,CAzCD;;AC5BA,MAAMhS,WAAS,GAAGC,UAAU,CAAC,OAAO;AAClC6D,EAAAA,IAAI,EAAE;AACJ3D,IAAAA,KAAK,EAAE;AADH,GAD4B;AAIlCiT,EAAAA,eAAe,EAAE;AACflB,IAAAA,SAAS,EAAE,QADI;AAEfhL,IAAAA,OAAO,EAAE,MAFM;AAGfI,IAAAA,cAAc,EAAE,eAHD;AAIfnH,IAAAA,KAAK,EAAE;AAJQ,GAJiB;AAUlCkT,EAAAA,WAAW,EAAE;AACXnB,IAAAA,SAAS,EAAE,QADA;AAEXhL,IAAAA,OAAO,EAAE,MAFE;AAGXI,IAAAA,cAAc,EAAE,QAHL;AAIXnH,IAAAA,KAAK,EAAE,MAJI;AAKXuD,IAAAA,UAAU,EAAE7B,KAAK,CAACS,MAAN,CAAaE;AALd;AAVqB,CAAP,CAAD,CAA5B;;AAmBA,MAAM8Q,qBAAqB,GAAmC,CAAC;AAC7DC,EAAAA,MAAM,EAAE;AACNC,IAAAA,KAAK,EAAEC,UADD;AACaC,IAAAA,GAAG,EAAEC;AADlB,GADqD;AAG1DC,EAAAA,IAH0D;AAGpD3O,EAAAA,YAHoD;AAGtCxE,EAAAA,SAHsC;AAG3B,KAAGG;AAHwB,CAAD;AAK5D,QAAMC,OAAO,GAAGb,WAAS,EAAzB;AAEA,QAAMoS,QAAQ,GAAGxR,IAAI,CAACuS,GAAL,IAAYQ,QAA7B;AACA,QAAMtB,QAAQ,GAAGzR,IAAI,CAACsS,GAAL,IAAYO,UAA7B;AACA,QAAMlB,IAAI,GAAG3R,IAAI,CAAC2R,IAAL,IAAa,CAA1B;;AAEA,QAAMsB,sBAAsB,GAC1B3O,KAD6B;AAG7B,UAAM4O,aAAa,GAAGnD,eAAe,CAACoD,MAAM,CAAC7O,KAAK,CAACuM,MAAN,CAAaa,KAAd,CAAP,CAAf,IAA+CD,QAArE;AACApN,IAAAA,YAAY,CAAC;AAAEiO,MAAAA,GAAG,EAAEY,aAAP;AAAsBX,MAAAA,GAAG,EAAEQ;AAA3B,KAAD,CAAZ;AACD,GALD;;AAOA,QAAMK,oBAAoB,GACxB9O,KAD2B;AAG3B,UAAM+O,WAAW,GAAGtD,eAAe,CAACoD,MAAM,CAAC7O,KAAK,CAACuM,MAAN,CAAaa,KAAd,CAAP,CAAf,IAA+CqB,QAAnE;AACA1O,IAAAA,YAAY,CAAC;AAAEiO,MAAAA,GAAG,EAAEO,UAAP;AAAmBN,MAAAA,GAAG,EAAEc;AAAxB,KAAD,CAAZ;AACD,GALD;;AAOA,QAAMC,kBAAkB,GAAG,CACzBC,CADyB,EACCC,cADD;AAGzBnP,IAAAA,YAAY,CAAC;AAAEiO,MAAAA,GAAG,EAAEkB,cAAc,CAAC,CAAD,CAArB;AAA0BjB,MAAAA,GAAG,EAAEiB,cAAc,CAAC,CAAD;AAA7C,KAAD,CAAZ;AACD,GAJD;;AAMA,QAAMC,oBAAoB,GAAG;AAC3B,QAAIZ,UAAU,GAAGpB,QAAjB,EAA2B;AACzBpN,MAAAA,YAAY,CAAC;AAAEiO,QAAAA,GAAG,EAAEb,QAAP;AAAiBc,QAAAA,GAAG,EAAEQ;AAAtB,OAAD,CAAZ;AACD,KAFD,MAEO,IAAIF,UAAU,GAAGE,QAAjB,EAA2B;AAChC1O,MAAAA,YAAY,CAAC;AAAEiO,QAAAA,GAAG,EAAES,QAAP;AAAiBR,QAAAA,GAAG,EAAEQ;AAAtB,OAAD,CAAZ;AACD;AACF,GAND;;AAQA,QAAMW,kBAAkB,GAAG;AACzB,QAAIX,QAAQ,GAAGF,UAAf,EAA2B;AACzBxO,MAAAA,YAAY,CAAC;AAAEiO,QAAAA,GAAG,EAAEb,QAAP;AAAiBc,QAAAA,GAAG,EAAEM;AAAtB,OAAD,CAAZ;AACD,KAFD,MAEO,IAAIE,QAAQ,GAAGvB,QAAf,EAAyB;AAC9BnN,MAAAA,YAAY,CAAC;AAAEiO,QAAAA,GAAG,EAAEb,QAAP;AAAiBc,QAAAA,GAAG,EAAEf;AAAtB,OAAD,CAAZ;AACD;AACF,GAND;;AAQA,QAAMmC,oBAAoB,GAAG,OAAW;AACtCnC,IAAAA,QADsC;AAEtCC,IAAAA,QAFsC;AAGtCE,IAAAA,IAHsC;AAItCP,IAAAA,KAAK,EAAE4B;AAJ+B,GAAX,CAA7B;;AAOA,SACE9S,4BAAA,MAAA;AAAKL,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD,WAAnB,CAA+BO,IAA/B;GAAhB,EACEF,4BAAA,CAAC0T,MAAD;AACElC,IAAAA,KAAK,EAAE,CAACmB,UAAD,EAAaE,QAAb;KACH/S;AACJwE,IAAAA,QAAQ,EAAE8O;IAHZ,CADF,EAMEpT,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACuS;GAAxB,EACEtS,4BAAA,CAACqR,UAAD;AACEK,IAAAA,YAAY,EAAE6B;AACd5B,IAAAA,cAAc,EAAEoB;KACZU,oBAAoB;AACxBjC,IAAAA,KAAK,EAAEmB;IAJT,CADF,EAOE3S,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,EAAEI,OAAO,CAACwS;GAA/B,MAAA,CAPF,EAUEvS,4BAAA,CAACqR,UAAD;AACEK,IAAAA,YAAY,EAAE8B;AACd7B,IAAAA,cAAc,EAAEuB;KACZO,oBAAoB;AACxBjC,IAAAA,KAAK,EAAEqB;IAJT,CAVF,CANF,CADF;AA0BD,CAhFD;;AC1BA,MAAMc,kBAAkB,GAAgC,CAAC;AAAEnC,EAAAA,KAAF;AAASoC,EAAAA,SAAS,EAATA,UAAS,GAAG,EAArB;AAAyBrE,EAAAA;AAAzB,CAAD,KACtDvP,4BAAA,CAACA,cAAK,CAAC2M,QAAP,MAAA,EAEI6E,KAAK,CAAC5E,MAAN,GAAegH,UAAf,IAEE5T,4BAAA,CAACgN,eAAD;AACEC,EAAAA,cAAc,EAAEjN,4BAAA,CAAC4K,UAAD;AAAYxD,IAAAA,OAAO,EAAC;GAApB,EAA6BgI,aAAa,CAACoC,KAAD,EAAQoC,UAAR,EAAmBrE,eAAe,IAAIqE,UAAS,GAAG,CAAlD,CAA1C;AAChB1G,EAAAA,QAAQ,EAAEsE;CAFZ,CAJN,EAWIA,KAAK,CAAC5E,MAAN,IAAgBgH,UAAhB,IACGpC,KAZP,CADF;;ACDA,MAAMtS,WAAS,GAAGC,UAAU,CAAC;AAC3B0U,EAAAA,SAAS,EAAE;AACTzN,IAAAA,OAAO,EAAE,MADA;AAETI,IAAAA,cAAc,EAAE,QAFP;AAGTuD,IAAAA,eAAe,EAAE;AAHR,GADgB;AAM3B/G,EAAAA,IAAI,EAAE;AACJ8E,IAAAA,YAAY,eAAe3H,MAAM,CAACM;AAD9B;AANqB,CAAD,CAA5B;;AAWA,MAAMqT,UAAU,GAAmBjR,KAAD;AAChC,QAAM;AAAEhD,IAAAA;AAAF,MAAegD,KAArB;AACA,QAAM9C,OAAO,GAAGb,WAAS,EAAzB;AACA,SACEc,4BAAA,CAAC+T,IAAD;AAAMhU,IAAAA,OAAO,EAAEA;KAAa8C,MAA5B,EACGhD,QADH,CADF;AAKD,CARD;;ACTA,MAAMmU,SAAS,GAAIC,KAAD,KAAwB;AACxCnI,EAAAA,EAAE,oBAAoBmI,OADkB;AAExC,0CAAwCA;AAFA,CAAxB,CAAlB;;AAKA,MAAM/U,WAAS,GAAGC,UAAU,CAAC,OAAO;AAClC6D,EAAAA,IAAI,EAAE;AACJ+G,IAAAA,eAAe,EAAE5J,MAAM,CAACW,KADpB;AAEJoT,IAAAA,SAAS,EAAE,EAFP;AAGJ7U,IAAAA,KAAK,EAAE,MAHH;AAIJ4K,IAAAA,MAAM,KAAK9J,MAAM,CAACE,mBAJd;AAKJZ,IAAAA,YAAY,EAAE,EALV;AAMJ0U,IAAAA,QAAQ,EAAE;AANN,GAD4B;AASlCC,EAAAA,YAAY,EAAE;AACZF,IAAAA,SAAS,EAAE,EADC;AAEZ7U,IAAAA,KAAK,EAAE;AAFK,GAToB;AAalCgV,EAAAA,GAAG,EAAE;AACH,eAAW;AACTnR,MAAAA,KAAK,EAAE/C,MAAM,CAACE;AADL,KADR;AAIHZ,IAAAA,YAAY,EAAE,EAJX;AAKHyD,IAAAA,KAAK,EAAE/C,MAAM,CAACM,KALX;AAMHmC,IAAAA,UAAU,EAAE7B,KAAK,CAACS,MAAN,CAAaC,KANtB;AAOHyM,IAAAA,QAAQ,EAAE,KAPP;AAQHgG,IAAAA,SAAS,EAAE,MARR;AASH9J,IAAAA,QAAQ,EAAE,KATP;AAUHkK,IAAAA,YAAY,EAAE,MAVX;AAWHrO,IAAAA,OAAO,EAAE,CAXN;AAYH3D,IAAAA,aAAa,EAAE,YAZZ;AAaH4I,IAAAA,MAAM,EAAE,CAbL;AAcH,eAAW;AACToJ,MAAAA,YAAY,EAAE;AADL;AAdR,GAb6B;AAgClCC,EAAAA,YAAY,EAAE;AACZxK,IAAAA,eAAe,EAAE5J,MAAM,CAACE,OADZ;AAEZZ,IAAAA,YAAY,EAAE,EAFF;AAGZ4D,IAAAA,MAAM,EAAE;AAHI,GAhCoB;AAqClCmR,EAAAA,WAAW,EAAE;AAEXzK,IAAAA,eAAe,KAAK5J,MAAM,CAACE,oBAFhB;AAGX6C,IAAAA,KAAK,KAAK/C,MAAM,CAACW;AAHN;AArCqB,CAAP,CAAD,CAA5B;;AA4CA,MAAM2T,UAAU,GAAwB,CAAC;AACvCC,EAAAA,MADuC;AAC/BC,EAAAA,MAD+B;AACvBnD,EAAAA,KAAK,EAAEoD,eADgB;AACCtQ,EAAAA;AADD,CAAD;AAGtC,QAAMvE,OAAO,GAAGb,WAAS,EAAzB;;AAEA,QAAMiF,YAAY,GAAG,CACnBC,KADmB,EACWyQ,QADX;AAGnBvQ,IAAAA,QAAQ,CAACF,KAAD,EAAQyQ,QAAR,CAAR;AACD,GAJD;;AAMA,SACE7U,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACiD;GAAxB,EACEhD,4BAAA,CAAC8U,MAAD;kBACa;AACXnV,IAAAA,SAAS,EAAEI,OAAO,CAACqU;AACnB9P,IAAAA,QAAQ,EAAEH;AACV4Q,IAAAA,iBAAiB,EAAE;AACjBpV,MAAAA,SAAS,EAAEI,OAAO,CAACwU;AADF;AAGnB/C,IAAAA,KAAK,EAAEoD;AACPxN,IAAAA,OAAO,EAAC;GARV,EAUEpH,4BAAA,CAACgV,KAAD,oBACMhB,SAAS,CAAC,CAAD;AACbjU,IAAAA,OAAO,EAAE;AAAE8H,MAAAA,QAAQ,EAAE9H,OAAO,CAACyU;AAApB;AACT7U,IAAAA,SAAS,EAAEI,OAAO,CAACsU;AACnBvF,IAAAA,KAAK,EAAE4F;IAJT,CAVF,EAgBE1U,4BAAA,CAACgV,KAAD,oBACMhB,SAAS,CAAC,CAAD;AACbjU,IAAAA,OAAO,EAAE;AAAE8H,MAAAA,QAAQ,EAAE9H,OAAO,CAACyU;AAApB;AACT7U,IAAAA,SAAS,EAAEI,OAAO,CAACsU;AACnBvF,IAAAA,KAAK,EAAE6F;IAJT,CAhBF,CADF,CADF;AA2BD,CAtCD;;ACnDA,MAAMM,iBAAiB,GAA+B,CAAC;AACrDlI,EAAAA,YADqD;AAErDmI,EAAAA,eAFqD;AAGrDzQ,EAAAA;AAHqD,CAAD,KAKpDzE,4BAAA,CAACqH,SAAD;AAASE,EAAAA,KAAK,EAAEwF;CAAhB,EACE/M,4BAAA,OAAA,MAAA,EACEA,4BAAA,CAACmV,UAAD;AAAYjS,EAAAA,KAAK,EAAC;GAAcgS,gBAAhC,EACGzQ,IADH,CADF,CADF,CALF;;ACMA,MAAMvF,WAAS,GAAGC,UAAU,CAAE2C,KAAD,KAAmB;AAC9CsT,EAAAA,YAAY,EAAE;AACZnL,IAAAA,MAAM,eAAe9J,MAAM,CAACE,SADhB;AAEZ4F,IAAAA,OAAO,EAAEnE,KAAK,CAACyE,OAAN,CAAc,CAAd,CAFG;AAGZ8O,IAAAA,SAAS,EAAEvT,KAAK,CAACyE,OAAN,CAAc,CAAd;AAHC,GADgC;AAM9C+O,EAAAA,eAAe,EAAE;AACflP,IAAAA,OAAO,EAAE,MADM;AAEfI,IAAAA,cAAc,EAAE;AAFD;AAN6B,CAAnB,CAAD,CAA5B;;AAYA,MAAM+O,iBAAiB,GAA+B,CAAC;AACrDpO,EAAAA,IADqD;AAC/CqO,EAAAA,kBAAkB,EAAlBA,mBAAkB,GAAG,iBAD0B;AACPC,EAAAA,mBADO;AACchJ,EAAAA;AADd,CAAD;AAGpD,QAAM1M,OAAO,GAAGb,WAAS,EAAzB;AACA,SACEc,4BAAA,CAAC4Q,aAAD;AACErJ,IAAAA,KAAK,mBAAmBkO;AACxBtO,IAAAA,IAAI,EAAEA;AACNsF,IAAAA,OAAO,EAAEA;GAHX,EAKEzM,4BAAA,CAACA,cAAK,CAAC2M,QAAP,MAAA,EACE3M,4BAAA,CAAC4K,UAAD;AAAY8K,IAAAA,YAAY;AAACC,IAAAA,KAAK,EAAC;AAASzS,IAAAA,KAAK,EAAC;AAAY+E,IAAAA,SAAS,EAAC;GAApE,+BAAA,EAEG,GAFH,EAGGwN,mBAHH,0BAAA,EAMG,GANH,EAOEzV,4BAAA,CAAC4V,GAAD;AAAKxP,IAAAA,OAAO,EAAC;AAASxD,IAAAA,UAAU,EAAC;GAAjC,EAAqD4S,mBAArD,CAPF,KAAA,CADF,EAWExV,4BAAA,CAAC4R,IAAD;AACEC,IAAAA,SAAS;AACTlS,IAAAA,SAAS,EAAEI,OAAO,CAACqV;AACnB/O,IAAAA,UAAU,EAAC;GAHb,EAKErG,4BAAA,CAAC4R,IAAD;AAAM1C,IAAAA,IAAI;AAAC2G,IAAAA,EAAE,EAAE;AAAGlW,IAAAA,SAAS,EAAEI,OAAO,CAACuV;GAArC,EACEtV,4BAAA,CAAC8V,gBAAD,MAAA,CADF,CALF,EAQE9V,4BAAA,CAAC4R,IAAD;AAAM1C,IAAAA,IAAI;AAAC2G,IAAAA,EAAE,EAAE;GAAf,EACE7V,4BAAA,CAAC4K,UAAD;AAAY8K,IAAAA,YAAY;AAACxS,IAAAA,KAAK,EAAC;GAA/B,oCAAA,CADF,EAEElD,4BAAA,CAAC4K,UAAD;AAAY1H,IAAAA,KAAK,EAAC;AAAU+E,IAAAA,SAAS,EAAC;GAAtC,EACEjI,4BAAA,CAAC4V,GAAD;AAAKhT,IAAAA,UAAU,EAAC;GAAhB,kCAAA,CADF,CAFF,CARF,CAXF,CALF,CADF;AAmCD,CAvCD;;ACbA,MAAM1D,WAAS,GAAGC,UAAU,CAAE2C,KAAD,KAAmB;AAC9CiU,EAAAA,SAAS,EAAE;AACT3P,IAAAA,OAAO,EAAE,MADA;AAETI,IAAAA,cAAc,EAAE;AAFP,GADmC;AAK9CwP,EAAAA,gBAAgB,EAAE;AAChB9S,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KADE;AAEhBiH,IAAAA,QAAQ,EAAE5G,KAAK,CAACE,IAAN,CAAWC;AAFL,GAL4B;AAS9C+U,EAAAA,eAAe,EAAE;AACflM,IAAAA,eAAe,EAAE5J,MAAM,CAACK,KADT;AAEf4F,IAAAA,OAAO,EAAE,MAFM;AAGfI,IAAAA,cAAc,EAAE,QAHD;AAIf0P,IAAAA,aAAa,EAAEpU,KAAK,CAACyE,OAAN,CAAc,CAAd,CAJA;AAKflH,IAAAA,KAAK,EAAE;AALQ,GAT6B;AAgB9C8W,EAAAA,aAAa,EAAE;AACbd,IAAAA,SAAS,EAAEvT,KAAK,CAACyE,OAAN,CAAc,CAAd,CADE;AAEb2H,IAAAA,QAAQ,EAAE,KAFG;AAGb7O,IAAAA,KAAK,EAAE;AAHM,GAhB+B;AAqB9C+W,EAAAA,WAAW,EAAE;AACXC,IAAAA,YAAY,EAAEvU,KAAK,CAACyE,OAAN,CAAc,CAAd;AADH,GArBiC;AAwB9C+P,EAAAA,UAAU,EAAE;AACVlQ,IAAAA,OAAO,EAAE,MADC;AAEVI,IAAAA,cAAc,EAAE,QAFN;AAGVP,IAAAA,OAAO,EAAEnE,KAAK,CAACyE,OAAN,CAAc,CAAd;AAHC,GAxBkC;AA6B9CvD,EAAAA,IAAI,EAAE;AACJqD,IAAAA,UAAU,EAAE,QADR;AAEJD,IAAAA,OAAO,EAAE,MAFL;AAGJ2J,IAAAA,aAAa,EAAE,QAHX;AAIJjF,IAAAA,UAAU,EAAEhJ,KAAK,CAACyE,OAAN,CAAc,CAAd,CAJR;AAKJlH,IAAAA,KAAK,EAAE;AALH,GA7BwC;AAoC9CkX,EAAAA,MAAM,EAAE;AACNxM,IAAAA,eAAe,EAAE5J,MAAM,CAACK,KADlB;AAENgW,IAAAA,mBAAmB,EAAE,SAFf;AAGNC,IAAAA,oBAAoB,EAAE,SAHhB;AAINpT,IAAAA,MAAM,EAAEvB,KAAK,CAACyE,OAAN,CAAc,EAAd,CAJF;AAKNlH,IAAAA,KAAK,EAAE;AALD;AApCsC,CAAnB,CAAD,CAA5B;;AA6CA,MAAMqX,MAAM,GAAoB,CAAC;AAC/B/W,EAAAA,SAAS,EAATA,UAAS,GAAG,EADmB;AACfgX,EAAAA,aADe;AACAC,EAAAA,YADA;AACc,KAAG9W;AADjB,CAAD;AAG9B,QAAMC,OAAO,GAAGb,WAAS,EAAzB;AAEA,SACEc,4BAAA,SAAA;AAAQL,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD,YAAnB,CAA+BO,IAA/B;KAA2CJ,KAA9D,EACEE,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACwW;GAAxB,CADF,EAEEvW,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACkW;GAAxB,EACEjW,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACoW;GAAxB,EACEnW,4BAAA,CAAC4R,MAAD;AAAMC,IAAAA,SAAS;AAACgF,IAAAA,SAAS,EAAC;GAA1B,EACE7W,4BAAA,CAAC4R,MAAD;AAAMjS,IAAAA,SAAS,EAAEI,OAAO,CAACuW;AAAYpH,IAAAA,IAAI;AAAC4C,IAAAA,EAAE,EAAE;AAAIgF,IAAAA,EAAE,EAAE;AAAGC,IAAAA,EAAE,EAAE;GAA7D,EACE/W,4BAAA,MAAA;AAAK+G,IAAAA,GAAG,EAAEiQ;AAAkB3T,IAAAA,MAAM,EAAC;AAAO2D,IAAAA,GAAG,EAAC;GAA9C,CADF,CADF,EAKI4P,YAAY,CAAC/J,GAAb,CAAkBoK,UAAD,IACfjX,4BAAA,CAAC4R,MAAD;AACE9E,IAAAA,GAAG,QAAQ2C,iBAAiB,CAACwH,UAAU,CAAC1P,KAAZ;AAC5B2H,IAAAA,IAAI;AACJ4C,IAAAA,EAAE,EAAE;AACJ+D,IAAAA,EAAE,EAAE;AACJiB,IAAAA,EAAE,EAAE;AACJC,IAAAA,EAAE,EAAE;GANN,EAQE/W,4BAAA,CAACoQ,YAAD;AACEzQ,IAAAA,SAAS,EAAEI,OAAO,CAACqW;KACfa,WAFN,CARF,CADF,CALJ,CADF,EAuBEjX,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACgW;GAAxB,EACE/V,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,EAAEI,OAAO,CAACiW;GAA/B,EACGW,aADH,CADF,CAvBF,CADF,CAFF,CADF;AAoCD,CAzCD;;AC5DA,IAAYO,gBAAZ;;AAAA,WAAYA;AACVA,EAAAA,kDAAA,aAAA;AACAA,EAAAA,mDAAA,cAAA;AACAA,EAAAA,sDAAA,iBAAA;AACAA,EAAAA,sDAAA,iBAAA;AACD,CALD,EAAYA,gBAAgB,KAAhBA,gBAAgB,KAAA,CAA5B;;AAOA,yBAAeA,gBAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SCSgBC,QACdC,WAAsBxS,SAAS,CAACG;AAEhC,SAAO,IAAIsS,OAAJ,CAAkB,CAACC,OAAD,EAAUC,MAAV;AACvB,YAAQH,QAAR;AAEE,WAAKxS,SAAS,CAACO,KAAf;AACA,WAAKP,SAAS,CAACG,QAAf;AAAyB;AAEvB,cAAImC,MAAM,CAACsQ,QAAX,EAAqB;AACnB,kBAAMC,IAAI,GAAG,IAAIC,IAAJ,CAASxQ,MAAM,CAACsQ,QAAhB,CAAb;AACAtQ,YAAAA,MAAM,CAACsQ,QAAP,CACGG,MADH,GAEGhK,IAFH,CAEQ,MAAM2J,OAAO,CAACG,IAAD,CAFrB,EAGGG,KAHH,CAGSL,MAHT;AAID,WAND,MAMO,IAAIrQ,MAAM,CAACuQ,IAAX,EAAiB;AAEtBH,YAAAA,OAAO,CAAC,IAAII,IAAJ,CAASxQ,MAAM,CAACuQ,IAAP,CAAYI,eAArB,CAAD,CAAP;AACD,WAHM,MAGAN,MAAM,CAAC,IAAIvR,KAAJ,CAAU,wBAAV,CAAD,CAAN;;AACP;AACD;;AAGD,WAAKpB,SAAS,CAACmB,KAAf;AAAsB;AACpB,gBAAM+R,iBAAiB,GAAG,IAAIJ,IAAI,CAACK,SAAL,CAAeC,YAAnB,CACxB,yBADwB,CAA1B;AAGAV,UAAAA,OAAO,CAAC,IAAII,IAAJ,CAASI,iBAAT,CAAD,CAAP;AACA;AACD;;AAGD;AAAS;AACPP,UAAAA,MAAM,CACJ,IAAIvR,KAAJ,yDAC0DoR,UAD1D,CADI,CAAN;AAKA;AACD;AAnCH;AAqCD,GAtCM,CAAP;AAuCD;AAED,AAAO,MAAMa,cAAc,GAAG,CAC5BC,SAD4B,EAE5BC,OAF4B,KAGAC,YAAY,CAACC,IAAb,CAAmBC,CAAD,IAAQH,OAAO,GAC3DG,CAAC,CAACJ,SAAF,KAAgBA,SAAhB,IAA6BI,CAAC,CAACH,OAAF,KAAcA,OADgB,GAE3DG,CAAC,CAACJ,SAAF,KAAgBA,SAFU,CAHvB;AAOP,AAAO,MAAMK,sBAAsB,GAAG,MACpCd,IADoC;AAIpC,MAAIS,SAAJ;AACA,MAAIC,OAAJ;;AACA,MAAI;AACFD,IAAAA,SAAS,GAAG,MAAMT,IAAI,CAACe,GAAL,CAASC,GAAT,CAAaC,KAAb,EAAlB;;AAEA,QAAIR,SAAJ,EAAe;AACbC,MAAAA,OAAO,GAAG,MAAMV,IAAI,CAACe,GAAL,CAASG,UAAT,EAAhB;AACD;AACF,GAND,CAME,OAAOC,KAAP,EAAc;;AAChB,MAAIC,WAAJ;;AAEA,MAAIX,SAAJ,EAAe;AACb,QAAI;AACFW,MAAAA,WAAW,GAAGZ,cAAc,CAACC,SAAD,EAAYC,OAAZ,CAA5B;AACD,KAFD,CAEE,OAAOS,KAAP,EAAc;AACjB;;AACD,SAAOC,WAAP;AACD,CArBM;;AAuBP,MAAMC,eAAe,GAAG;AAEtB,MAAI5R,MAAM,CAACsQ,QAAX,EAAqB,OAAOtQ,MAAM,CAACsQ,QAAd;AAGrB,MAAItQ,MAAM,CAACuQ,IAAX,EAAiB,OAAOvQ,MAAM,CAACuQ,IAAP,CAAYI,eAAnB;AACjB,SAAOkB,SAAP;AACD,CAPD;;AAUA,AAAO,MAAMC,qBAAqB,GAAG;AACnC,QAAMC,MAAM,GAAmB,EAA/B;AAEA,QAAMpB,eAAe,GAAGiB,eAAe,EAAvC;AAEA,MAAI,CAACjB,eAAL,EAAsB,OAAOkB,SAAP;;AAEtB,MAAIlB,eAAe,CAACqB,UAApB,EAAgC;AAE9BD,IAAAA,MAAM,CAACE,IAAP,CACEtB,eAAe,CAACuB,aAAhB,GACIvU,eAAe,CAACD,SAAS,CAACO,KAAX,CADnB,GAEIN,eAAe,CAACD,SAAS,CAACG,QAAX,CAHrB;AAKD;;AAED,MAAI8S,eAAe,CAACwB,OAApB,EAA6BJ,MAAM,CAACE,IAAP,CAAYtU,eAAe,CAACD,SAAS,CAACW,KAAX,CAA3B;AAE7B,MAAIsS,eAAe,CAACyB,UAApB,EAAgCL,MAAM,CAACE,IAAP,CAAYtU,eAAe,CAACD,SAAS,CAACY,SAAX,CAA3B;AAEhC,MAAIqS,eAAe,CAAC0B,aAApB,EAAmCN,MAAM,CAACE,IAAP,CAAYtU,eAAe,CAACD,SAAS,CAACa,YAAX,CAA3B;AAEnC,MAAIoS,eAAe,CAAC2B,QAApB,EAA8BP,MAAM,CAACE,IAAP,CAAYtU,eAAe,CAACD,SAAS,CAACc,MAAX,CAA3B;AAE9B,MAAImS,eAAe,CAAC4B,OAApB,EAA6BR,MAAM,CAACE,IAAP,CAAYtU,eAAe,CAACD,SAAS,CAACe,QAAX,CAA3B;AAG7B,MAAI,OAAQuB,MAAc,CAACwS,UAAvB,KAAsC,WAA1C,EAAuDT,MAAM,CAACE,IAAP,CAAYtU,eAAe,CAACD,SAAS,CAAC+U,MAAX,CAA3B;AAEvD,MAAI9B,eAAe,CAAC+B,WAAhB,CAA4B5U,IAA5B,KAAqC,kBAAzC,EAA6DiU,MAAM,CAACE,IAAP,CAAYtU,eAAe,CAACD,SAAS,CAACgB,IAAX,CAA3B;AAE7D,MAAIiS,eAAe,CAAC+B,WAAhB,CAA4B5U,IAA5B,KAAqC,mBAAzC,EAA8DiU,MAAM,CAACE,IAAP,CAAYtU,eAAe,CAACD,SAAS,CAACiB,MAAX,CAA3B;AAE9D,MAAIgS,eAAe,CAACgC,IAAhB,IAAwBhC,eAAe,CAACgC,IAAhB,CAAqBC,OAArB,CAA6B,QAA7B,MAA2C,CAAC,CAAxE,EAA2Eb,MAAM,CAACE,IAAP,CAAYtU,eAAe,CAACD,SAAS,CAACkB,MAAX,CAA3B;AAE3E,MAAI+R,eAAe,CAACgC,IAAhB,IAAwBhC,eAAe,CAACgC,IAAhB,CAAqBC,OAArB,CAA6B,WAA7B,MAA8C,CAAC,CAA3E,EAA8Eb,MAAM,CAACE,IAAP,CAAYtU,eAAe,CAACD,SAAS,CAACmB,KAAX,CAA3B;AAE9E,SAAOkT,MAAP;AACD,CAtCM;AAwCP,AAAO,MAAMc,mBAAmB,GAAG,CACjCtC,IADiC,EAEjC/O,iBAFiC,EAGjCD,gBAHiC,EAIjCuR,OAJiC;AAMjC,MAAI,CAACvC,IAAL,EAAW,OAAOP,kBAAgB,CAAC+C,SAAxB;;AAEX,MAAIxR,gBAAgB,KAAKC,iBAAzB,EAA4C;AAC1C,WAAOwO,kBAAgB,CAACgD,YAAxB;AACD;;AAED,MAAIF,OAAJ,EAAa;AACX,WAAO9C,kBAAgB,CAACiD,QAAxB;AACD;;AACD,SAAOjD,kBAAgB,CAACkD,YAAxB;AACD,CAhBM;;AChHP,MAAMlb,WAAS,GAAGC,UAAU,CAAE2C,KAAD,KAAmB;AAC9CuY,EAAAA,WAAW,EAAE;AACX1S,IAAAA,QAAQ,EAAE5G,KAAK,CAACE,IAAN,CAAWC,IADV;AAEXiP,IAAAA,SAAS,EAAE;AAFA,GADiC;AAK9C9N,EAAAA,MAAM,EAAE;AACN4H,IAAAA,MAAM,eAAe9J,MAAM,CAACW,OADtB;AAEN,eAAW;AACTmJ,MAAAA,MAAM,eAAe9J,MAAM,CAACU;AADnB;AAFL,GALsC;AAW9CyZ,EAAAA,gBAAgB,EAAE;AAChB5T,IAAAA,WAAW,EAAE5E,KAAK,CAACyE,OAAN,CAAc,CAAd;AADG,GAX4B;AAc9CgU,EAAAA,YAAY,EAAE;AACZtU,IAAAA,OAAO,EAAEnE,KAAK,CAACyE,OAAN,CAAc,CAAd;AADG;AAdgC,CAAnB,CAAD,CAA5B;;AAmBA,MAAMiU,OAAO,GAAsB3X,KAAD;AAChC,QAAM;AACJ4U,IAAAA,IADI;AAEJoB,IAAAA,WAFI;AAGJmB,IAAAA,OAHI;AAIJzN,IAAAA,WAJI;AAKJC,IAAAA,kBALI;AAMJ9D,IAAAA,iBANI;AAOJM,IAAAA,uBAPI;AAQJC,IAAAA,wBARI;AASJC,IAAAA,gBATI;AAUJuM,IAAAA,mBAVI;AAWJgF,IAAAA,oBAAoB,GAAG;AAXnB,MAYF5X,KAZJ;AAaA,QAAM9C,OAAO,GAAGb,WAAS,EAAzB;AAEA,QAAM,CAACwb,gBAAD,EAAmBC,mBAAnB,IAA0CzW,QAAQ,CAACuW,oBAAD,CAAxD;;AACA,QAAMG,uBAAuB,GAAG,MAAYD,mBAAmB,CAAC,KAAD,CAA/D;;AACA,QAAME,sBAAsB,GAAG,MAAYF,mBAAmB,CAAC,IAAD,CAA9D;;AACA,QAAM,CAACG,iBAAD,EAAoBC,oBAApB,IAA4C7W,QAAQ,CAAC,KAAD,CAA1D;;AACA,QAAM8W,iBAAiB,GAAG,MAAYD,oBAAoB,CAAC,IAAD,CAA1D;;AACA,QAAME,kBAAkB,GAAG,MAAYF,oBAAoB,CAAC,KAAD,CAA3D;;AACA,QAAMG,gBAAgB,GAAqBnB,mBAAmB,CAACtC,IAAD,EAAO/O,iBAAP,EAA0BmQ,WAA1B,aAA0BA,WAA1B,uBAA0BA,WAAW,CAAEX,SAAvC,EAAkD8B,OAAlD,CAA9D;AAGA,QAAM,CAACmB,QAAD,EAAWC,WAAX,IAA0Bpb,cAAK,CAACkE,QAAN,CAAyC,IAAzC,CAAhC;AAEA,QAAMmX,WAAW,GAAGC,OAAO,CAACH,QAAD,CAA3B;AACA,QAAMrP,EAAE,GAAGuP,WAAW,GAAG,mBAAH,GAAyBtC,SAA/C;;AAEA,QAAMwC,kBAAkB,GAAG;AACzBH,IAAAA,WAAW,CAAC,IAAD,CAAX;AACD,GAFD;;AAIAI,EAAAA,SAAS,CAAC;AACR,QAAIN,gBAAgB,KAAKhE,kBAAgB,CAACgD,YAA1C,EAAwD;AACtDc,MAAAA,iBAAiB;AAClB,KAFD,MAEO;AACLC,MAAAA,kBAAkB;AAClBM,MAAAA,kBAAkB;AACnB;AACF,GAPQ,EAON,CAACL,gBAAD,CAPM,CAAT;;AASA,QAAMb,WAAW,GAAG;AAClB,QAAIa,gBAAgB,KAAKhE,kBAAgB,CAAC+C,SAA1C,EAAqD,OAAO,gBAAP;AAErD,QAAIiB,gBAAgB,KAAKhE,kBAAgB,CAACgD,YAA1C,EAAwD,OAAO,eAAP;;AAExD,QAAIF,OAAJ,EAAa;AAEX,aAAO5K,aAAa,CAAC4K,OAAD,CAApB;AACD;;AACD,WAAO,oBAAP;AACD,GAVD;;AAYA,QAAMyB,gBAAgB,GAAIrX,KAAD;AACvB,QAAI8W,gBAAgB,KAAKhE,kBAAgB,CAACgD,YAA1C,EAAwD,OAAOc,iBAAiB,EAAxB;AAExD,QAAIE,gBAAgB,KAAKhE,kBAAgB,CAAC+C,SAA1C,EAAqD,OAAOY,sBAAsB,EAA7B;AAErD,QAAIK,gBAAgB,KAAKhE,kBAAgB,CAACiD,QAA1C,EAAoD,OAAOiB,WAAW,CAAChX,KAAK,CAACsX,aAAP,CAAlB;AACpD,WAAO,IAAP;AACD,GAPD;;AASA,SACE1b,4BAAA,CAACA,cAAK,CAAC2M,QAAP,MAAA,EACE3M,4BAAA,CAACN,MAAD;AAAQkH,IAAAA,OAAO,EAAE6U;AAAkB9b,IAAAA,SAAS,EAAEI,OAAO,CAACsC;AAAQ+E,IAAAA,OAAO,EAAC;AAAYlE,IAAAA,KAAK,EAAC;AAAU1D,IAAAA,OAAO;GAAzG,EAEI,CAAC,CAACkJ,iBAAF,IACE1I,4BAAA,CAAC8I,gBAAD;AACEC,IAAAA,aAAa,EAAEhJ,OAAO,CAACua;AACvB7R,IAAAA,gBAAgB,EAAEoQ,WAAF,aAAEA,WAAF,uBAAEA,WAAW,CAAEX;AAC/BxP,IAAAA,iBAAiB,EAAEA;AACnBM,IAAAA,uBAAuB,EAAEA;AACzBC,IAAAA,wBAAwB,EAAEA;AAC1BC,IAAAA,gBAAgB,EAAEA;GANpB,CAHN,EAaElJ,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,EAAEI,OAAO,CAACsa;GAA/B,EACGA,WAAW,EADd,CAbF,CADF,EAmBEra,4BAAA,CAAC2b,OAAD;AACE7P,IAAAA,EAAE,EAAEA;AACJ3E,IAAAA,IAAI,EAAEkU;AACNF,IAAAA,QAAQ,EAAEA;AACV1O,IAAAA,OAAO,EAAE8O;AACTK,IAAAA,YAAY,EAAE;AACZC,MAAAA,QAAQ,EAAE,QADE;AAEZC,MAAAA,UAAU,EAAE;AAFA;AAIdC,IAAAA,eAAe,EAAE;AACfF,MAAAA,QAAQ,EAAE,KADK;AAEfC,MAAAA,UAAU,EAAE;AAFG;GATnB,EAcE9b,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,EAAEI,OAAO,CAACwa;GAA/B,uCACwC1B,WAArC,aAAqCA,WAArC,uBAAqCA,WAAW,CAAE7T,OADrD,CAdF,CAnBF,EAqCEhF,4BAAA,CAACsM,YAAD;AACEnF,IAAAA,IAAI,EAAEuT;AACNjO,IAAAA,OAAO,EAAEmO;AACTnD,IAAAA,IAAI,EAAEA;AACN/K,IAAAA,aAAa,EAAEkO;AACfrO,IAAAA,WAAW,EAAEA;AACbC,IAAAA,kBAAkB,EAAEA;GANtB,CArCF,EA6CExM,4BAAA,CAACuV,iBAAD;AACEpO,IAAAA,IAAI,EAAE2T;AACNrO,IAAAA,OAAO,EAAEwO;AACTxF,IAAAA,mBAAmB,EAAEA;AACrBD,IAAAA,kBAAkB,EAAEqD,WAAF,aAAEA,WAAF,uBAAEA,WAAW,CAAE7T;GAJnC,CA7CF,CADF;AAsDD,CAtHD;;ACnCA,MAAM9F,WAAS,GAAGC,UAAU,CAAE2C,KAAD,KAAmB;AAC9Cka,EAAAA,aAAa,EAAE;AACb9Y,IAAAA,KAAK,KAAK/C,MAAM,CAACW,kBADJ;AAEb8B,IAAAA,UAAU,EAAE7B,KAAK,CAACS,MAAN,CAAaH;AAFZ,GAD+B;AAK9C4a,EAAAA,OAAO,EAAE;AACP5V,IAAAA,UAAU,EAAE,QADL;AAEPnD,IAAAA,KAAK,EAAE/C,MAAM,CAACW,KAFP;AAGPsF,IAAAA,OAAO,EAAE,MAHF;AAIP2K,IAAAA,WAAW,EAAEjP,KAAK,CAACyE,OAAN,CAAc,CAAd,CAJN;AAKP0K,IAAAA,YAAY,EAAEnP,KAAK,CAACyE,OAAN,CAAc,CAAd,CALP;AAMP4J,IAAAA,SAAS,EAAE,QANJ;AAOPF,IAAAA,cAAc,EAAE,MAPT;AAQP,eAAW;AACT/M,MAAAA,KAAK,EAAE/C,MAAM,CAACQ,KADL;AAETsP,MAAAA,cAAc,EAAE;AAFP;AARJ,GALqC;AAkB9CiM,EAAAA,gBAAgB,EAAE;AAChB9V,IAAAA,OAAO,EAAE;AADO,GAlB4B;AAqB9CpD,EAAAA,IAAI,EAAE;AACJzD,IAAAA,SAAS,EAAE,MADP;AAGJ8D,IAAAA,MAAM,EAAEvB,KAAK,CAACyE,OAAN,CAAc3E,eAAe,CAACC,YAA9B;AAHJ;AArBwC,CAAnB,CAAD,CAA5B;;AA4BA,MAAMsa,aAAa,GAAoB,CAAC;AACtCC,EAAAA,QADsC;AAC5BC,EAAAA,UAD4B;AAChBC,EAAAA,QADgB;AACNC,EAAAA;AADM,CAAD;AAGrC,QAAMxc,OAAO,GAAGb,WAAS,EAAzB;AACA,QAAMsd,KAAK,GAAGD,KAAd;AAEA,SACEvc,4BAAA,CAACyc,MAAD;AAAQpS,IAAAA,QAAQ,EAAC;AAAQ1K,IAAAA,SAAS,EAAEI,OAAO,CAACiD;GAA5C,EACEhD,4BAAA,CAAC0c,OAAD,MAAA,EACE1c,4BAAA,CAAC4R,MAAD;AACEC,IAAAA,SAAS;GADX,EAGE7R,4BAAA,CAAC4R,MAAD;AAAM1C,IAAAA,IAAI;AAAC4C,IAAAA,EAAE,EAAE;GAAf,EACE9R,4BAAA,CAACkI,OAAD;AAASuI,IAAAA,EAAE,EAAE2L;GAAb,EACEpc,4BAAA,CAAC0H,UAAD,MAAA,CADF,CADF,CAHF,EAQE1H,4BAAA,CAAC4R,MAAD;AACE1C,IAAAA,IAAI;AACJ4C,IAAAA,EAAE,EAAE;AACJD,IAAAA,SAAS;AACT8K,IAAAA,OAAO,EAAC;GAJV,EAOI,CAAC,EAACN,UAAD,aAACA,UAAD,uBAACA,UAAU,CAAEzP,MAAb,CAAD,IACGyP,UAAU,CAACxP,GAAX,CAAgB+P,OAAD,IAChB5c,4BAAA,CAAC4K,UAAD;AACEjL,IAAAA,SAAS,EAAEI,OAAO,CAACmc;AACnBpP,IAAAA,GAAG,QAAQ2C,iBAAiB,CAACmN,OAAO,CAACrV,KAAT;GAF9B,EAIEvH,4BAAA,CAACkI,OAAD;AACEvI,IAAAA,SAAS,EAAEI,OAAO,CAACkc;AACnBY,IAAAA,eAAe,EAAE9c,OAAO,CAACic;KACrBY,QAHN,EAKGA,OAAO,CAACrV,KALX,CAJF,CADC,CARP,CARF,EAgCEvH,4BAAA,CAAC4R,MAAD;AACE1C,IAAAA,IAAI;AACJ4C,IAAAA,EAAE,EAAE;AACJD,IAAAA,SAAS;AACT8K,IAAAA,OAAO,EAAC;AACRG,IAAAA,YAAY,EAAC;GALf,EAQI,CAAC,EAACR,QAAD,aAACA,QAAD,uBAACA,QAAQ,CAAE1P,MAAX,CAAD,IACG0P,QAAQ,CAACzP,GAAT,CAAa,CAAC;AAAEpI,IAAAA,IAAF;AAAQ,OAAG3E;AAAX,GAAD,KACdE,4BAAA,CAAC+c,YAAD;AAAcjQ,IAAAA,GAAG,EAAErI,IAAI,CAACqI;KAAShN,KAAjC,EACG2E,IADH,CADC,CATP,CAhCF,EAgDEzE,4BAAA,CAAC4R,MAAD;AACE1C,IAAAA,IAAI;AACJ2C,IAAAA,SAAS;AACTC,IAAAA,EAAE,EAAE;AACJ6K,IAAAA,OAAO,EAAC;AACRG,IAAAA,YAAY,EAAC;GALf,EAOE9c,4BAAA,MAAA,MAAA,EACEA,4BAAA,CAACwc,KAAD,MAAA,CADF,CAPF,CAhDF,CADF,CADF,CADF;AAkED,CAxED;;ACvBA,MAAMQ,WAAW,GAAG,GAApB;AAEA,MAAM9d,WAAS,GAAGC,UAAU,CAAE2C,KAAD,IAAkB6B,cAAY,CAAC;AAC1DsZ,EAAAA,YAAY,EAAE;AACZ7W,IAAAA,OAAO,EAAE,MADG;AAEZC,IAAAA,UAAU,EAAE,QAFA;AAGZJ,IAAAA,OAAO,EAAEnE,KAAK,CAACyE,OAAN,CAAc,CAAd,EAAiB,CAAjB,CAHG;AAKZ,OAAGzE,KAAK,CAACob,MAAN,CAAaC,OALJ;AAMZ3W,IAAAA,cAAc,EAAE;AANJ,GAD4C;AAS1D4W,EAAAA,WAAW,EAAE;AACX/d,IAAAA,KAAK,EAAE2d;AADI,GAT6C;AAY1DK,EAAAA,YAAY,EAAE;AACZ9d,IAAAA,SAAS,EAAE,MADC;AAGZ8D,IAAAA,MAAM,EAAEvB,KAAK,CAACyE,OAAN,CAAc3E,eAAe,CAACC,YAA9B,CAHI;AAIZyb,IAAAA,UAAU,EAAExb,KAAK,CAACyb,WAAN,CAAkBC,MAAlB,CAAyB,CAAC,QAAD,EAAW,OAAX,CAAzB,EAA8C;AACxDC,MAAAA,MAAM,EAAE3b,KAAK,CAACyb,WAAN,CAAkBE,MAAlB,CAAyBC,KADuB;AAExDC,MAAAA,QAAQ,EAAE7b,KAAK,CAACyb,WAAN,CAAkBI,QAAlB,CAA2BC;AAFmB,KAA9C;AAJA,GAZ4C;AAqB1DC,EAAAA,iBAAiB,EAAE;AACjBxe,IAAAA,KAAK,iBAAiB2d,gBADL;AAEjBvZ,IAAAA,UAAU,EAAEuZ,WAFK;AAGjBM,IAAAA,UAAU,EAAExb,KAAK,CAACyb,WAAN,CAAkBC,MAAlB,CAAyB,CAAC,QAAD,EAAW,OAAX,CAAzB,EAA8C;AACxDC,MAAAA,MAAM,EAAE3b,KAAK,CAACyb,WAAN,CAAkBE,MAAlB,CAAyBK,OADuB;AAExDH,MAAAA,QAAQ,EAAE7b,KAAK,CAACyb,WAAN,CAAkBI,QAAlB,CAA2BI;AAFmB,KAA9C;AAHK,GArBuC;AA6B1DC,EAAAA,aAAa,EAAE;AACb3X,IAAAA,UAAU,EAAE,QADC;AAEbnD,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KAFD;AAGb0F,IAAAA,OAAO,EAAE,MAHI;AAIb6J,IAAAA,cAAc,EAAE,MAJH;AAKb5Q,IAAAA,KAAK,EAAE,MALM;AAMb,eAAW;AACT6D,MAAAA,KAAK,EAAE/C,MAAM,CAACQ,KADL;AAETsP,MAAAA,cAAc,EAAE;AAFP;AANE,GA7B2C;AAwC1DgO,EAAAA,mBAAmB,EAAE;AACnB/a,IAAAA,KAAK,KAAK/C,MAAM,CAACE;AADE;AAxCqC,CAAD,CAA/B,CAA5B;;AA6CA,MAAM6d,YAAY,GAAoB,CAAC;AACrC9B,EAAAA,QADqC;AAC3BC,EAAAA,UAD2B;AACfC,EAAAA,QADe;AACLC,EAAAA,KAAK,EAAEC;AADF,CAAD;AAGpC,QAAMzc,OAAO,GAAGb,WAAS,EAAzB;AACA,QAAM,CAACiI,IAAD,EAAOgX,OAAP,IAAkBja,QAAQ,CAAC,KAAD,CAAhC;;AAEA,QAAMka,YAAY,GAAIC,MAAD,IACnBja,KADwC;AAGxC,QACEA,KAAK,CAAC6N,IAAN,KAAe,SAAf,KACK7N,KAA6B,CAAC0I,GAA9B,KAAsC,KAAtC,IACC1I,KAA6B,CAAC0I,GAA9B,KAAsC,OAF5C,CADF,EAIE;AACA;AACD;;AACDqR,IAAAA,OAAO,CAACE,MAAD,CAAP;AACD,GAXD;;AAaA,SACEre,4BAAA,MAAA;AACEse,IAAAA,IAAI,EAAC;AACLC,IAAAA,SAAS,EAAEH,YAAY,CAAC,KAAD;GAFzB,EAIEpe,4BAAA,CAACyc,MAAD;AACEpS,IAAAA,QAAQ,EAAC;AACT1K,IAAAA,SAAS,KACJI,OAAO,CAACsd,gBAAgBlW,IAAI,GAAGpH,OAAO,CAAC8d,iBAAX,GAA+B,IAA9D,CAAmE3d,IAAnE;GAHJ,EAMEF,4BAAA,CAAC0c,OAAD,MAAA,EACG,CAACvV,IAAD,IACCnH,4BAAA,CAAC4R,MAAD;AAAMC,IAAAA,SAAS;GAAf,EACE7R,4BAAA,CAAC4R,MAAD;AAAM1C,IAAAA,IAAI;AAAC4C,IAAAA,EAAE,EAAE;GAAf,EACE9R,4BAAA,CAACmV,YAAD;AACEjS,IAAAA,KAAK,EAAC;kBACK;AACX0D,IAAAA,OAAO,EAAEwX,YAAY,CAAC,IAAD;GAHvB,EAKEpe,4BAAA,CAACwe,QAAD,MAAA,CALF,CADF,CADF,EAUExe,4BAAA,CAAC4R,MAAD;AAAM1C,IAAAA,IAAI;AAAC4C,IAAAA,EAAE,EAAE;GAAf,EACE9R,4BAAA,CAACkI,OAAD;AAASuI,IAAAA,EAAE,EAAE2L;GAAb,EACEpc,4BAAA,CAAC0H,UAAD,MAAA,CADF,CADF,CAVF,EAeE1H,4BAAA,CAAC4R,MAAD;AACE1C,IAAAA,IAAI;AACJ4C,IAAAA,EAAE,EAAE;AACJD,IAAAA,SAAS;AACT8K,IAAAA,OAAO,EAAC;AACRG,IAAAA,YAAY,EAAC;GALf,EAQI,CAAC,EAACR,QAAD,aAACA,QAAD,uBAACA,QAAQ,CAAE1P,MAAX,CAAD,IACG0P,QAAQ,CAACzP,GAAT,CAAa,CAAC;AAAEpI,IAAAA,IAAF;AAAQ,OAAG3E;AAAX,GAAD,KACdE,4BAAA,CAAC+c,YAAD;AAAcjQ,IAAAA,GAAG,EAAErI,IAAI,CAACqI;KAAShN,KAAjC,EACG2E,IADH,CADC,CATP,CAfF,EA+BEzE,4BAAA,CAAC4R,MAAD;AAAM1C,IAAAA,IAAI;AAAC4C,IAAAA,EAAE,EAAE;AAAGD,IAAAA,SAAS;AAAC8K,IAAAA,OAAO,EAAC;AAAWG,IAAAA,YAAY,EAAC;GAA5D,EACE9c,4BAAA,MAAA,MAAA,EACEA,4BAAA,CAACwc,KAAD,MAAA,CADF,CADF,CA/BF,CAFJ,CANF,CAJF,EAoDExc,4BAAA,CAACye,MAAD;AACEC,IAAAA,MAAM,EAAC;AACPvX,IAAAA,IAAI,EAAEA;AACNsF,IAAAA,OAAO,EAAE2R,YAAY,CAAC,KAAD;AACrBre,IAAAA,OAAO,EAAE;AACP+J,MAAAA,KAAK,EAAE/J,OAAO,CAACqd;AADR;AAGTxW,IAAAA,OAAO,EAAEwX,YAAY,CAAC,KAAD;GAPvB,EASEpe,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACkd;GAAxB,EACEjd,4BAAA,CAACmV,YAAD;AAAYvO,IAAAA,OAAO,EAAEwX,YAAY,CAAC,KAAD;GAAjC,EACEpe,4BAAA,CAAC2e,eAAD,MAAA,CADF,CADF,CATF,EAcE3e,4BAAA,CAAC4e,OAAD,MAAA,CAdF,EAeE5e,4BAAA,CAAC6e,IAAD,MAAA,EAEI,CAAC,EAACxC,UAAD,aAACA,UAAD,uBAACA,UAAU,CAAEzP,MAAb,CAAD,IACGyP,UAAU,CAACxP,GAAX,CAAgBiS,UAAD,IAChB9e,4BAAA,CAAC+e,QAAD;AACE1c,IAAAA,MAAM;AACNyK,IAAAA,GAAG,SAAS2C,iBAAiB,CAACqP,UAAU,CAACvX,KAAZ;GAF/B,EAIEvH,4BAAA,CAACkI,OAAD;AACEuI,IAAAA,EAAE,EAAEqO,UAAU,CAACrO;AACf9Q,IAAAA,SAAS,EAAEI,OAAO,CAACie;AACnBnB,IAAAA,eAAe,EAAE9c,OAAO,CAACke;GAH3B,EAKEje,4BAAA,CAAC+c,YAAD,MAAA,EACG+B,UAAU,CAACra,IADd,CALF,EAQEzE,4BAAA,CAACgf,YAAD;AAAc3e,IAAAA,OAAO,EAAEye,UAAU,CAACvX;GAAlC,CARF,CAJF,CADC,CAHP,CAfF,CApDF,CADF;AA8FD,CAjHD;;AC1DA,MAAM0X,MAAM,GAAqBpc,KAAD,IAC9B7C,4BAAA,CAACA,cAAK,CAAC2M,QAAP,MAAA,EACE3M,4BAAA,CAACkf,MAAD;AAAQC,EAAAA,MAAM;CAAd,EACEnf,4BAAA,CAACmc,aAAD,oBAAmBtZ,MAAnB,CADF,CADF,EAIE7C,4BAAA,CAACkf,MAAD;AAAQE,EAAAA,IAAI;CAAZ,EACEpf,4BAAA,CAACke,YAAD,oBAAkBrb,MAAlB,CADF,CAJF,CADF;;ACMA,MAAM3D,WAAS,GAAGC,UAAU,CAAE2C,KAAD,KAAmB;AAC9Cud,EAAAA,aAAa,EAAE;AACbhZ,IAAAA,UAAU,EAAE,QADC;AAEb0D,IAAAA,eAAe,EAAE5J,MAAM,CAACE,OAFX;AAGb+F,IAAAA,OAAO,EAAE,MAHI;AAIbI,IAAAA,cAAc,EAAE,QAJH;AAKbnH,IAAAA,KAAK,EAAE;AALM,GAD+B;AAQ9CigB,EAAAA,WAAW,EAAE;AACXpc,IAAAA,KAAK,EAAE/C,MAAM,CAACW,KADH;AAEXsF,IAAAA,OAAO,EAAE,MAFE;AAGX2J,IAAAA,aAAa,EAAE,QAHJ;AAIXI,IAAAA,SAAS,EAAE,QAJA;AAKX,KAACrO,KAAK,CAACkM,WAAN,CAAkBuR,IAAlB,CAAuB,IAAvB,CAAD,GAAgC;AAC9BrR,MAAAA,QAAQ,EAAE;AADoB,KALrB;AAQX,KAACpM,KAAK,CAACkM,WAAN,CAAkBC,EAAlB,CAAqB,IAArB,CAAD,GAA8B;AAC5BC,MAAAA,QAAQ,EAAE;AADkB,KARnB;AAWX,KAACpM,KAAK,CAACkM,WAAN,CAAkBC,EAAlB,CAAqB,IAArB,CAAD,GAA8B;AAC5BC,MAAAA,QAAQ,EAAE;AADkB;AAXnB,GARiC;AAuB9CsR,EAAAA,YAAY,EAAE;AACZnJ,IAAAA,YAAY,EAAEvU,KAAK,CAACyE,OAAN,CAAc,CAAd,CADF;AAEZoB,IAAAA,QAAQ,EAAE7F,KAAK,CAACyE,OAAN,CAAc,CAAd,CAFE;AAGZ3D,IAAAA,UAAU,EAAE7B,KAAK,CAACS,MAAN,CAAaE;AAHb,GAvBgC;AA4B9C+d,EAAAA,SAAS,EAAE;AACTpgB,IAAAA,KAAK,EAAE;AADE;AA5BmC,CAAnB,CAAD,CAA5B;;AAiCA,MAAMqgB,YAAY,GAA0B,CAC1C;AAAEC,EAAAA,WAAF;AAAeC,EAAAA,UAAf;AAA2BC,EAAAA;AAA3B,CAD0C;AAG1C,QAAM9f,OAAO,GAAGb,WAAS,EAAzB;AAEA,SACEc,4BAAA,CAACA,cAAK,CAAC2M,QAAP,MAAA,EACE3M,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACsf;GAAxB,EACErf,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACuf;GAAxB,EACEtf,4BAAA,CAAC4K,UAAD;AACEjL,IAAAA,SAAS,EAAEI,OAAO,CAACyf;AACnBpY,IAAAA,OAAO,EAAC;GAFV,EAIGwY,UAJH,EAKE5f,4BAAA,KAAA,MAAA,CALF,EAMG,GANH,EAOG6f,UAPH,CADF,EAUE7f,4BAAA,CAAC4K,UAAD;AAAYxD,IAAAA,OAAO,EAAC;GAApB,EAAiCuY,WAAjC,CAVF,CADF,CADF,EAeE3f,4BAAA,MAAA;AACEL,IAAAA,SAAS,EAAEI,OAAO,CAAC0f;AACnB1Y,IAAAA,GAAG,EAAE+Y;AACL9Y,IAAAA,GAAG,EAAC;GAHN,CAfF,CADF;AAuBD,CA5BD;;AChCA,MAAM9H,WAAS,GAAGC,UAAU,CAAE2C,KAAD,KAAmB;AAC9CkB,EAAAA,IAAI,EAAE;AACJqD,IAAAA,UAAU,EAAE,QADR;AAEJD,IAAAA,OAAO,EAAE,MAFL;AAGJ2J,IAAAA,aAAa,EAAE,QAHX;AAIJsF,IAAAA,SAAS,EAAEvT,KAAK,CAACyE,OAAN,CAAc,CAAd;AAJP,GADwC;AAO9CsL,EAAAA,SAAS,EAAE;AACTxL,IAAAA,UAAU,EAAE,QADH;AAETD,IAAAA,OAAO,EAAE,MAFA;AAGT2J,IAAAA,aAAa,EAAE,QAHN;AAIT,KAACjO,KAAK,CAACkM,WAAN,CAAkBC,EAAlB,CAAqB,IAArB,CAAD,GAA8B;AAC5BC,MAAAA,QAAQ,EAAE;AADkB;AAJrB,GAPmC;AAe9C6R,EAAAA,cAAc,EAAE;AACdhW,IAAAA,eAAe,EAAE5J,MAAM,CAACI;AADV,GAf8B;AAkB9Cyf,EAAAA,SAAS,EAAE;AACTrY,IAAAA,QAAQ,EAAE7F,KAAK,CAACK,UAAN,CAAiByF,OAAjB,CAAyB,EAAzB,CADD;AAET1B,IAAAA,MAAM,EAAEpE,KAAK,CAACyE,OAAN,CAAc,CAAd,EAAiB,CAAjB;AAFC,GAlBmC;AAsB9C0Z,EAAAA,gBAAgB,EAAE;AAChB5Z,IAAAA,UAAU,EAAE,QADI;AAEhBD,IAAAA,OAAO,EAAE,MAFO;AAGhB2J,IAAAA,aAAa,EAAE,QAHC;AAIhBsF,IAAAA,SAAS,EAAEvT,KAAK,CAACyE,OAAN,CAAc,CAAd;AAJK;AAtB4B,CAAnB,CAAD,CAA5B;;AA8BA,MAAM2Z,eAAe,GAA6B,CAAC;AAAEvgB,EAAAA,SAAS,EAATA,UAAS,GAAG,EAAd;AAAkBqgB,EAAAA,SAAlB;AAA6BG,EAAAA;AAA7B,CAAD;AAChD,QAAMpgB,OAAO,GAAGb,WAAS,EAAzB;AACA,SACEc,4BAAA,MAAA;AAAKL,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD,YAAnB,CAA+BO,IAA/B;GAAhB,EACEF,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAAC8R;GAAxB,EACE7R,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,EAAEI,OAAO,CAACigB;AAAW5Y,IAAAA,OAAO,EAAC;AAAKlE,IAAAA,KAAK,EAAC;GAA7D,EAAwE8c,SAAxE,CADF,EAEEhgB,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACkgB;GAAxB,EAEIE,mBAAmB,CAACtT,GAApB,CAAwB,CAACuT,KAAD,EAAyBjR,CAAzB,KACtBnP,4BAAA,CAACoO,UAAD;AAAYzO,IAAAA,SAAS,KAAKwP,CAAC,GAAG,CAAJ,KAAU,CAAV,GAAcpP,OAAO,CAACggB,cAAtB,GAAuC;AAAMjT,IAAAA,GAAG,SAAS2C,iBAAiB,CAAC2Q,KAAK,CAAC9R,QAAP;KAAwB8R,MAA5H,CADF,CAFJ,CAFF,CADF,CADF;AAcD,CAhBD;;ACrCA,MAAMlhB,WAAS,GAAGC,UAAU,CAAE2C,KAAD,KAAmB;AAC9CkB,EAAAA,IAAI,EAAE;AAEJqS,IAAAA,SAAS,EAAEvT,KAAK,CAACyE,OAAN,CAAc3E,eAAe,CAACC,YAA9B,CAFP;AAGJxC,IAAAA,KAAK,EAAE;AAHH;AADwC,CAAnB,CAAD,CAA5B;;AAQA,MAAMghB,YAAY,GAA0B,CAAC;AAAExgB,EAAAA,QAAF;AAAYF,EAAAA,SAAS,EAATA,UAAS,GAAG,EAAxB;AAA4B,KAAGkD;AAA/B,CAAD;AAC1C,QAAM9C,OAAO,GAAGb,WAAS,EAAzB;AAEA,SACEc,4BAAA,MAAA;AAAKL,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD,YAAnB,CAA+BO,IAA/B;KAA2C2C,MAA3D,EACGhD,QADH,CADF;AAKD,CARD;;MCiBaygB,gBAAgB,GAAsB;AACjDlJ,EAAAA,QAAQ,EAAE2B,SADuC;AAEjDtB,EAAAA,IAAI,EAAEsB,SAF2C;AAGjDiB,EAAAA,OAAO,EAAEjB,SAHwC;AAIjDF,EAAAA,WAAW,EAAEE;AAJoC,CAA5C;AAOP,MAAawH,SAAS,GAAGC,aAAa,CAAoB;AACxDC,EAAAA,KAAK,EAAEH,gBADiD;AAExDI,EAAAA,OAAO,EAAE;AACPnU,IAAAA,WAAW,EAAE,MAAqB8K,OAAO,CAACC,OAAR,EAD3B;AAEPqJ,IAAAA,wBAAwB,EAAE,MAAW,CAF9B;AAGPC,IAAAA,wBAAwB,EAAE,MAAW;AAH9B,GAF+C;AAOxDlY,EAAAA,iBAAiB,EAAEqQ,SAPqC;AAQxD8H,EAAAA,eAAe,EAAE9H;AARuC,CAApB,CAA/B;;AAkBP,MAAM+H,yBAAyB,GAAIC,QAAD;AAChC,MAAI/G,OAAJ;AAEA,MAAIgH,KAAK,CAACC,OAAN,CAAcF,QAAd,CAAJ,EAA6B,CAAC/G,OAAD,IAAY+G,QAAZ,CAA7B,KACK/G,OAAO,GAAG+G,QAAV;AACL,SAAO/G,OAAP;AACD,CAND;;AAgBA,MAAMkH,iBAAiB,GAAG,CACxBxY,iBADwB,EAExBmY,eAFwB,EAGxBhI,WAHwB;AAMxB,MAAI,CAACnQ,iBAAL,EAAwB,OAAO,IAAP;;AAExB,MAAIA,iBAAiB,MAAKmQ,WAAL,aAAKA,WAAL,uBAAKA,WAAW,CAAEX,SAAlB,CAArB,EAAkD;AAEhD,QAAI2I,eAAJ,EAAqB,OAAOA,eAAe,MAAKhI,WAAL,aAAKA,WAAL,uBAAKA,WAAW,CAAEV,OAAlB,CAAtB;AACrB,WAAO,IAAP;AACD;;AACD,SAAO,KAAP;AACD,CAdD;;AAgBA,MAAMgJ,YAAN,SAA2BC,SAA3B;AAOExH,EAAAA,YAAY/W;AACV,UAAMA,KAAN;AACA,SAAK4d,KAAL,GAAaH,gBAAb;AACA,SAAK5X,iBAAL,GAAyB7F,KAAK,CAAC6F,iBAA/B;AACA,SAAKmY,eAAL,GAAuBhe,KAAK,CAACge,eAA7B;AACA,SAAKF,wBAAL,GAAgC9d,KAAK,CAAC6d,OAAN,CAAcC,wBAA9C;AACA,SAAKC,wBAAL,GAAgC/d,KAAK,CAAC6d,OAAN,CAAcE,wBAA9C;AACA,SAAKrU,WAAL,GAAmB,KAAKA,WAAL,CAAiB8U,IAAjB,CAAsB,IAAtB,CAAnB;AACA,SAAKC,UAAL;AACD;;AAMM,QAAM/U,WAAN,CAAkB6K,QAAlB,EACLmK,cADK;AAEL,UAAM9J,IAAI,GAAG,MAAMN,OAAO,CAACC,QAAD,CAA1B;AACA,UAAM2J,QAAQ,GAAG,MAAMtJ,IAAI,CAACe,GAAL,CAASgJ,WAAT,EAAvB;AACA,UAAM3I,WAAW,GAAG,MAAMN,sBAAsB,CAACd,IAAD,CAAhD;AAEA,UAAMgK,gBAAgB,GAAGP,iBAAiB,CAAC,KAAKxY,iBAAN,EAAyB,KAAKmY,eAA9B,EAA+ChI,WAA/C,CAA1C;AAEA,UAAMmB,OAAO,GAAGyH,gBAAgB,GAC5BX,yBAAyB,CAACC,QAAD,CADG,GAE5BhI,SAFJ;AAIA,SAAK2I,QAAL,CACE;AACEjK,MAAAA,IADF;AAEEL,MAAAA,QAFF;AAGE4C,MAAAA,OAHF;AAIEnB,MAAAA;AAJF,KADF,EAOE,MAAO0I,cAAc,IAAIA,cAAc,CAACvH,OAAD,CAPzC;AASD;;AAEOsH,EAAAA,UAAU;;;AAChB,QAAI,CAACpa,MAAM,CAACsQ,QAAZ,EAAsB;AACpB;AACD;;AACD,SAAKhL,kBAAL,GAA0BwM,qBAAqB,EAA/C;AAEA9R,IAAAA,MAAM,CAACsQ,QAAP,CAAgBmK,0BAAhB,GAA6C,KAA7C;AAEAza,IAAAA,MAAM,CAACsQ,QAAP,CAAgBoK,EAAhB,CAAmB,gBAAnB,EAAqC,gBAAOC,MAAP;AACnC,YAAM;AAAEhJ,QAAAA;AAAF,UAAkB,KAAI,CAAC4H,KAA7B;AAEA,UAAI,CAAC5H,WAAL,EAAkB;AAClB,YAAM;AAAEzB,QAAAA;AAAF,UAAe,KAAI,CAACqJ,KAA1B;AACA,YAAMhJ,IAAI,GAAG,MAAMN,OAAO,CAACC,QAAD,CAA1B;AACA,YAAM2J,QAAQ,GAAG,MAAMtJ,IAAI,CAACe,GAAL,CAASgJ,WAAT,EAAvB;AACA,YAAMM,cAAc,GAAG,MAAMvJ,sBAAsB,CAACd,IAAD,CAAnD;AAGA,YAAMgK,gBAAgB,GAAGP,iBAAiB,CACxC,KAAI,CAACxY,iBADmC,EAExC,KAAI,CAACmY,eAFmC,EAGxCiB,cAHwC,CAA1C;AAKA,YAAM9H,OAAO,GAAGyH,gBAAgB,GAC5BX,yBAAyB,CAACC,QAAD,CADG,GAE5BhI,SAFJ;;AAIA,MAAA,KAAI,CAAC2I,QAAL,CACE;AACE7I,QAAAA,WAAW,EAAEiJ,cADf;AAEE9H,QAAAA;AAFF,OADF,EAKE,MAAM,KAAI,CAAC2G,wBAAL,IAAiC,KAAI,CAACA,wBAAL,EALzC;AAOD,KA1BD;AA4BAzZ,IAAAA,MAAM,CAACsQ,QAAP,CAAgBoK,EAAhB,CAAmB,iBAAnB,EAAuCb,QAAD;AACpC,YAAM;AAAElI,QAAAA;AAAF,UAAkB,KAAK4H,KAA7B;AAEA,UAAI,CAAC5H,WAAL,EAAkB;AAGlB,YAAM4I,gBAAgB,GAAGP,iBAAiB,CACxC,KAAKxY,iBADmC,EAChB,KAAKmY,eADW,EACMhI,WADN,CAA1C;;AAIA,UAAI4I,gBAAJ,EAAsB;AACpB,cAAMzH,OAAO,GAAG8G,yBAAyB,CAACC,QAAD,CAAzC;;AAEA,YAAI/G,OAAJ,EAAa;AACX,eAAK0H,QAAL,CAAc;AACZ1H,YAAAA;AADY,WAAd,EAGA,MAAM,KAAK4G,wBAAL,IACC,KAAKA,wBAAL,EAJP;AAKD;AACF;AACF,KArBD;AAsBD;;AAEMmB,EAAAA,MAAM;AACX,UAAM;AACJ3K,MAAAA,QADI;AAEJK,MAAAA,IAFI;AAGJuC,MAAAA,OAHI;AAIJnB,MAAAA;AAJI,QAKF,KAAK4H,KALT;AAMA,UAAM;AACJlU,MAAAA,WADI;AAEJoU,MAAAA,wBAFI;AAGJC,MAAAA,wBAHI;AAIJpU,MAAAA;AAJI,QAKF,IALJ;AAOA,UAAM;AAAE3M,MAAAA;AAAF,QAAe,KAAKgD,KAA1B;AAEA,WACE7C,4BAAA,CAACugB,SAAS,CAACyB,QAAX;AACExQ,MAAAA,KAAK,EAAE;AACLkP,QAAAA,OAAO,EAAE;AACPnU,UAAAA,WADO;AAEPoU,UAAAA,wBAFO;AAGPC,UAAAA;AAHO,SADJ;AAMLH,QAAAA,KAAK,EAAE;AACLrJ,UAAAA,QADK;AAELK,UAAAA,IAFK;AAGLuC,UAAAA,OAHK;AAILnB,UAAAA;AAJK,SANF;AAYLrM,QAAAA;AAZK;KADT,EAgBG3M,QAhBH,CADF;AAoBD;;;;AAGH,qBAAe;AAAEoiB,EAAAA,QAAQ,EAAE1B,SAAS,CAAC0B,QAAtB;AAAgCD,EAAAA,QAAQ,EAAEb;AAA1C,CAAf;;;;"} \ No newline at end of file diff --git a/dist/logoBlackAndBlue~bjZFbjOq.svg b/dist/logoBlackAndBlue~bjZFbjOq.svg deleted file mode 100644 index f212e0df..00000000 --- a/dist/logoBlackAndBlue~bjZFbjOq.svg +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/logoFullWhite~lLumzPXG.svg b/dist/logoFullWhite~lLumzPXG.svg deleted file mode 100644 index cc38f2ed..00000000 --- a/dist/logoFullWhite~lLumzPXG.svg +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/example/src/App.js b/example/src/App.js index 1730b20c..8c6c60f3 100644 --- a/example/src/App.js +++ b/example/src/App.js @@ -22,7 +22,7 @@ const App = () => { const headerProps = { hreflogo: '/', - items: [ + itemsStart: [ { title: 'FAQ', to: '/faq', diff --git a/package.json b/package.json index c610bf9c..51ab371d 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,6 @@ "test:watch": "react-scripts test --env=jsdom", "predeploy": "cd example && npm install && npm run build" }, - "dependencies": {}, "devDependencies": { "@material-ui/core": "^4.11.0", "@material-ui/icons": "^4.9.1", diff --git a/src/components/organisms/Header/HeaderDesktop.tsx b/src/components/organisms/Header/HeaderDesktop.tsx index 589b4d80..a7b34c0f 100644 --- a/src/components/organisms/Header/HeaderDesktop.tsx +++ b/src/components/organisms/Header/HeaderDesktop.tsx @@ -62,46 +62,49 @@ const HeaderDesktop: FC = ({ justify="flex-start" > { - !!itemsStart.length - && itemsStart.map((navItem: NavItemProps) => ( - - ( + - {navItem.title} - - - )) - } + + {navItem.title} + + + )) + } { - !!itemsEnd?.length - && itemsEnd.map(({ icon, ...rest }: ActionHeaderItemProps) => ( - - {icon} - - )) - } + !!itemsEnd?.length + && itemsEnd.map(({ icon, ...rest }: ActionHeaderItemProps) => ( + + {icon} + + )) + } - +
+ +
diff --git a/src/components/organisms/Header/HeaderMobile.tsx b/src/components/organisms/Header/HeaderMobile.tsx index 69b37b2f..66705ac9 100644 --- a/src/components/organisms/Header/HeaderMobile.tsx +++ b/src/components/organisms/Header/HeaderMobile.tsx @@ -104,7 +104,7 @@ const HeaderMobile: FC = ({ - + @@ -117,16 +117,18 @@ const HeaderMobile: FC = ({ alignContent="center" > { - !!itemsEnd?.length - && itemsEnd.map(({ icon, ...rest }: ActionHeaderItemProps) => ( - - {icon} - - )) - } + !!itemsEnd?.length + && itemsEnd.map(({ icon, ...rest }: ActionHeaderItemProps) => ( + + {icon} + + )) + } - - + +
+ +
)} @@ -149,7 +151,7 @@ const HeaderMobile: FC = ({ { - !!itemsStart.length + !!itemsStart?.length && itemsStart.map((headerItem: NavItemProps) => ( > + icon: ReactElement +} & Partial> From a65cb60dbda2df53b0b5bec71975ac688e92b0c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alvaro=20Fari=C3=B1a?= Date: Mon, 9 Nov 2020 12:37:58 -0300 Subject: [PATCH 08/11] chore: adds dist folder and ignored images --- .gitignore | 2 +- dist/logoBlackAndBlue~YbWCBYrQ.svg | 125 +++++++++++++++++++++++++++++ dist/logoFullWhite~geFkQihC.svg | 48 +++++++++++ 3 files changed, 174 insertions(+), 1 deletion(-) create mode 100644 dist/logoBlackAndBlue~YbWCBYrQ.svg create mode 100644 dist/logoFullWhite~geFkQihC.svg diff --git a/.gitignore b/.gitignore index 5544735c..8981b842 100644 --- a/.gitignore +++ b/.gitignore @@ -21,5 +21,5 @@ npm-debug.log* yarn-debug.log* yarn-error.log* -dist +# dist src/react-app-env.d.ts \ No newline at end of file diff --git a/dist/logoBlackAndBlue~YbWCBYrQ.svg b/dist/logoBlackAndBlue~YbWCBYrQ.svg new file mode 100644 index 00000000..ca380f12 --- /dev/null +++ b/dist/logoBlackAndBlue~YbWCBYrQ.svg @@ -0,0 +1,125 @@ + + + + +RIF_Logo_Phase1_RGB_NoTagline + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dist/logoFullWhite~geFkQihC.svg b/dist/logoFullWhite~geFkQihC.svg new file mode 100644 index 00000000..ee976693 --- /dev/null +++ b/dist/logoFullWhite~geFkQihC.svg @@ -0,0 +1,48 @@ + + + + + + + + + From 2663e39e753af0355af61a1332e8a4bdbef2b35a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alvaro=20Fari=C3=B1a?= Date: Mon, 9 Nov 2020 12:56:38 -0300 Subject: [PATCH 09/11] fix: fixes header styles for bigger resolutions --- dist/index.js | 7 +++++++ dist/index.js.map | 2 +- dist/index.modern.js | 7 +++++++ dist/index.modern.js.map | 2 +- example/src/App.js | 7 +++++++ src/components/organisms/Header/HeaderDesktop.tsx | 3 +++ src/components/organisms/Header/HeaderMobile.tsx | 4 +++- 7 files changed, 29 insertions(+), 3 deletions(-) diff --git a/dist/index.js b/dist/index.js index e8671c19..baa8a590 100644 --- a/dist/index.js +++ b/dist/index.js @@ -2895,6 +2895,7 @@ const HeaderDesktop = ({ }, React__default.createElement(LogoNavbar, null))), React__default.createElement(core.Grid, { item: true, xs: 6, + xl: 8, container: true, justify: "flex-start" }, !!(itemsStart === null || itemsStart === void 0 ? void 0 : itemsStart.length) && itemsStart.map(navItem => React__default.createElement(Typography, { @@ -2906,6 +2907,7 @@ const HeaderDesktop = ({ }, navItem), navItem.title)))), React__default.createElement(core.Grid, { item: true, xs: 3, + xl: 2, container: true, justify: "flex-end", alignContent: "center" @@ -2918,6 +2920,7 @@ const HeaderDesktop = ({ item: true, container: true, xs: 2, + xl: 1, justify: "flex-end", alignContent: "center" }, React__default.createElement("div", null, React__default.createElement(Login, null)))))); @@ -3006,6 +3009,8 @@ const HeaderMobile = ({ to: hreflogo }, React__default.createElement(LogoNavbar, null))), React__default.createElement(core.Grid, { item: true, + md: 6, + sm: 5, xs: 4, container: true, justify: "flex-end", @@ -3017,6 +3022,8 @@ const HeaderMobile = ({ key: icon.key }, rest), icon))), React__default.createElement(core.Grid, { item: true, + md: 2, + sm: 3, xs: 4, container: true, justify: "flex-end", diff --git a/dist/index.js.map b/dist/index.js.map index 9e17c8b7..135143ab 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["../src/components/atoms/Button.tsx","../src/theme/theme.ts","../src/components/atoms/Checkbox.tsx","../src/assets/images/icons/nifty.png","../src/assets/images/icons/rifCom.png","../src/assets/images/icons/rifDir.png","../src/assets/images/icons/rifGat.png","../src/assets/images/icons/rifMar.png","../src/assets/images/icons/rifPay.png","../src/assets/images/icons/rifSto.png","../src/models/ProviderInfo.ts","../src/components/atoms/LoginOption.tsx","../src/components/atoms/Logo.tsx","../src/components/atoms/LogoNavbar.tsx","../src/components/atoms/StyledNavTab.tsx","../src/components/atoms/NetworkIndicator.tsx","../src/components/atoms/modal/Modal.tsx","../src/components/atoms/modal/ModalHeader.tsx","../src/components/atoms/modal/ModalTitle.tsx","../src/components/atoms/modal/ModalFooter.tsx","../src/components/atoms/modal/ModalBody.tsx","../src/components/hoc/WithSpinner.tsx","../src/components/molecules/Accordion.tsx","../src/components/molecules/AccountModal.tsx","../src/components/molecules/CopyTextTooltip.tsx","../src/components/molecules/FAQSection.tsx","../src/components/molecules/LabeledCheckbox.tsx","../src/components/molecules/FilterCheckboxCard.tsx","../src/utils.ts","../src/components/molecules/FooterColumn.tsx","../src/components/molecules/ModalDialogue.tsx","../src/components/molecules/UnitsInput.tsx","../src/components/molecules/RangeSliderWithInputs.tsx","../src/components/molecules/ShortenTextTooltip.tsx","../src/components/molecules/StyledTabs.tsx","../src/components/molecules/SwitchTabs.tsx","../src/components/molecules/TooltipIconButton.tsx","../src/components/molecules/WrongNetworkModal.tsx","../src/components/organisms/Footer.tsx","../src/models/Enums.ts","../node_modules/babel-plugin-transform-async-to-promises/helpers.js","../src/services/Web3Service.ts","../src/components/organisms/Account.tsx","../src/components/organisms/Header/HeaderDesktop.tsx","../src/components/organisms/Header/HeaderMobile.tsx","../src/components/organisms/Header/Header.tsx","../src/components/organisms/Header/HeaderTongue.tsx","../src/components/templates/FAQPageTemplate.tsx","../src/components/templates/PageTemplate.tsx","../src/providers/Web3Provider.tsx"],"sourcesContent":["import React, { FC } from 'react'\nimport { Button as MUIButton, ButtonProps as MUIButtonProps } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\n\nexport interface ButtonProps extends MUIButtonProps {\n block?: boolean\n shadow?: boolean\n rounded?: boolean\n}\n\nconst useStyles = makeStyles(() => ({\n block: {\n width: '100%',\n },\n noShadow: {\n boxShadow: 'none',\n },\n rounded: {\n borderRadius: 50,\n },\n}))\n\nconst Button: FC = ({\n className = '', block, shadow, rounded, children, ...rest\n}) => {\n const classes = useStyles()\n\n return (\n \n {children}\n \n )\n}\n\nexport default Button\n","import { createMuiTheme } from '@material-ui/core/styles'\nimport '../assets/css/fonts/rubik.css'\n\nexport const colors = {\n black: '#000000',\n primary: '#008FF7',\n darkBlue: '#197DC6',\n gray1: '#F8F7F7',\n gray2: '#E5E5E5',\n gray3: '#C4C4C4',\n gray4: '#919191',\n gray5: '#4D4C4C',\n gray6: '#15171B',\n transparent: '#FFFFFF00',\n white: '#FFFFFF',\n}\n\nexport const fonts = {\n family: 'Rubik',\n size: {\n tiny: 10,\n small: 12,\n normal: 14,\n medium: 16,\n subtitleSmall: 18,\n subtitleBig: 22,\n },\n weight: {\n light: 300,\n regular: 400,\n medium: 500,\n bold: 700,\n },\n}\n\nexport const globalConstants = {\n headerHeight: 8,\n}\n\nconst theme = createMuiTheme({\n palette: {\n primary: {\n main: colors.primary,\n },\n secondary: {\n main: colors.gray4,\n },\n },\n typography: {\n fontFamily: fonts.family,\n button: {\n textTransform: 'none',\n },\n fontWeightLight: fonts.weight.light,\n fontWeightRegular: fonts.weight.regular,\n fontWeightMedium: fonts.weight.medium,\n fontWeightBold: fonts.weight.bold,\n body1: {\n fontWeight: fonts.weight.light,\n },\n },\n props: {},\n overrides: {\n MuiButton: {\n root: {\n fontWeight: fonts.weight.light,\n },\n },\n MuiFormControlLabel: {\n root: {\n color: colors.gray3,\n },\n },\n MuiSlider: {\n rail: {\n color: colors.gray3,\n height: 4,\n opacity: 1,\n },\n root: {\n width: '100%',\n color: colors.primary,\n height: 4,\n },\n track: {\n height: 4,\n },\n thumb: {\n marginLeft: -4,\n height: 14,\n width: 14,\n },\n },\n MuiTextField: {\n root: {\n color: colors.gray3,\n '&:hover': {\n color: colors.gray2,\n },\n },\n },\n },\n})\n\nexport default theme\n","import React, { FC, useState } from 'react'\nimport {\n Checkbox as MUICheckbox,\n CheckboxProps as MUICheckboxProps,\n makeStyles,\n createStyles,\n} from '@material-ui/core'\nimport { CheckBoxOutlineBlankSharp, CheckBoxSharp } from '@material-ui/icons'\nimport { colors } from '../../theme'\n\nexport type CheckboxProps = MUICheckboxProps;\n\nconst useStyles = makeStyles(() => createStyles({\n unCheckedIcon: {\n color: colors.gray4,\n },\n checkedIcon: {\n color: colors.primary,\n },\n}))\n\nconst Checkbox: FC = (props) => {\n const classes = useStyles()\n const { checked } = props\n const [isChecked, setIsChecked] = useState(!!checked)\n\n const handleChange = (event: React.ChangeEvent,\n newChecked: boolean): void => {\n setIsChecked(newChecked)\n const { onChange } = props\n\n if (onChange) onChange(event, newChecked)\n }\n\n return (\n \n }\n icon={\n \n }\n {...props}\n checked={isChecked}\n onChange={handleChange}\n />\n )\n}\n\nexport default Checkbox\n","/* loaded by smart-asset */\nexport default require(\"./nifty~RMIWdZeg.png\")","/* loaded by smart-asset */\nexport default require(\"./rifCom~udwpaCym.png\")","/* loaded by smart-asset */\nexport default require(\"./rifDir~bottaDNJ.png\")","/* loaded by smart-asset */\nexport default require(\"./rifGat~balFpEzC.png\")","/* loaded by smart-asset */\nexport default require(\"./rifMar~IDqKMWpK.png\")","/* loaded by smart-asset */\nexport default require(\"./rifPay~bdtOAceT.png\")","/* loaded by smart-asset */\nexport default require(\"./rifSto~fMRetflo.png\")","import { metaMaskIconImg, niftyIconImg } from '../assets/images'\n\nexport default interface ProviderInfo {\n name: string\n eProvider: EProvider\n iconImg?: string\n}\n\nexport enum EProvider {\n METAMASK = 'Metamask',\n NIFTY = 'Nifty',\n LEDGER = 'Ledger',\n TREZOR = 'Trezor',\n TRUST = 'Trust',\n LOCAL = 'Localhost',\n GO_WALLET = 'GoWallet',\n ALPHA_WALLET = 'AlphaWallet',\n STATUS = 'status',\n CIPHER = 'cipher',\n COINBASE = 'coinbase',\n MIST = 'mist',\n PARITY = 'parity',\n INFURA = 'infura'\n}\n\nexport const getProviderInfo = (eProvider: EProvider): ProviderInfo => {\n switch (eProvider) {\n case EProvider.METAMASK:\n return {\n name: 'MetaMask',\n eProvider,\n iconImg: metaMaskIconImg,\n }\n case EProvider.NIFTY:\n return {\n name: 'Nifty',\n eProvider,\n iconImg: niftyIconImg,\n }\n case EProvider.LEDGER:\n return {\n name: 'Ledger',\n eProvider,\n }\n case EProvider.TREZOR:\n return {\n name: 'Trezor',\n eProvider,\n }\n case EProvider.TRUST:\n return {\n name: 'Trust',\n eProvider,\n }\n case EProvider.GO_WALLET:\n return {\n name: 'Go Wallet',\n eProvider,\n }\n case EProvider.ALPHA_WALLET:\n return {\n name: 'Alpha Wallet',\n eProvider,\n }\n case EProvider.STATUS:\n return {\n name: 'Status',\n eProvider,\n }\n case EProvider.COINBASE:\n return {\n name: 'Coinbase',\n eProvider,\n }\n case EProvider.MIST:\n return {\n name: 'Mist',\n eProvider,\n }\n case EProvider.PARITY:\n return {\n name: 'Parity',\n eProvider,\n }\n case EProvider.INFURA:\n return {\n name: 'Infura',\n eProvider,\n }\n case EProvider.LOCAL:\n return {\n name: 'Localhost',\n eProvider,\n }\n default: {\n throw new Error(\n `EProvider not implemented or unknown. Chosen provider ${eProvider}`,\n )\n }\n }\n}\n","import React, { FC } from 'react'\nimport { makeStyles, Theme, Tooltip } from '@material-ui/core'\nimport Button from './Button'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport { niftyIconImg } from '../../assets/images'\n\nexport interface LoginOptionProps {\n className?: string\n onClick?: () => void\n providerInfo?: ProviderInfo\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n padding: 5,\n margin: 5,\n width: '100%',\n },\n content: {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n maxHeight: theme.spacing(5),\n justifyContent: 'center',\n },\n imageWrapper: {\n maxHeight: theme.spacing(4),\n marginRight: theme.spacing(2),\n },\n}))\n\n/**\n * If not providerInfo is received, we assume there's no provider available and so suggest to install Nifty wallet\n * Same happens when no onClick is provided. We open the Nifty page on a new tab\n */\nconst LoginOption: FC = ({\n className = '',\n onClick,\n providerInfo,\n ...rest\n}) => {\n const classes = useStyles()\n\n const providerContent = (\n
\n {\n providerInfo?.iconImg\n && (\n \n )\n }\n {providerInfo?.name}\n
\n )\n\n const handleOnClick = () => {\n if (onClick) {\n return onClick()\n }\n return window.open('https://www.poa.network/for-users/nifty-wallet/getting-started', '_blank')\n }\n\n return (\n \n {/* only with Nifty we display the Tooltip because atm we can't check if MetaMask is also enabled */}\n {!!providerInfo && providerInfo.eProvider === EProvider.NIFTY\n && (\n \n {providerContent}\n \n )}\n {!!providerInfo && providerInfo.eProvider !== EProvider.NIFTY\n && providerContent}\n {!providerInfo\n && (\n
\n \n Install Nifty wallet\n
\n )}\n \n )\n}\n\nexport default LoginOption\n","import React, { FC } from 'react'\nimport { logoFullWhite } from '../../assets/images'\n\nconst Logo: FC> = (\n { alt = 'RIF OS logo', ...rest },\n) => {alt}\n\nexport default Logo\n","import React, { FC } from 'react'\nimport { logoFullWhite } from '../../assets/images'\n\ninterface LogoProps extends React.Props {\n alt?: string\n height?: string | number\n style?: React.CSSProperties\n}\n\nconst LogoNavbar: FC = ({ alt = 'navbar logo', height = '44px', ...rest }) => (\n \n)\nexport default LogoNavbar\n","import React, { FC } from 'react'\nimport { Theme, makeStyles } from '@material-ui/core/styles'\nimport Tab from '@material-ui/core/Tab'\nimport { NavLink } from 'react-router-dom'\nimport { colors } from '../../theme'\n\nexport interface StyledNavTabProps {\n label: string\n to: string\n value: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n textTransform: 'none',\n color: colors.gray5,\n fontWeight: theme.typography.fontWeightRegular,\n fontSize: theme.typography.pxToRem(15),\n marginRight: theme.spacing(1),\n '&:focus': {\n opacity: 1,\n },\n },\n selected: {\n fontWeight: theme.typography.fontWeightMedium,\n borderBottom: '2px solid #000000',\n },\n}))\n\nconst StyledNavTab: FC = (props: StyledNavTabProps) => {\n const classes = useStyles()\n return \n}\n\nexport default StyledNavTab\n","import React, { FC } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport CheckCircleOutlineOutlinedIcon from '@material-ui/icons/CheckCircleOutlineOutlined'\nimport ErrorIcon from '@material-ui/icons/Error'\nimport WarningIcon from '@material-ui/icons/Warning'\nimport { green, yellow } from '@material-ui/core/colors'\n\nexport interface NetworkIndicatorProps {\n iconClassName?: string\n currentNetworkId?: number\n requiredNetworkId?: number\n onCorrectNetworkMessage?: string\n onNetworkMismatchMessage?: string\n noNetworkMessage?: string\n}\n\nconst defaultonCorrectNetworkMessage = 'You are on the right network'\nconst deaulftonNetworkMismatchMessage = 'You are on the wrong network'\nconst defaultNoNetworkMessage = 'You are not connected to any network'\n\nexport enum NetworkStatus {\n NO_NETWORK = 1,\n NETWORK_MISSMATCH = 2,\n CORRECT_NETWORK = 3\n}\n\nconst getNetworkStatus = (currentNetworkId, requiredNetworkId): NetworkStatus => {\n if (!currentNetworkId) return NetworkStatus.NO_NETWORK\n\n if (currentNetworkId === requiredNetworkId) return NetworkStatus.CORRECT_NETWORK\n return NetworkStatus.NETWORK_MISSMATCH\n}\n\nconst NetworkIndicator: FC = ({\n iconClassName = '',\n currentNetworkId, requiredNetworkId, onCorrectNetworkMessage,\n onNetworkMismatchMessage, noNetworkMessage,\n}) => {\n const networkStatus = getNetworkStatus(currentNetworkId, requiredNetworkId)\n\n const iconPerNetworkStatus = new Map()\n iconPerNetworkStatus.set(NetworkStatus.NO_NETWORK, (\n \n \n \n ))\n iconPerNetworkStatus.set(NetworkStatus.NETWORK_MISSMATCH, (\n \n \n \n ))\n iconPerNetworkStatus.set(NetworkStatus.CORRECT_NETWORK, (\n \n \n \n ))\n\n return (\n iconPerNetworkStatus.get(networkStatus)\n )\n}\n\nexport default NetworkIndicator\n","import React, { FC } from 'react'\nimport { Modal as MUIModal, ModalProps as MUIModalProps } from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport type ModalProps = MUIModalProps;\n\nconst useStyles = makeStyles((theme: Theme) => ({\n paper: {\n backgroundColor: theme.palette.background.paper,\n border: `2px solid ${colors.primary}`,\n boxShadow: theme.shadows[5],\n left: '50%',\n minWidth: 400,\n padding: theme.spacing(2, 4, 3),\n position: 'absolute',\n top: '50%',\n transform: 'translate(-50%, -50%)',\n },\n}))\n\nconst Modal: FC = ({ children, ...rest }) => {\n const classes = useStyles()\n\n return (\n \n
\n {children}\n
\n
\n )\n}\n\nexport default Modal\n","import React, { FC } from 'react'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport interface ModalHeaderProps {\n className?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n borderBottom: `1px solid ${colors.gray2}`,\n color: colors.primary,\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n },\n}))\n\nconst ModalHeader: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalHeader\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\n\nexport interface ModalTitleProps {\n className?: string\n}\n\nconst ModalTitle: FC = ({ children, ...rest }) => (\n \n {children}\n \n)\n\nexport default ModalTitle\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport interface ModalFooterProps {\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n borderTop: `1px solid ${colors.gray2}`,\n display: 'flex',\n justifyContent: 'center',\n paddingTop: theme.spacing(1),\n width: '100%',\n },\n}))\n\nconst ModalFooter: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalFooter\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\n\nexport interface ModalBodyProps {\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n padding: theme.spacing(3, 0),\n width: '100%',\n },\n}))\n\nconst ModalBody: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalBody\n","import React from 'react'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { logoBlueIcon } from '../../assets/images'\n\nconst useStyles = makeStyles(() => ({\n '@keyframes spin': {\n '0%': { transform: 'rotate(0deg)' },\n '100%': { transform: 'rotate(360deg)' },\n },\n root: {\n position: 'relative',\n },\n overlay: {\n position: 'absolute',\n zIndex: 2,\n height: '100%',\n width: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n background: '#FFFFFF55',\n },\n spinner: {\n display: 'inline-block',\n zIndex: 3,\n width: '50px',\n height: '50px',\n border: 'none',\n animation: '$spin 2s ease-in-out infinite',\n },\n}))\n\nconst WithSpinner = (WrappedComponent: React.ElementType) => {\n const Spinner = ({ isLoading, ...props }) => {\n const classes = useStyles()\n\n return (\n
\n {\n isLoading\n && (\n
\n \"logo\"\n
\n )\n }\n \n
\n )\n }\n return Spinner\n}\n\nexport default WithSpinner\n","import React, { FC, useState } from 'react'\nimport { Accordion as MUIAccordion, AccordionProps as MUIAccordionProps } from '@material-ui/core'\nimport Typography from '@material-ui/core/Typography'\nimport AccordionDetails from '@material-ui/core/AccordionDetails'\nimport AccordionSummary from '@material-ui/core/AccordionSummary'\nimport { makeStyles, Theme, createStyles } from '@material-ui/core/styles'\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore'\nimport { colors } from '../../theme'\n\ninterface AccordionProps extends MUIAccordionProps {\n id: string\n title?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n root: {\n boxShadow: 'none',\n color: colors.gray4,\n width: '100%',\n },\n heading: {\n color: colors.gray4,\n fontSize: theme.typography.pxToRem(15),\n fontWeight: theme.typography.fontWeightRegular,\n width: '100%',\n },\n accordionSummary: {\n borderBottom: `1px solid ${colors.gray2}`,\n },\n}))\n\nconst Accordion: FC = ({\n children, expanded, id, title,\n}) => {\n const classes = useStyles()\n const [isExpanded, setIsExpanded] = useState(!!expanded)\n\n const onChange = (): void => setIsExpanded(!isExpanded)\n\n return (\n \n }\n aria-controls={`panel-${id}-content`}\n id={id}\n >\n {title}\n \n \n {children}\n \n \n )\n}\n\nexport default Accordion\n","import React, { FC } from 'react'\nimport Web3 from 'web3'\nimport {\n Button, LoginOption, Modal, ModalBody, ModalFooter, ModalHeader, ModalTitle,\n} from '../atoms'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport NetworkInfo from '../../models/NetworkInfo'\n\nexport interface AccountModalProps {\n web3?: Web3\n networkInfo?: NetworkInfo\n setProvider?: (provider: EProvider, onProviderSet?:\n (account?: string) => void) => Promise\n availableProviders?: ProviderInfo[]\n onClose?: () => void\n onProviderSet?: (account) => void\n open: boolean\n}\n\nconst AccountModal: FC = ({\n setProvider,\n availableProviders,\n open,\n onClose,\n onProviderSet,\n}) => (\n \n \n \n Connect a wallet to get started\n \n \n {\n availableProviders && availableProviders.length && availableProviders.map(\n (providerInfo) => (\n => {\n if (setProvider) await setProvider(providerInfo.eProvider, onProviderSet)\n }}\n />\n ),\n )\n }\n {!availableProviders\n && (\n // TODO: Create LoginOptionTemplate to extract this\n // empty LoginOption means suggest to install Nifty wallet\n \n )}\n \n \n \n Close\n \n \n \n \n)\n\nexport default AccountModal\n","import React, { FC, useState } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport { makeStyles } from '@material-ui/core/styles'\nimport FileCopyIcon from '@material-ui/icons/FileCopy'\nimport Typography from '@material-ui/core/Typography'\n\nexport interface CopyTextTooltipProps {\n displayElement: React.ReactElement\n fullText: string\n}\n\nconst useStyles = makeStyles(() => ({\n tooltipTitle: {\n display: 'flex',\n alignItems: 'center',\n },\n}))\n\nconst CopyTextTooltip: FC = ({ displayElement, fullText }) => {\n const [isCopied, setIsCopied] = useState(false)\n\n const classes = useStyles()\n\n const tooltipContent = (\n
\n \n \n {fullText}\n \n
\n )\n\n return (\n Copied! : tooltipContent}\n onClick={() => {\n navigator.clipboard.writeText(fullText)\n .then(() => { setIsCopied(true) })\n }}\n onClose={() => {\n setIsCopied(false)\n }}\n >\n {displayElement}\n \n )\n}\n\nexport default CopyTextTooltip\n","import React, { FC, useState } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Accordion from '@material-ui/core/Accordion'\nimport AccordionDetails from '@material-ui/core/AccordionDetails'\nimport AccordionSummary from '@material-ui/core/AccordionSummary'\nimport Typography from '@material-ui/core/Typography'\nimport AddIcon from '@material-ui/icons/Add'\nimport RemoveIcon from '@material-ui/icons/Remove'\nimport { colors, fonts } from '../../theme'\n\nexport interface FAQSectionProps {\n answer: string\n initiallyExpanded?: boolean\n question: string\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n boxShadow: 'none',\n color: colors.gray4,\n width: '100%',\n },\n heading: {\n display: 'flex',\n justifyContent: 'center',\n color: colors.gray5,\n fontSize: fonts.size.subtitleSmall,\n width: '100%',\n },\n headingExpanded: {\n color: colors.primary,\n },\n headingCollapsed: {\n fontWeight: fonts.weight.regular,\n },\n panelDetails: {\n display: 'flex',\n justifyContent: 'center',\n },\n answerContainer: {\n [theme.breakpoints.up('md')]: {\n maxWidth: '80%',\n },\n },\n answerText: {\n color: colors.gray5,\n },\n}))\n\nconst FAQSection: FC = ({\n className = '', initiallyExpanded, question, answer,\n}) => {\n const classes = useStyles()\n const [isExpanded, setIsExpanded] = useState(!!initiallyExpanded)\n\n const onChange = (): void => setIsExpanded(!isExpanded)\n\n return (\n \n : }\n >\n {question}\n \n \n
\n {answer}\n
\n
\n
\n )\n}\n\nexport default FAQSection\n","import React, { FC } from 'react'\nimport { FormControlLabel } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Checkbox, { CheckboxProps } from '../atoms/Checkbox'\nimport { colors } from '../../theme'\n\nexport interface LabeledCheckboxProps extends CheckboxProps {\n labelText: string\n labelClassName?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n color: colors.gray4,\n width: '100%',\n },\n}))\n\nconst LabeledCheckbox: FC = ({ labelText, labelClassName = '', ...rest }) => {\n const classes = useStyles()\n return (\n \n }\n />\n\n )\n}\n\nexport default LabeledCheckbox\n","import React, { FC } from 'react'\nimport LabeledCheckbox, { LabeledCheckboxProps } from './LabeledCheckbox'\n\nexport interface FilterCheckboxCardProps {\n className?: string\n items: LabeledCheckboxProps[]\n onClick?: (event: React.MouseEvent) => void\n}\n\nconst FilterCheckboxCard: FC = ({ className = '', onClick, items }) => (\n
\n {items.map((item: LabeledCheckboxProps, i) => (\n \n ))}\n
\n)\n\nexport default FilterCheckboxCard\n","const shortenString = (\n str: string,\n largerThan = 16,\n charsShownCount = 6,\n): string => (str.length > largerThan\n ? `${str.substr(0, charsShownCount)}...${str.substr(str.length - 4)}`\n : str)\n\nconst removeEmptySpaces = (str: string): string => str.replace(/\\s/g, '')\n\nconst maxSupportedNumber = 99999999999999\nconst minSupportedNumber = 0.000001\n\nconst validatedNumber = (num: number): number => {\n if (num > 0) {\n if (num > maxSupportedNumber) return maxSupportedNumber\n\n if (num < minSupportedNumber) return minSupportedNumber\n }\n\n if (num < 0) {\n if (num < -maxSupportedNumber) return -maxSupportedNumber\n\n if (num > -minSupportedNumber) return -minSupportedNumber\n }\n return num\n}\n\nexport {\n shortenString,\n removeEmptySpaces,\n maxSupportedNumber,\n minSupportedNumber,\n validatedNumber,\n}\n","import React, { FC } from 'react'\nimport { NavLinkProps, NavLink } from 'react-router-dom'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../theme'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FooterColumnProps {\n className?: string\n links: FooterLinkProps[]\n title: string\n}\n\nexport interface FooterLinkProps extends NavLinkProps {\n isExternal?: boolean\n title: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n },\n footerLink: {\n color: colors.gray4,\n fontWeight: fonts.weight.light,\n textDecoration: 'none',\n '&:hover': {\n fontWeight: fonts.weight.regular,\n },\n },\n footerTitle: {\n fontSize: fonts.size.subtitleBig,\n textAlign: 'center',\n },\n}))\n\nconst FooterColumn: FC = ({ title, links, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {title}\n {\n links.map((link: FooterLinkProps) => {\n const key = removeEmptySpaces(link.title)\n\n if (link.isExternal) {\n const href = (link.to || '#').toString()\n return (\n \n {link.title}\n \n )\n }\n return (\n \n {link.title}\n \n )\n })\n }\n
\n )\n}\n\nexport default FooterColumn\n","import React, { FC } from 'react'\nimport {\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n ModalTitle,\n} from '../atoms'\nimport { ModalProps } from '../atoms/modal/Modal'\n\nexport interface ModalDialogueProps extends ModalProps {\n title: string\n footer?: React.ReactElement\n}\n\nconst ModalDialogue: FC = ({\n title,\n footer,\n children,\n ...props\n}) => (\n \n \n \n {title}\n \n {children}\n {footer}\n \n \n)\n\nexport default ModalDialogue\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Input, { InputProps } from '@material-ui/core/Input'\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../theme'\n\nexport interface UnitsInputProps extends InputProps {\n handleOnChange: (event: React.ChangeEvent) => void\n handleOnBlur?: () => void\n maxValue?: number\n minValue?: number\n step?: number\n units?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n color: colors.gray4,\n display: 'flex',\n },\n input: {\n color: colors.gray4,\n paddingLeft: theme.spacing(0.1),\n textAlign: 'center',\n '&::before': {\n borderBottom: `1px solid ${colors.gray4}`,\n },\n },\n inputContainer: {\n paddingRight: '0 !important',\n },\n units: {\n color: colors.gray4,\n display: 'flex',\n fontSize: fonts.size.tiny,\n },\n unitsContainer: {\n alignSelf: 'center',\n color: colors.gray4,\n display: 'flex',\n fontSize: fonts.size.normal,\n paddingLeft: '0 !important',\n },\n}))\n\nconst UnitsInput: FC = ({\n maxValue,\n minValue,\n units,\n value,\n step = 1,\n handleOnBlur,\n handleOnChange,\n ...rest\n}) => {\n const classes = useStyles()\n\n return (\n \n \n \n \n \n \n \n {units}\n \n \n \n \n )\n}\n\nexport default UnitsInput\n","import Slider, { SliderProps } from '@material-ui/core/Slider'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport UnitsInput from './UnitsInput'\nimport { validatedNumber } from '../../utils'\nimport { fonts } from '../../theme'\n\nexport interface RangeSliderWithInputsProps extends SliderProps {\n values: {\n start: number\n end: number\n }\n unit?: string\n handleChange: ({ min, max }) => void\n className?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n width: '100%',\n },\n inputsContainer: {\n alignSelf: 'center',\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n },\n toContainer: {\n alignSelf: 'center',\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n fontWeight: fonts.weight.regular,\n },\n}))\n\nconst RangeSliderWithInputs: FC = ({\n values: {\n start: startValue, end: endValue,\n }, unit, handleChange, className, ...rest\n}) => {\n const classes = useStyles()\n\n const maxValue = rest.max || endValue\n const minValue = rest.min || startValue\n const step = rest.step || 1\n\n const handleStartInputChange = (\n event: React.ChangeEvent,\n ): void => {\n const newStartValue = validatedNumber(Number(event.target.value)) || minValue\n handleChange({ min: newStartValue, max: endValue })\n }\n\n const handleEndInputChange = (\n event: React.ChangeEvent,\n ): void => {\n const newEndValue = validatedNumber(Number(event.target.value)) || endValue\n handleChange({ min: startValue, max: newEndValue })\n }\n\n const handleSliderChange = (\n _: React.ChangeEvent<{}>, newSliderValue: number | number[],\n ): void => {\n handleChange({ min: newSliderValue[0], max: newSliderValue[1] })\n }\n\n const handleStartValueBlur = (): void => {\n if (startValue < minValue) {\n handleChange({ min: minValue, max: endValue })\n } else if (startValue > endValue) {\n handleChange({ min: endValue, max: endValue })\n }\n }\n\n const handleEndValueBlur = (): void => {\n if (endValue < startValue) {\n handleChange({ min: minValue, max: startValue })\n } else if (endValue > maxValue) {\n handleChange({ min: minValue, max: maxValue })\n }\n }\n\n const getCommonInputValues = (): {} => ({\n maxValue,\n minValue,\n step,\n units: unit,\n })\n\n return (\n
\n \n
\n \n \n to\n \n \n
\n
\n )\n}\n\nexport default RangeSliderWithInputs\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport CopyTextTooltip from './CopyTextTooltip'\nimport { shortenString } from '../../utils'\n\nexport interface ShortenTextTooltipProps {\n value: string\n maxLength?: number\n charsShownCount?: number\n}\n\nconst ShortenTextTooltip: FC = ({ value, maxLength = 20, charsShownCount }) => (\n \n {\n value.length > maxLength\n && (\n {shortenString(value, maxLength, charsShownCount || maxLength - 5)}}\n fullText={value}\n />\n )\n }\n {\n value.length <= maxLength\n && value\n }\n \n)\n\nexport default ShortenTextTooltip\n","import React, { FC } from 'react'\nimport Tabs, { TabsProps } from '@material-ui/core/Tabs'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { colors } from '../../theme'\n\nexport interface StyledTabsProps {\n value: string\n onChange: (event: React.ChangeEvent<{}>, newValue: string) => void\n}\n\nconst useStyles = makeStyles({\n indicator: {\n display: 'flex',\n justifyContent: 'center',\n backgroundColor: 'transparent',\n },\n root: {\n borderBottom: `1px solid ${colors.gray3}`,\n },\n})\n\nconst StyledTabs: FC = (props: TabsProps) => {\n const { children } = props\n const classes = useStyles()\n return (\n \n {children}\n \n )\n}\n\nexport default StyledTabs\n","import { Tab as MUITab, Tabs as MUITabs } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React, { FC } from 'react'\nimport { colors, fonts } from '../../theme'\n\nexport interface SwitchTabsProps {\n label1: string\n label2: string\n value?: 0 | 1\n onChange: (event: React.ChangeEvent<{}>, value: number) => void\n}\n\nconst a11yProps = (index: number): {} => ({\n id: `full-width-tab-${index}`,\n 'aria-controls': `full-width-tabpanel-${index}`,\n})\n\nconst useStyles = makeStyles(() => ({\n root: {\n backgroundColor: colors.white,\n minHeight: 20,\n width: '100%',\n border: `${colors.primary} solid 1px`,\n borderRadius: 50,\n overflow: 'hidden',\n },\n tabContainer: {\n minHeight: 20,\n width: '100%',\n },\n tab: {\n '&:hover': {\n color: colors.primary,\n },\n borderRadius: 50,\n color: colors.gray3,\n fontWeight: fonts.weight.light,\n maxWidth: '50%',\n minHeight: '100%',\n minWidth: '50%',\n outlineStyle: 'none',\n padding: 0,\n textTransform: 'capitalize',\n zIndex: 1,\n '&:focus': {\n outlineStyle: 'none',\n },\n },\n // shows the transition between tabs\n tabIndicator: {\n backgroundColor: colors.primary,\n borderRadius: 50,\n height: '100%',\n },\n tabSelected: {\n // the '!important' overrides the on hover functionality when it's active\n backgroundColor: `${colors.primary} !important`,\n color: `${colors.white} !important`,\n },\n}))\n\nconst SwitchTabs: FC = ({\n label1, label2, value: controlledValue, onChange,\n}) => {\n const classes = useStyles()\n\n const handleChange = (\n event: React.ChangeEvent<{}>, newValue: number,\n ): void => {\n onChange(event, newValue)\n }\n\n return (\n
\n \n \n \n \n
\n )\n}\n\nexport default SwitchTabs\n","import React, { FC } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport IconButton, { IconButtonProps } from '@material-ui/core/IconButton'\n\nexport interface TooltipIconButtonProps {\n tooltipTitle: string\n iconButtonProps: IconButtonProps\n icon: React.ReactNode\n}\n\nconst TooltipIconButton: FC = ({\n tooltipTitle,\n iconButtonProps,\n icon,\n}) => (\n \n \n \n {icon}\n \n \n\n \n)\n\nexport default TooltipIconButton\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport Box from '@material-ui/core/Box'\nimport Grid from '@material-ui/core/Grid'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../theme'\nimport ModalDialogue from './ModalDialogue'\n\nexport interface WrongNetworkModalProps {\n open: boolean\n currentNetworkName?: string\n requiredNetworkName: string\n onClose: () => void\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n boxContainer: {\n border: `1px solid ${colors.primary}`,\n padding: theme.spacing(5),\n marginTop: theme.spacing(3),\n },\n loaderContainer: {\n display: 'flex',\n justifyContent: 'center',\n },\n}))\n\nconst WrongNetworkModal: FC = ({\n open, currentNetworkName = 'Private network', requiredNetworkName, onClose,\n}) => {\n const classes = useStyles()\n return (\n \n \n \n This dApp only works on the\n {' '}\n {requiredNetworkName}\n .\n You are currently on\n {' '}\n {currentNetworkName}\n .\n \n \n \n \n \n \n Waiting for the right network...\n \n Switch networks on your wallet\n \n \n
\n \n \n )\n}\nexport default WrongNetworkModal\n","import React, { FC, HTMLAttributes } from 'react'\nimport { Grid } from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport FooterColumn, { FooterColumnProps } from '../molecules/FooterColumn'\nimport { colors, fonts } from '../../theme'\nimport { logoBlackAndBlue } from '../../assets/images'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FooterProps extends HTMLAttributes {\n className?: string\n copyrightText: string\n linksColumns: FooterColumnProps[]\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n copyright: {\n display: 'flex',\n justifyContent: 'center',\n },\n copyrightContent: {\n color: colors.gray4,\n fontSize: fonts.size.tiny,\n },\n footerContainer: {\n backgroundColor: colors.gray2,\n display: 'flex',\n justifyContent: 'center',\n paddingBottom: theme.spacing(2),\n width: '100%',\n },\n footerContent: {\n marginTop: theme.spacing(2),\n maxWidth: '80%',\n width: '100%',\n },\n linksColumn: {\n marginBottom: theme.spacing(1),\n },\n logoColumn: {\n display: 'flex',\n justifyContent: 'center',\n padding: theme.spacing(5),\n },\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n paddingTop: theme.spacing(4),\n width: '100%',\n },\n tongue: {\n backgroundColor: colors.gray2,\n borderTopLeftRadius: '50% 80%',\n borderTopRightRadius: '50% 80%',\n height: theme.spacing(10),\n width: '100%',\n },\n}))\n\nconst Footer: FC = ({\n className = '', copyrightText, linksColumns, ...rest\n}) => {\n const classes = useStyles()\n\n return (\n
\n
\n
\n
\n \n \n \"logo\"\n \n {\n linksColumns.map((linkColumn: FooterColumnProps) => (\n \n \n \n ))\n }\n \n
\n \n {copyrightText}\n \n
\n
\n
\n
\n )\n}\n\nexport default Footer\n","export enum ConnectionStatus {\n LoggedIn = 0,\n LoggedOut = 1,\n WalletLocked = 2,\n WrongNetwork = 3\n}\n\nexport default ConnectionStatus\n","// A type of promise-like that resolves synchronously and supports only one observer\nexport const _Pact = /*#__PURE__*/(function() {\n\tfunction _Pact() {}\n\t_Pact.prototype.then = function(onFulfilled, onRejected) {\n\t\tconst result = new _Pact();\n\t\tconst state = this.s;\n\t\tif (state) {\n\t\t\tconst callback = state & 1 ? onFulfilled : onRejected;\n\t\t\tif (callback) {\n\t\t\t\ttry {\n\t\t\t\t\t_settle(result, 1, callback(this.v));\n\t\t\t\t} catch (e) {\n\t\t\t\t\t_settle(result, 2, e);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\tthis.o = function(_this) {\n\t\t\ttry {\n\t\t\t\tconst value = _this.v;\n\t\t\t\tif (_this.s & 1) {\n\t\t\t\t\t_settle(result, 1, onFulfilled ? onFulfilled(value) : value);\n\t\t\t\t} else if (onRejected) {\n\t\t\t\t\t_settle(result, 1, onRejected(value));\n\t\t\t\t} else {\n\t\t\t\t\t_settle(result, 2, value);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(result, 2, e);\n\t\t\t}\n\t\t};\n\t\treturn result;\n\t}\n\treturn _Pact;\n})();\n\n// Settles a pact synchronously\nexport function _settle(pact, state, value) {\n\tif (!pact.s) {\n\t\tif (value instanceof _Pact) {\n\t\t\tif (value.s) {\n\t\t\t\tif (state & 1) {\n\t\t\t\t\tstate = value.s;\n\t\t\t\t}\n\t\t\t\tvalue = value.v;\n\t\t\t} else {\n\t\t\t\tvalue.o = _settle.bind(null, pact, state);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (value && value.then) {\n\t\t\tvalue.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));\n\t\t\treturn;\n\t\t}\n\t\tpact.s = state;\n\t\tpact.v = value;\n\t\tconst observer = pact.o;\n\t\tif (observer) {\n\t\t\tobserver(pact);\n\t\t}\n\t}\n}\n\nexport function _isSettledPact(thenable) {\n\treturn thenable instanceof _Pact && thenable.s & 1;\n}\n\n// Converts argument to a function that always returns a Promise\nexport function _async(f) {\n\treturn function() {\n\t\tfor (var args = [], i = 0; i < arguments.length; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\t\ttry {\n\t\t\treturn Promise.resolve(f.apply(this, args));\n\t\t} catch(e) {\n\t\t\treturn Promise.reject(e);\n\t\t}\n\t}\n}\n\n// Awaits on a value that may or may not be a Promise (equivalent to the await keyword in ES2015, with continuations passed explicitly)\nexport function _await(value, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(value) : value;\n\t}\n\tif (!value || !value.then) {\n\t\tvalue = Promise.resolve(value);\n\t}\n\treturn then ? value.then(then) : value;\n}\n\n// Awaits on a value that may or may not be a Promise, then ignores it\nexport function _awaitIgnored(value, direct) {\n\tif (!direct) {\n\t\treturn value && value.then ? value.then(_empty) : Promise.resolve();\n\t}\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continue(value, then) {\n\treturn value && value.then ? value.then(then) : then(value);\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continueIgnored(value) {\n\tif (value && value.then) {\n\t\treturn value.then(_empty);\n\t}\n}\n\n// Asynchronously iterate through an object that has a length property, passing the index as the first argument to the callback (even as the length property changes)\nexport function _forTo(array, body, check) {\n\tvar i = -1, pact, reject;\n\tfunction _cycle(result) {\n\t\ttry {\n\t\t\twhile (++i < array.length && (!check || !check())) {\n\t\t\t\tresult = body(i);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pact) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t} else {\n\t\t\t\tpact = result;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t}\n\t}\n\t_cycle();\n\treturn pact;\n}\n\n// Asynchronously iterate through an object's properties (including properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forIn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tkeys.push(key);\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\n// Asynchronously iterate through an object's own properties (excluding properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forOwn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tif (Object.prototype.hasOwnProperty.call(target, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\nexport const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\"))) : \"@@iterator\";\n\n// Asynchronously iterate through an object's values\n// Uses for...of if the runtime supports it, otherwise iterates until length on a copy\nexport function _forOf(target, body, check) {\n\tif (typeof target[_iteratorSymbol] === \"function\") {\n\t\tvar iterator = target[_iteratorSymbol](), step, pact, reject;\n\t\tfunction _cycle(result) {\n\t\t\ttry {\n\t\t\t\twhile (!(step = iterator.next()).done && (!check || !check())) {\n\t\t\t\t\tresult = body(step.value);\n\t\t\t\t\tif (result && result.then) {\n\t\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pact) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t} else {\n\t\t\t\t\tpact = result;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t\t}\n\t\t}\n\t\t_cycle();\n\t\tif (iterator.return) {\n\t\t\tvar _fixup = function(value) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!step.done) {\n\t\t\t\t\t\titerator.return();\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (pact && pact.then) {\n\t\t\t\treturn pact.then(_fixup, function(e) {\n\t\t\t\t\tthrow _fixup(e);\n\t\t\t\t});\n\t\t\t}\n\t\t\t_fixup();\n\t\t}\n\t\treturn pact;\n\t}\n\t// No support for Symbol.iterator\n\tif (!(\"length\" in target)) {\n\t\tthrow new TypeError(\"Object is not iterable\");\n\t}\n\t// Handle live collections properly\n\tvar values = [];\n\tfor (var i = 0; i < target.length; i++) {\n\t\tvalues.push(target[i]);\n\t}\n\treturn _forTo(values, function(i) { return body(values[i]); }, check);\n}\n\nexport const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\"))) : \"@@asyncIterator\";\n\n// Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\nexport function _forAwaitOf(target, body, check) {\n\tif (typeof target[_asyncIteratorSymbol] === \"function\") {\n\t\tvar pact = new _Pact();\n\t\tvar iterator = target[_asyncIteratorSymbol]();\n\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\treturn pact;\n\t\tfunction _resumeAfterBody(result) {\n\t\t\tif (check && check()) {\n\t\t\t\treturn _settle(pact, 1, iterator.return ? iterator.return().then(function() { return result; }) : result);\n\t\t\t}\n\t\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\t}\n\t\tfunction _resumeAfterNext(step) {\n\t\t\tif (step.done) {\n\t\t\t\t_settle(pact, 1);\n\t\t\t} else {\n\t\t\t\tPromise.resolve(body(step.value)).then(_resumeAfterBody).then(void 0, _reject);\n\t\t\t}\n\t\t}\n\t\tfunction _reject(error) {\n\t\t\t_settle(pact, 2, iterator.return ? iterator.return().then(function() { return error; }) : error);\n\t\t}\n\t}\n\treturn Promise.resolve(_forOf(target, function(value) { return Promise.resolve(value).then(body); }, check));\n}\n\n// Asynchronously implement a generic for loop\nexport function _for(test, update, body) {\n\tvar stage;\n\tfor (;;) {\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t\tif (shouldContinue.then) {\n\t\t\tstage = 0;\n\t\t\tbreak;\n\t\t}\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.s;\n\t\t\t} else {\n\t\t\t\tstage = 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (update) {\n\t\t\tvar updateValue = update();\n\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\tstage = 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tvar pact = new _Pact();\n\tvar reject = _settle.bind(null, pact, 2);\n\t(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tdo {\n\t\t\tif (update) {\n\t\t\t\tupdateValue = update();\n\t\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\t\tupdateValue.then(_resumeAfterUpdate).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshouldContinue = test();\n\t\t\tif (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t}\n\t\t} while (!result || !result.then);\n\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterBody(result);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n\tfunction _resumeAfterUpdate() {\n\t\tif (shouldContinue = test()) {\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterTest(shouldContinue);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a do ... while loop\nexport function _do(body, test) {\n\tvar awaitBody;\n\tdo {\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t} else {\n\t\t\t\tawaitBody = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t} while (!shouldContinue.then);\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : shouldContinue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tfor (;;) {\n\t\t\tshouldContinue = test();\n\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t}\n\t\t\tif (!shouldContinue) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\tresult = result.v;\n\t\t\t\t} else {\n\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tdo {\n\t\t\t\tresult = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshouldContinue = test();\n\t\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t\t}\n\t\t\t\tif (!shouldContinue) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} while (!shouldContinue.then);\n\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a switch statement\nexport function _switch(discriminant, cases) {\n\tvar dispatchIndex = -1;\n\tvar awaitBody;\n\touter: {\n\t\tfor (var i = 0; i < cases.length; i++) {\n\t\t\tvar test = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvar testValue = test();\n\t\t\t\tif (testValue && testValue.then) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tif (testValue === discriminant) {\n\t\t\t\t\tdispatchIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Found the default case, set it as the pending dispatch case\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tif (dispatchIndex !== -1) {\n\t\t\tdo {\n\t\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\t\twhile (!body) {\n\t\t\t\t\tdispatchIndex++;\n\t\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t\t}\n\t\t\t\tvar result = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tawaitBody = true;\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\t\tdispatchIndex++;\n\t\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t\treturn result;\n\t\t}\n\t}\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterTest(value) {\n\t\tfor (;;) {\n\t\t\tif (value === discriminant) {\n\t\t\t\tdispatchIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (++i === cases.length) {\n\t\t\t\tif (dispatchIndex !== -1) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvalue = test();\n\t\t\t\tif (value && value.then) {\n\t\t\t\t\tvalue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tdo {\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tvar result = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tdispatchIndex++;\n\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterBody(result) {\n\t\tfor (;;) {\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tif (!fallthroughCheck || fallthroughCheck()) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdispatchIndex++;\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _call(body, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(body()) : body();\n\t}\n\ttry {\n\t\tvar result = Promise.resolve(body());\n\t\treturn then ? result.then(then) : result;\n\t} catch (e) {\n\t\treturn Promise.reject(e);\n\t}\n}\n\n// Asynchronously call a function and swallow the result\nexport function _callIgnored(body, direct) {\n\treturn _call(body, _empty, direct);\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _invoke(body, then) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(then);\n\t}\n\treturn then(result);\n}\n\n// Asynchronously call a function and swallow the result\nexport function _invokeIgnored(body) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(_empty);\n\t}\n}\n\n// Asynchronously call a function and send errors to recovery continuation\nexport function _catch(body, recover) {\n\ttry {\n\t\tvar result = body();\n\t} catch(e) {\n\t\treturn recover(e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(void 0, recover);\n\t}\n\treturn result;\n}\n\n// Asynchronously await a promise and pass the result to a finally continuation\nexport function _finallyRethrows(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer(true, e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n\t}\n\treturn finalizer(false, result);\n}\n\n// Asynchronously await a promise and invoke a finally continuation that always overrides the result\nexport function _finally(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer();\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer, finalizer);\n\t}\n\treturn finalizer();\n}\n\n// Rethrow or return a value from a finally continuation\nexport function _rethrow(thrown, value) {\n\tif (thrown)\n\t\tthrow value;\n\treturn value;\n}\n\n// Empty function to implement break and other control flow that ignores asynchronous results\nexport function _empty() {\n}\n\n// Sentinel value for early returns in generators \nexport const _earlyReturn = /*#__PURE__*/ {};\n\n// Asynchronously call a function and send errors to recovery continuation, skipping early returns\nexport function _catchInGenerator(body, recover) {\n\treturn _catch(body, function(e) {\n\t\tif (e === _earlyReturn) {\n\t\t\tthrow e;\n\t\t}\n\t\treturn recover(e);\n\t});\n}\n\n// Asynchronous generator class; accepts the entrypoint of the generator, to which it passes itself when the generator should start\nexport const _AsyncGenerator = /*#__PURE__*/(function() {\n\tfunction _AsyncGenerator(entry) {\n\t\tthis._entry = entry;\n\t\tthis._pact = null;\n\t\tthis._resolve = null;\n\t\tthis._return = null;\n\t\tthis._promise = null;\n\t}\n\n\tfunction _wrapReturnedValue(value) {\n\t\treturn { value: value, done: true };\n\t}\n\tfunction _wrapYieldedValue(value) {\n\t\treturn { value: value, done: false };\n\t}\n\n\t_AsyncGenerator.prototype._yield = function(value) {\n\t\t// Yield the value to the pending next call\n\t\tthis._resolve(value && value.then ? value.then(_wrapYieldedValue) : _wrapYieldedValue(value));\n\t\t// Return a pact for an upcoming next/return/throw call\n\t\treturn this._pact = new _Pact();\n\t};\n\t_AsyncGenerator.prototype.next = function(value) {\n\t\t// Advance the generator, starting it if it has yet to be started\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tconst _entry = _this._entry;\n\t\t\t\tif (_entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the next call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Start the generator\n\t\t\t\t_this._entry = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\tfunction returnValue(value) {\n\t\t\t\t\t_this._resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t_this._resolve = null;\n\t\t\t\t}\n\t\t\t\tvar result = _entry(_this);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tresult.then(returnValue, function(error) {\n\t\t\t\t\t\tif (error === _earlyReturn) {\n\t\t\t\t\t\t\treturnValue(_this._return);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst pact = new _Pact();\n\t\t\t\t\t\t\t_this._resolve(pact);\n\t\t\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t\t\t_this._resolve = null;\n\t\t\t\t\t\t\t_resolve(pact, 2, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturnValue(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Generator is started and a yield expression is pending, settle it\n\t\t\t\t_this._pact = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\t_settle(_pact, 1, value);\n\t\t\t}\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.return = function(value) {\n\t\t// Early return from the generator if started, otherwise abandons the generator\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the return call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return the specified value\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t}\n\t\t\t// Settle the yield expression with a rejected \"early return\" value\n\t\t\t_this._return = value;\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, _earlyReturn);\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.throw = function(error) {\n\t\t// Inject an exception into the pending yield expression\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve, reject) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the throw call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return a rejected Promise containing the error\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t\t// Settle the yield expression with the value as a rejection\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, error);\n\t\t});\n\t};\n\n\t_AsyncGenerator.prototype[_asyncIteratorSymbol] = function() {\n\t\treturn this;\n\t};\n\t\n\treturn _AsyncGenerator;\n})();\n","import Web3 from 'web3'\nimport NetworkInfo from '../models/NetworkInfo'\nimport networksData from '../data/networks.json'\nimport ProviderInfo, {\n EProvider,\n getProviderInfo,\n} from '../models/ProviderInfo'\nimport ConnectionStatus from '../models/Enums'\n\ndeclare global {\n interface Window {\n ethereum: any // FIXME: This should be properly typed as per metamask\n web3: Web3\n }\n}\n\nexport function getWeb3(\n provider: EProvider = EProvider.METAMASK,\n): Promise {\n return new Promise((resolve, reject) => {\n switch (provider) {\n // Injected Web3 wallet like MetaMask or Nifty\n case EProvider.NIFTY:\n case EProvider.METAMASK: {\n // New MetaMask\n if (window.ethereum) {\n const web3 = new Web3(window.ethereum)\n window.ethereum\n .enable()\n .then(() => resolve(web3))\n .catch(reject)\n } else if (window.web3) {\n // Older versions of MetaMask or other\n resolve(new Web3(window.web3.currentProvider))\n } else reject(new Error('No injected web3 found'))\n break\n }\n\n // Localhost\n case EProvider.LOCAL: {\n const localhostProvider = new Web3.providers.HttpProvider(\n \"'http://127.0.0.1:4444'\",\n )\n resolve(new Web3(localhostProvider))\n break\n }\n\n // Unknown & not implemented\n default: {\n reject(\n new Error(\n `Provider not implemented or unknown. Chosen provider ${provider}`,\n ),\n )\n break\n }\n }\n })\n}\n\nexport const getNetworkInfo = (\n networkId: number,\n chainId?: number,\n): NetworkInfo | undefined => networksData.find((n) => (chainId\n ? n.networkId === networkId && n.chainId === chainId\n : n.networkId === networkId)) as NetworkInfo\n\nexport const getNetworkInfoFromWeb3 = async (\n web3: Web3,\n): Promise => {\n // set networkId and chainId\n let networkId: number | undefined\n let chainId: number | undefined\n try {\n networkId = await web3.eth.net.getId()\n\n if (networkId) {\n chainId = await web3.eth.getChainId()\n }\n } catch (error) {}\n let networkInfo: NetworkInfo | undefined\n\n if (networkId) {\n try {\n networkInfo = getNetworkInfo(networkId, chainId)\n } catch (error) {}\n }\n return networkInfo\n}\n\nconst getWeb3Provider = (): any => {\n // New Metamask\n if (window.ethereum) return window.ethereum\n\n // Older versions of Metamask or other\n if (window.web3) return window.web3.currentProvider\n return undefined\n}\n\n/* eslint-disable complexity */\nexport const getAvailableProviders = (): ProviderInfo[] | undefined => {\n const result: ProviderInfo[] = []\n\n const currentProvider = getWeb3Provider()\n\n if (!currentProvider) return undefined\n\n if (currentProvider.isMetaMask) {\n // Nifty is also MetaMask\n result.push(\n currentProvider.isNiftyWallet\n ? getProviderInfo(EProvider.NIFTY)\n : getProviderInfo(EProvider.METAMASK),\n )\n }\n\n if (currentProvider.isTrust) result.push(getProviderInfo(EProvider.TRUST))\n\n if (currentProvider.isGoWallet) result.push(getProviderInfo(EProvider.GO_WALLET))\n\n if (currentProvider.isAlphaWallet) result.push(getProviderInfo(EProvider.ALPHA_WALLET))\n\n if (currentProvider.isStatus) result.push(getProviderInfo(EProvider.STATUS))\n\n if (currentProvider.isToshi) result.push(getProviderInfo(EProvider.COINBASE))\n\n // eslint-disable-next-line no-underscore-dangle\n if (typeof (window as any).__CIPHER__ !== 'undefined') result.push(getProviderInfo(EProvider.CIPHER))\n\n if (currentProvider.constructor.name === 'EthereumProvider') result.push(getProviderInfo(EProvider.MIST))\n\n if (currentProvider.constructor.name === 'Web3FrameProvider') result.push(getProviderInfo(EProvider.PARITY))\n\n if (currentProvider.host && currentProvider.host.indexOf('infura') !== -1) result.push(getProviderInfo(EProvider.INFURA))\n\n if (currentProvider.host && currentProvider.host.indexOf('localhost') !== -1) result.push(getProviderInfo(EProvider.LOCAL))\n\n return result\n}\n\nexport const getConnectionStatus = (\n web3?: Web3,\n requiredNetworkId?: number,\n currentNetworkId?: number,\n account?: string,\n): ConnectionStatus => {\n if (!web3) return ConnectionStatus.LoggedOut\n\n if (currentNetworkId !== requiredNetworkId) {\n return ConnectionStatus.WrongNetwork\n }\n\n if (account) {\n return ConnectionStatus.LoggedIn\n }\n return ConnectionStatus.WalletLocked\n}\n","import React, { FC, useState, useEffect } from 'react'\nimport Web3 from 'web3'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Popover from '@material-ui/core/Popover'\nimport Typography from '@material-ui/core/Typography'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport { shortenString } from '../../utils'\nimport { Button, NetworkIndicator } from '../atoms'\nimport { colors, fonts } from '../../theme'\nimport { AccountModal, WrongNetworkModal } from '../molecules'\nimport ConnectionStatus from '../../models/Enums'\nimport { getConnectionStatus } from '../../services/Web3Service'\nimport NetworkInfo from '../../models/NetworkInfo'\n\nexport interface AccountProps {\n requiredNetworkName: string\n setProvider?: (provider: EProvider) => Promise\n web3?: Web3\n networkInfo?: NetworkInfo\n account?: string\n availableProviders?: ProviderInfo[]\n requiredNetworkId?: number\n onCorrectNetworkMessage?: string\n onNetworkMismatchMessage?: string\n noNetworkMessage?: string\n modalInitiallyOpened?: boolean\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n accountText: {\n fontSize: fonts.size.tiny,\n textAlign: 'center',\n },\n button: {\n border: `1px solid ${colors.white}`,\n '&:hover': {\n border: `1px solid ${colors.transparent}`,\n },\n },\n networkIndicator: {\n marginRight: theme.spacing(1),\n },\n rightNetwork: {\n padding: theme.spacing(2),\n },\n}))\n\nconst Account: FC = (props) => {\n const {\n web3,\n networkInfo,\n account,\n setProvider,\n availableProviders,\n requiredNetworkId,\n onCorrectNetworkMessage,\n onNetworkMismatchMessage,\n noNetworkMessage,\n requiredNetworkName,\n modalInitiallyOpened = false,\n } = props\n const classes = useStyles()\n\n const [accountModalOpen, setAccountModalOpen] = useState(modalInitiallyOpened)\n const handleAccountModalClose = (): void => setAccountModalOpen(false)\n const handleAccountModalOpen = (): void => setAccountModalOpen(true)\n const [wrongNetModalOpen, setWrongNetModalOpen] = useState(false)\n const openWrongNetModal = (): void => setWrongNetModalOpen(true)\n const closeWrongNetModal = (): void => setWrongNetModalOpen(false)\n const connectionStatus: ConnectionStatus = getConnectionStatus(web3, requiredNetworkId, networkInfo?.networkId, account)\n\n // TODO: extract popover functionallity into new component\n const [anchorEl, setAnchorEl] = React.useState(null)\n\n const popoverOpen = Boolean(anchorEl)\n const id = popoverOpen ? 'right-net-popover' : undefined\n\n const handlePopoverClose = () => {\n setAnchorEl(null)\n }\n\n useEffect(() => {\n if (connectionStatus === ConnectionStatus.WrongNetwork) {\n openWrongNetModal()\n } else {\n closeWrongNetModal()\n handlePopoverClose()\n }\n }, [connectionStatus])\n\n const accountText = (): string => {\n if (connectionStatus === ConnectionStatus.LoggedOut) return 'Connect wallet'\n\n if (connectionStatus === ConnectionStatus.WrongNetwork) return 'Wrong Network'\n\n if (account) {\n // means connectionStatus === ConnectionStatus.LoggedIn\n return shortenString(account)\n }\n return 'Unlock your wallet'\n }\n\n const onAccountClicked = (event: React.MouseEvent): void | null => {\n if (connectionStatus === ConnectionStatus.WrongNetwork) return openWrongNetModal()\n\n if (connectionStatus === ConnectionStatus.LoggedOut) return handleAccountModalOpen()\n\n if (connectionStatus === ConnectionStatus.LoggedIn) return setAnchorEl(event.currentTarget)\n return null\n }\n\n return (\n \n \n {/* TODO: extract molecule */}\n \n \n {`You are successfully connected to ${networkInfo?.name}.`}\n \n \n \n \n \n )\n}\n\nexport default Account\n","import React, { FC } from 'react'\nimport {\n AppBar, Grid, ListItemIcon, Toolbar,\n} from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { NavLink } from 'react-router-dom'\nimport Typography from '@material-ui/core/Typography'\nimport { ActionHeaderItemProps, HeaderProps, NavItemProps } from './HeaderProps'\nimport { LogoNavbar } from '../../atoms'\nimport { colors, fonts, globalConstants } from '../../../theme'\nimport { removeEmptySpaces } from '../../../utils'\n\nconst useStyles = makeStyles((theme: Theme) => ({\n activeNavlink: {\n color: `${colors.white} !important`,\n fontWeight: fonts.weight.medium,\n },\n navLink: {\n alignItems: 'center',\n color: colors.white,\n display: 'flex',\n paddingLeft: theme.spacing(5),\n paddingRight: theme.spacing(5),\n textAlign: 'center',\n textDecoration: 'none',\n '&:hover': {\n color: colors.gray5,\n textDecoration: 'none',\n },\n },\n navLinkContainer: {\n display: 'flex',\n },\n root: {\n boxShadow: 'none',\n // this height needs to be equal to the marginTop of PageTemplate\n height: theme.spacing(globalConstants.headerHeight),\n },\n}))\n\nconst HeaderDesktop: FC = ({\n hreflogo, itemsStart, itemsEnd, login,\n}) => {\n const classes = useStyles()\n const Login = login\n\n return (\n \n \n \n \n \n \n \n \n \n {\n !!itemsStart?.length\n && itemsStart.map((navItem: NavItemProps) => (\n \n \n {navItem.title}\n \n \n ))\n }\n \n \n {\n !!itemsEnd?.length\n && itemsEnd.map(({ icon, ...rest }: ActionHeaderItemProps) => (\n \n {icon}\n \n ))\n }\n \n \n
\n \n
\n \n \n
\n
\n )\n}\n\nexport default HeaderDesktop\n","import React, { FC, useState } from 'react'\nimport {\n AppBar,\n Divider,\n Drawer, Toolbar,\n IconButton, List, ListItem,\n ListItemText, ListItemIcon, Grid,\n} from '@material-ui/core'\nimport { NavLink } from 'react-router-dom'\nimport MenuIcon from '@material-ui/icons/Menu'\nimport ChevronLeftIcon from '@material-ui/icons/ChevronLeft'\nimport { Theme, createStyles, makeStyles } from '@material-ui/core/styles'\nimport { ActionHeaderItemProps, HeaderProps, NavItemProps } from './HeaderProps'\nimport { colors, globalConstants } from '../../../theme'\nimport { LogoNavbar } from '../../atoms'\nimport { removeEmptySpaces } from '../../../utils'\n\nconst drawerWidth = 240\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n drawerHeader: {\n display: 'flex',\n alignItems: 'center',\n padding: theme.spacing(0, 1),\n // necessary for content to be below app bar\n ...theme.mixins.toolbar,\n justifyContent: 'flex-end',\n },\n drawerPaper: {\n width: drawerWidth,\n },\n mobileAppBar: {\n boxShadow: 'none',\n // this height needs to be equal to the marginTop of PageTemplate\n height: theme.spacing(globalConstants.headerHeight),\n transition: theme.transitions.create(['margin', 'width'], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n },\n mobileAppBarShift: {\n width: `calc(100% - ${drawerWidth}px)`,\n marginLeft: drawerWidth,\n transition: theme.transitions.create(['margin', 'width'], {\n easing: theme.transitions.easing.easeOut,\n duration: theme.transitions.duration.enteringScreen,\n }),\n },\n mobileNavLink: {\n alignItems: 'center',\n color: colors.gray4,\n display: 'flex',\n textDecoration: 'none',\n width: '100%',\n '&:hover': {\n color: colors.gray5,\n textDecoration: 'none',\n },\n },\n mobileNavLinkActive: {\n color: `${colors.primary} !important`,\n },\n}))\n\nconst HeaderMobile: FC = ({\n hreflogo, itemsStart, itemsEnd, login: Login,\n}) => {\n const classes = useStyles()\n const [open, setOpen] = useState(false)\n\n const toggleDrawer = (isOpen: boolean) => (\n event: React.KeyboardEvent | React.MouseEvent,\n ): void => {\n if (\n event.type === 'keydown'\n && ((event as React.KeyboardEvent).key === 'Tab'\n || (event as React.KeyboardEvent).key === 'Shift')\n ) {\n return\n }\n setOpen(isOpen)\n }\n\n return (\n \n \n \n {!open && (\n \n \n \n \n \n \n \n \n \n \n \n \n {\n !!itemsEnd?.length\n && itemsEnd.map(({ icon, ...rest }: ActionHeaderItemProps) => (\n \n {icon}\n \n ))\n }\n \n \n
\n \n
\n
\n \n )}\n
\n \n \n
\n \n \n \n
\n \n \n {\n !!itemsStart?.length\n && itemsStart.map((headerItem: NavItemProps) => (\n \n \n \n {headerItem.icon}\n \n \n \n \n ))\n }\n \n \n \n\n )\n}\n\nexport default HeaderMobile\n","import React, { FC } from 'react'\nimport Hidden from '@material-ui/core/Hidden'\nimport { HeaderProps } from './HeaderProps'\nimport HeaderDesktop from './HeaderDesktop'\nimport HeaderMobile from './HeaderMobile'\n\nconst Header: FC = (props) => (\n \n \n \n \n \n \n \n \n)\n\nexport default Header\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../../theme'\nimport { headerTongueImg } from '../../../assets/images'\n\nexport interface HeaderTongueProps {\n description: string\n titleLine1: string\n titleLine2: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n textContainer: {\n alignItems: 'center',\n backgroundColor: colors.primary,\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n },\n textContent: {\n color: colors.white,\n display: 'flex',\n flexDirection: 'column',\n textAlign: 'center',\n [theme.breakpoints.down('sm')]: {\n maxWidth: '90%',\n },\n [theme.breakpoints.up('md')]: {\n maxWidth: '65%',\n },\n [theme.breakpoints.up('xl')]: {\n maxWidth: '55%',\n },\n },\n titleContent: {\n marginBottom: theme.spacing(1),\n fontSize: theme.spacing(5),\n fontWeight: fonts.weight.regular,\n },\n tongueImg: {\n width: '100%',\n },\n}))\n\nconst HeaderTongue: FC = (\n { description, titleLine1, titleLine2 },\n) => {\n const classes = useStyles()\n\n return (\n \n
\n
\n \n {titleLine1}\n
\n {' '}\n {titleLine2}\n \n {description}\n
\n
\n \n
\n )\n}\n\nexport default HeaderTongue\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport FAQSection, { FAQSectionProps } from '../molecules/FAQSection'\nimport { colors } from '../../theme'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FAQPageTemplateProps {\n className?: string\n mainTitle: string\n questionsAndAnswers: FAQSectionProps[]\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n marginTop: theme.spacing(3),\n },\n container: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n [theme.breakpoints.up('md')]: {\n maxWidth: '80%',\n },\n },\n grayBackground: {\n backgroundColor: colors.gray1,\n },\n mainTitle: {\n fontSize: theme.typography.pxToRem(50),\n margin: theme.spacing(2, 0),\n },\n questionsSection: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n marginTop: theme.spacing(2),\n },\n}))\n\nconst FAQPageTemplate: FC = ({ className = '', mainTitle, questionsAndAnswers }) => {\n const classes = useStyles()\n return (\n
\n
\n {mainTitle}\n
\n {\n questionsAndAnswers.map((qAndA: FAQSectionProps, i) => (\n \n ))\n }\n
\n
\n
\n )\n}\n\nexport default FAQPageTemplate\n","import React, { FC, HTMLAttributes } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { globalConstants } from '../../theme'\n\nexport type PageTemplateProps = HTMLAttributes;\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n // as the header has fixed position, we need to match its height\n marginTop: theme.spacing(globalConstants.headerHeight),\n width: '100%',\n },\n}))\n\nconst PageTemplate: FC = ({ children, className = '', ...props }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default PageTemplate\n","import React, {\n Component, createContext, ReactNode,\n} from 'react'\nimport Web3 from 'web3'\nimport {\n getWeb3, getNetworkInfoFromWeb3, getAvailableProviders,\n} from '../services/Web3Service'\nimport NetworkInfo from '../models/NetworkInfo'\nimport ProviderInfo, { EProvider } from '../models/ProviderInfo'\n\nexport interface Web3ProviderProps {\n state: {\n provider?: EProvider\n web3?: Web3\n account?: string\n networkInfo?: NetworkInfo\n requiredNetworkId?: number\n }\n actions: {\n setProvider?: (\n provider: EProvider,\n onStateChanged?: (account?: string) => void\n ) => Promise\n onConnectedNetworkChange?: () => void\n onConnectedAccountChange?: () => void\n }\n requiredNetworkId?: number\n requiredChainId?: number\n availableProviders?: ProviderInfo[]\n}\n\nexport const defaultWeb3State: Web3ProviderState = {\n provider: undefined,\n web3: undefined,\n account: undefined,\n networkInfo: undefined,\n}\n\nexport const Web3Store = createContext({\n state: defaultWeb3State,\n actions: {\n setProvider: (): Promise => Promise.resolve(),\n onConnectedNetworkChange: (): any => 0,\n onConnectedAccountChange: (): any => 0,\n },\n requiredNetworkId: undefined,\n requiredChainId: undefined,\n})\n\ninterface Web3ProviderState {\n provider?: EProvider\n web3?: Web3\n account?: string\n networkInfo?: NetworkInfo\n}\n\nconst getAccountFromEthAccounts = (accounts: string[] | string): string | undefined => {\n let account: string\n\n if (Array.isArray(accounts)) [account] = accounts\n else account = accounts\n return account\n}\n\n/**\n * The provider will not read the account when a requiredNetworkId was provided\n * and it does not match the networkId of current networkInfo, same applies to\n * chainId. Nothing happens if the requiredNetworkId was not specified\n * @param requiredNetworkId given on the props of the provider\n * @param requiredChainId given on the props of the provider\n * @param networkInfo obtained from the wallet\n */\nconst shouldReadAccount = (\n requiredNetworkId?: number,\n requiredChainId?: number,\n networkInfo?: NetworkInfo,\n): boolean => {\n // the consumer did not provide enough information to validate the network, so we do not check\n if (!requiredNetworkId) return true\n\n if (requiredNetworkId === networkInfo?.networkId) {\n // only when chainId is provided we compare it\n if (requiredChainId) return requiredChainId === networkInfo?.chainId\n return true\n }\n return false\n}\n\nclass Web3Provider extends Component {\n private readonly requiredNetworkId?: number\n\n private readonly requiredChainId?: number\n\n private availableProviders?: ProviderInfo[]\n\n constructor(props: Web3ProviderProps) {\n super(props)\n this.state = defaultWeb3State\n this.requiredNetworkId = props.requiredNetworkId\n this.requiredChainId = props.requiredChainId\n this.onConnectedNetworkChange = props.actions.onConnectedNetworkChange\n this.onConnectedAccountChange = props.actions.onConnectedAccountChange\n this.setProvider = this.setProvider.bind(this)\n this.initialize()\n }\n\n private readonly onConnectedNetworkChange?: () => void\n\n private readonly onConnectedAccountChange?: () => void\n\n public async setProvider(provider: EProvider,\n onStateChanged?: (account?: string) => void): Promise {\n const web3 = await getWeb3(provider)\n const accounts = await web3.eth.getAccounts()\n const networkInfo = await getNetworkInfoFromWeb3(web3)\n // only validate requiredNetworkId and requiredChainId when are provided\n const shouldSetAccount = shouldReadAccount(this.requiredNetworkId, this.requiredChainId, networkInfo)\n\n const account = shouldSetAccount\n ? getAccountFromEthAccounts(accounts)\n : undefined\n\n this.setState(\n {\n web3,\n provider,\n account,\n networkInfo,\n },\n () => (onStateChanged && onStateChanged(account)),\n )\n }\n\n private initialize(): void {\n if (!window.ethereum) {\n return\n }\n this.availableProviders = getAvailableProviders()\n\n window.ethereum.autoRefreshOnNetworkChange = false\n // handle on networkChange\n window.ethereum.on('networkChanged', async (_netId) => {\n const { networkInfo } = this.state\n\n if (!networkInfo) return // wallet is not connected\n const { provider } = this.state\n const web3 = await getWeb3(provider)\n const accounts = await web3.eth.getAccounts()\n const newNetworkInfo = await getNetworkInfoFromWeb3(web3)\n\n // we do not want to set the account if we know it is the wrong network\n const shouldSetAccount = shouldReadAccount(\n this.requiredNetworkId,\n this.requiredChainId,\n newNetworkInfo,\n )\n const account = shouldSetAccount\n ? getAccountFromEthAccounts(accounts)\n : undefined\n\n this.setState(\n {\n networkInfo: newNetworkInfo,\n account,\n },\n () => this.onConnectedNetworkChange && this.onConnectedNetworkChange(),\n )\n })\n // handle on accountsChanged\n window.ethereum.on('accountsChanged', (accounts: string | string[]) => {\n const { networkInfo } = this.state\n\n if (!networkInfo) return // wallet is not connected\n // we only care about this change if it is on the right network\n // or if we can not validate the required network\n const shouldSetAccount = shouldReadAccount(\n this.requiredNetworkId, this.requiredChainId, networkInfo,\n )\n\n if (shouldSetAccount) {\n const account = getAccountFromEthAccounts(accounts)\n\n if (account) {\n this.setState({\n account,\n },\n () => this.onConnectedAccountChange\n && this.onConnectedAccountChange())\n }\n }\n })\n }\n\n public render(): ReactNode {\n const {\n provider,\n web3,\n account,\n networkInfo,\n } = this.state\n const {\n setProvider,\n onConnectedNetworkChange,\n onConnectedAccountChange,\n availableProviders,\n } = this\n\n const { children } = this.props\n\n return (\n \n {children}\n \n )\n }\n}\n\nexport default { Consumer: Web3Store.Consumer, Provider: Web3Provider }\n"],"names":["useStyles","makeStyles","block","width","noShadow","boxShadow","rounded","borderRadius","Button","className","shadow","children","rest","classes","React","MUIButton","trim","colors","black","primary","darkBlue","gray1","gray2","gray3","gray4","gray5","gray6","transparent","white","fonts","family","size","tiny","small","normal","medium","subtitleSmall","subtitleBig","weight","light","regular","bold","globalConstants","headerHeight","theme","createMuiTheme","palette","main","secondary","typography","fontFamily","button","textTransform","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","body1","fontWeight","props","overrides","MuiButton","root","MuiFormControlLabel","color","MuiSlider","rail","height","opacity","track","thumb","marginLeft","MuiTextField","createStyles","unCheckedIcon","checkedIcon","Checkbox","checked","isChecked","setIsChecked","useState","handleChange","event","newChecked","onChange","MUICheckbox","CheckBoxSharp","icon","CheckBoxOutlineBlankSharp","require","EProvider","getProviderInfo","eProvider","METAMASK","name","iconImg","metaMaskIconImg","NIFTY","niftyIconImg","LEDGER","TREZOR","TRUST","GO_WALLET","ALPHA_WALLET","STATUS","COINBASE","MIST","PARITY","INFURA","LOCAL","Error","padding","margin","content","display","alignItems","maxHeight","spacing","justifyContent","imageWrapper","marginRight","LoginOption","onClick","providerInfo","providerContent","src","alt","handleOnClick","window","open","variant","Tooltip","arrow","title","Logo","logoFullWhite","LogoNavbar","fontSize","pxToRem","selected","borderBottom","StyledNavTab","Tab","component","NavLink","disableRipple","defaultonCorrectNetworkMessage","deaulftonNetworkMismatchMessage","defaultNoNetworkMessage","NetworkStatus","getNetworkStatus","currentNetworkId","requiredNetworkId","NO_NETWORK","CORRECT_NETWORK","NETWORK_MISSMATCH","NetworkIndicator","iconClassName","onCorrectNetworkMessage","onNetworkMismatchMessage","noNetworkMessage","networkStatus","iconPerNetworkStatus","Map","set","WarningIcon","style","yellow","ErrorIcon","CheckCircleOutlineOutlinedIcon","green","get","paper","backgroundColor","background","border","shadows","left","minWidth","position","top","transform","Modal","MUIModal","ModalHeader","ModalTitle","Typography","borderTop","paddingTop","ModalFooter","ModalBody","overlay","zIndex","spinner","animation","WithSpinner","WrappedComponent","Spinner","isLoading","logoBlueIcon","heading","accordionSummary","Accordion","expanded","id","isExpanded","setIsExpanded","MUIAccordion","AccordionSummary","expandIcon","ExpandMoreIcon","AccordionDetails","AccountModal","setProvider","availableProviders","onClose","onProviderSet","Fragment","length","map","key","tooltipTitle","CopyTextTooltip","displayElement","fullText","isCopied","setIsCopied","tooltipContent","FileCopyIcon","interactive","navigator","clipboard","writeText","then","headingExpanded","headingCollapsed","panelDetails","answerContainer","breakpoints","up","maxWidth","answerText","FAQSection","initiallyExpanded","question","answer","RemoveIcon","AddIcon","LabeledCheckbox","labelText","labelClassName","FormControlLabel","label","control","FilterCheckboxCard","items","item","i","shortenString","str","largerThan","charsShownCount","substr","removeEmptySpaces","replace","maxSupportedNumber","minSupportedNumber","validatedNumber","num","flexDirection","footerLink","textDecoration","footerTitle","textAlign","FooterColumn","links","link","isExternal","href","to","toString","target","ModalDialogue","footer","input","paddingLeft","inputContainer","paddingRight","units","unitsContainer","alignSelf","UnitsInput","maxValue","minValue","value","step","handleOnBlur","handleOnChange","Grid","container","xs","Input","onBlur","type","fullWidth","inputProps","min","max","inputsContainer","toContainer","RangeSliderWithInputs","values","start","startValue","end","endValue","unit","handleStartInputChange","newStartValue","Number","handleEndInputChange","newEndValue","handleSliderChange","_","newSliderValue","handleStartValueBlur","handleEndValueBlur","getCommonInputValues","Slider","ShortenTextTooltip","maxLength","indicator","StyledTabs","Tabs","a11yProps","index","minHeight","overflow","tabContainer","tab","outlineStyle","tabIndicator","tabSelected","SwitchTabs","label1","label2","controlledValue","newValue","MUITabs","TabIndicatorProps","MUITab","TooltipIconButton","iconButtonProps","IconButton","boxContainer","marginTop","loaderContainer","WrongNetworkModal","currentNetworkName","requiredNetworkName","gutterBottom","align","Box","sm","CircularProgress","copyright","copyrightContent","footerContainer","paddingBottom","footerContent","linksColumn","marginBottom","logoColumn","tongue","borderTopLeftRadius","borderTopRightRadius","Footer","copyrightText","linksColumns","direction","md","lg","logoBlackAndBlue","linkColumn","ConnectionStatus","getWeb3","provider","Promise","resolve","reject","ethereum","web3","Web3","enable","catch","currentProvider","localhostProvider","providers","HttpProvider","getNetworkInfo","networkId","chainId","networksData","find","n","getNetworkInfoFromWeb3","networkInfo","error","eth","net","getId","getChainId","getWeb3Provider","undefined","getAvailableProviders","result","isMetaMask","push","isNiftyWallet","isTrust","isGoWallet","isAlphaWallet","isStatus","isToshi","__CIPHER__","CIPHER","constructor","host","indexOf","getConnectionStatus","account","LoggedOut","WrongNetwork","LoggedIn","WalletLocked","accountText","networkIndicator","rightNetwork","Account","modalInitiallyOpened","accountModalOpen","setAccountModalOpen","handleAccountModalClose","handleAccountModalOpen","wrongNetModalOpen","setWrongNetModalOpen","openWrongNetModal","closeWrongNetModal","connectionStatus","anchorEl","setAnchorEl","popoverOpen","Boolean","handlePopoverClose","useEffect","onAccountClicked","currentTarget","Popover","anchorOrigin","vertical","horizontal","transformOrigin","activeNavlink","navLink","navLinkContainer","HeaderDesktop","hreflogo","itemsStart","itemsEnd","login","Login","AppBar","Toolbar","justify","navItem","activeClassName","alignContent","ListItemIcon","drawerWidth","drawerHeader","mixins","toolbar","drawerPaper","mobileAppBar","transition","transitions","create","easing","sharp","duration","leavingScreen","mobileAppBarShift","easeOut","enteringScreen","mobileNavLink","mobileNavLinkActive","HeaderMobile","setOpen","toggleDrawer","isOpen","role","onKeyDown","MenuIcon","Drawer","anchor","ChevronLeftIcon","Divider","List","headerItem","ListItem","ListItemText","Header","Hidden","smDown","mdUp","textContainer","textContent","down","titleContent","tongueImg","HeaderTongue","description","titleLine1","titleLine2","headerTongueImg","grayBackground","mainTitle","questionsSection","FAQPageTemplate","questionsAndAnswers","qAndA","PageTemplate","defaultWeb3State","Web3Store","createContext","state","actions","onConnectedNetworkChange","onConnectedAccountChange","requiredChainId","getAccountFromEthAccounts","accounts","Array","isArray","shouldReadAccount","Web3Provider","Component","bind","initialize","onStateChanged","getAccounts","shouldSetAccount","setState","autoRefreshOnNetworkChange","on","_netId","newNetworkInfo","render","Provider","Consumer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,MAAMA,SAAS,GAAGC,iBAAU,CAAC,OAAO;AAClCC,EAAAA,KAAK,EAAE;AACLC,IAAAA,KAAK,EAAE;AADF,GAD2B;AAIlCC,EAAAA,QAAQ,EAAE;AACRC,IAAAA,SAAS,EAAE;AADH,GAJwB;AAOlCC,EAAAA,OAAO,EAAE;AACPC,IAAAA,YAAY,EAAE;AADP;AAPyB,CAAP,CAAD,CAA5B;;AAYA,MAAMC,MAAM,GAAoB,CAAC;AAC/BC,EAAAA,SAAS,GAAG,EADmB;AACfP,EAAAA,KADe;AACRQ,EAAAA,MADQ;AACAJ,EAAAA,OADA;AACSK,EAAAA,QADT;AACmB,KAAGC;AADtB,CAAD;AAG9B,QAAMC,OAAO,GAAGb,SAAS,EAAzB;AAEA,SACEc,4BAAA,CAACC,WAAD;AACEN,IAAAA,SAAS,KACJH,OAAO,GAAGO,OAAO,CAACP,OAAX,GAAqB;UAC7BI,MAAM,GAAG,EAAH,GAAQG,OAAO,CAACT;UACtBF,KAAK,GAAGW,OAAO,CAACX,KAAX,GAAmB,MAAMO,WAFhC,CAE4CO,IAF5C;KAIEJ,KANN,EAQGD,QARH,CADF;AAYD,CAjBD;;MCnBaM,MAAM,GAAG;AACpBC,EAAAA,KAAK,EAAE,SADa;AAEpBC,EAAAA,OAAO,EAAE,SAFW;AAGpBC,EAAAA,QAAQ,EAAE,SAHU;AAIpBC,EAAAA,KAAK,EAAE,SAJa;AAKpBC,EAAAA,KAAK,EAAE,SALa;AAMpBC,EAAAA,KAAK,EAAE,SANa;AAOpBC,EAAAA,KAAK,EAAE,SAPa;AAQpBC,EAAAA,KAAK,EAAE,SARa;AASpBC,EAAAA,KAAK,EAAE,SATa;AAUpBC,EAAAA,WAAW,EAAE,WAVO;AAWpBC,EAAAA,KAAK,EAAE;AAXa,CAAf;AAcP,MAAaC,KAAK,GAAG;AACnBC,EAAAA,MAAM,EAAE,OADW;AAEnBC,EAAAA,IAAI,EAAE;AACJC,IAAAA,IAAI,EAAE,EADF;AAEJC,IAAAA,KAAK,EAAE,EAFH;AAGJC,IAAAA,MAAM,EAAE,EAHJ;AAIJC,IAAAA,MAAM,EAAE,EAJJ;AAKJC,IAAAA,aAAa,EAAE,EALX;AAMJC,IAAAA,WAAW,EAAE;AANT,GAFa;AAUnBC,EAAAA,MAAM,EAAE;AACNC,IAAAA,KAAK,EAAE,GADD;AAENC,IAAAA,OAAO,EAAE,GAFH;AAGNL,IAAAA,MAAM,EAAE,GAHF;AAINM,IAAAA,IAAI,EAAE;AAJA;AAVW,CAAd;AAkBP,MAAaC,eAAe,GAAG;AAC7BC,EAAAA,YAAY,EAAE;AADe,CAAxB;AAIP,MAAMC,KAAK,GAAGC,qBAAc,CAAC;AAC3BC,EAAAA,OAAO,EAAE;AACP3B,IAAAA,OAAO,EAAE;AACP4B,MAAAA,IAAI,EAAE9B,MAAM,CAACE;AADN,KADF;AAIP6B,IAAAA,SAAS,EAAE;AACTD,MAAAA,IAAI,EAAE9B,MAAM,CAACO;AADJ;AAJJ,GADkB;AAS3ByB,EAAAA,UAAU,EAAE;AACVC,IAAAA,UAAU,EAAErB,KAAK,CAACC,MADR;AAEVqB,IAAAA,MAAM,EAAE;AACNC,MAAAA,aAAa,EAAE;AADT,KAFE;AAKVC,IAAAA,eAAe,EAAExB,KAAK,CAACS,MAAN,CAAaC,KALpB;AAMVe,IAAAA,iBAAiB,EAAEzB,KAAK,CAACS,MAAN,CAAaE,OANtB;AAOVe,IAAAA,gBAAgB,EAAE1B,KAAK,CAACS,MAAN,CAAaH,MAPrB;AAQVqB,IAAAA,cAAc,EAAE3B,KAAK,CAACS,MAAN,CAAaG,IARnB;AASVgB,IAAAA,KAAK,EAAE;AACLC,MAAAA,UAAU,EAAE7B,KAAK,CAACS,MAAN,CAAaC;AADpB;AATG,GATe;AAsB3BoB,EAAAA,KAAK,EAAE,EAtBoB;AAuB3BC,EAAAA,SAAS,EAAE;AACTC,IAAAA,SAAS,EAAE;AACTC,MAAAA,IAAI,EAAE;AACJJ,QAAAA,UAAU,EAAE7B,KAAK,CAACS,MAAN,CAAaC;AADrB;AADG,KADF;AAMTwB,IAAAA,mBAAmB,EAAE;AACnBD,MAAAA,IAAI,EAAE;AACJE,QAAAA,KAAK,EAAE/C,MAAM,CAACM;AADV;AADa,KANZ;AAWT0C,IAAAA,SAAS,EAAE;AACTC,MAAAA,IAAI,EAAE;AACJF,QAAAA,KAAK,EAAE/C,MAAM,CAACM,KADV;AAEJ4C,QAAAA,MAAM,EAAE,CAFJ;AAGJC,QAAAA,OAAO,EAAE;AAHL,OADG;AAMTN,MAAAA,IAAI,EAAE;AACJ3D,QAAAA,KAAK,EAAE,MADH;AAEJ6D,QAAAA,KAAK,EAAE/C,MAAM,CAACE,OAFV;AAGJgD,QAAAA,MAAM,EAAE;AAHJ,OANG;AAWTE,MAAAA,KAAK,EAAE;AACLF,QAAAA,MAAM,EAAE;AADH,OAXE;AAcTG,MAAAA,KAAK,EAAE;AACLC,QAAAA,UAAU,EAAE,CAAC,CADR;AAELJ,QAAAA,MAAM,EAAE,EAFH;AAGLhE,QAAAA,KAAK,EAAE;AAHF;AAdE,KAXF;AA+BTqE,IAAAA,YAAY,EAAE;AACZV,MAAAA,IAAI,EAAE;AACJE,QAAAA,KAAK,EAAE/C,MAAM,CAACM,KADV;AAEJ,mBAAW;AACTyC,UAAAA,KAAK,EAAE/C,MAAM,CAACK;AADL;AAFP;AADM;AA/BL;AAvBgB,CAAD,CAA5B;;AC3BA,MAAMtB,WAAS,GAAGC,eAAU,CAAC,MAAMwE,iBAAY,CAAC;AAC9CC,EAAAA,aAAa,EAAE;AACbV,IAAAA,KAAK,EAAE/C,MAAM,CAACO;AADD,GAD+B;AAI9CmD,EAAAA,WAAW,EAAE;AACXX,IAAAA,KAAK,EAAE/C,MAAM,CAACE;AADH;AAJiC,CAAD,CAAnB,CAA5B;;AASA,MAAMyD,QAAQ,GAAuBjB,KAAD;AAClC,QAAM9C,OAAO,GAAGb,WAAS,EAAzB;AACA,QAAM;AAAE6E,IAAAA;AAAF,MAAclB,KAApB;AACA,QAAM,CAACmB,SAAD,EAAYC,YAAZ,IAA4BC,cAAQ,CAAC,CAAC,CAACH,OAAH,CAA1C;;AAEA,QAAMI,YAAY,GAAG,CAACC,KAAD,EACnBC,UADmB;AAEnBJ,IAAAA,YAAY,CAACI,UAAD,CAAZ;AACA,UAAM;AAAEC,MAAAA;AAAF,QAAezB,KAArB;AAEA,QAAIyB,QAAJ,EAAcA,QAAQ,CAACF,KAAD,EAAQC,UAAR,CAAR;AACf,GAND;;AAQA,SACErE,4BAAA,CAACuE,aAAD;AACEV,IAAAA,WAAW,EACT7D,4BAAA,CAACwE,mBAAD;AAAe7E,MAAAA,SAAS,EAAEI,OAAO,CAAC8D;KAAlC;AAEFY,IAAAA,IAAI,EACFzE,4BAAA,CAAC0E,+BAAD;AAA2B/E,MAAAA,SAAS,EAAEI,OAAO,CAAC6D;KAA9C;KAEEf;AACJkB,IAAAA,OAAO,EAAEC;AACTM,IAAAA,QAAQ,EAAEH;IATZ,CADF;AAaD,CA1BD;;;;;;;;;;;;;;ACpBA,mBAAeQ,OAAO,CAAC,sBAAD,CAAtB;;ACAA,aAAeA,OAAO,CAAC,uBAAD,CAAtB;;ACAA,aAAeA,OAAO,CAAC,uBAAD,CAAtB;;ACAA,aAAeA,OAAO,CAAC,uBAAD,CAAtB;;ACAA,aAAeA,OAAO,CAAC,uBAAD,CAAtB;;ACAA,aAAeA,OAAO,CAAC,uBAAD,CAAtB;;ACAA,aAAeA,OAAO,CAAC,uBAAD,CAAtB;;;;;;;;;;;;ACOA,IAAYC,SAAZ;;AAAA,WAAYA;AACVA,EAAAA,qBAAA,aAAA;AACAA,EAAAA,kBAAA,UAAA;AACAA,EAAAA,mBAAA,WAAA;AACAA,EAAAA,mBAAA,WAAA;AACAA,EAAAA,kBAAA,UAAA;AACAA,EAAAA,kBAAA,cAAA;AACAA,EAAAA,sBAAA,aAAA;AACAA,EAAAA,yBAAA,gBAAA;AACAA,EAAAA,mBAAA,WAAA;AACAA,EAAAA,mBAAA,WAAA;AACAA,EAAAA,qBAAA,aAAA;AACAA,EAAAA,iBAAA,SAAA;AACAA,EAAAA,mBAAA,WAAA;AACAA,EAAAA,mBAAA,WAAA;AACD,CAfD,EAAYA,SAAS,KAATA,SAAS,KAAA,CAArB;;AAiBA,AAAO,MAAMC,eAAe,GAAIC,SAAD;AAC7B,UAAQA,SAAR;AACE,SAAKF,SAAS,CAACG,QAAf;AACE,aAAO;AACLC,QAAAA,IAAI,EAAE,UADD;AAELF,QAAAA,SAFK;AAGLG,QAAAA,OAAO,EAAEC;AAHJ,OAAP;;AAKF,SAAKN,SAAS,CAACO,KAAf;AACE,aAAO;AACLH,QAAAA,IAAI,EAAE,OADD;AAELF,QAAAA,SAFK;AAGLG,QAAAA,OAAO,EAAEG;AAHJ,OAAP;;AAKF,SAAKR,SAAS,CAACS,MAAf;AACE,aAAO;AACLL,QAAAA,IAAI,EAAE,QADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACU,MAAf;AACE,aAAO;AACLN,QAAAA,IAAI,EAAE,QADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACW,KAAf;AACE,aAAO;AACLP,QAAAA,IAAI,EAAE,OADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACY,SAAf;AACE,aAAO;AACLR,QAAAA,IAAI,EAAE,WADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACa,YAAf;AACE,aAAO;AACLT,QAAAA,IAAI,EAAE,cADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACc,MAAf;AACE,aAAO;AACLV,QAAAA,IAAI,EAAE,QADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACe,QAAf;AACE,aAAO;AACLX,QAAAA,IAAI,EAAE,UADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACgB,IAAf;AACE,aAAO;AACLZ,QAAAA,IAAI,EAAE,MADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACiB,MAAf;AACE,aAAO;AACLb,QAAAA,IAAI,EAAE,QADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACkB,MAAf;AACE,aAAO;AACLd,QAAAA,IAAI,EAAE,QADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACmB,KAAf;AACE,aAAO;AACLf,QAAAA,IAAI,EAAE,WADD;AAELF,QAAAA;AAFK,OAAP;;AAIF;AAAS;AACP,cAAM,IAAIkB,KAAJ,0DACqDlB,WADrD,CAAN;AAGD;AAxEH;AA0ED,CA3EM;;ACbP,MAAM5F,WAAS,GAAGC,eAAU,CAAE2C,KAAD,KAAmB;AAC9CkB,EAAAA,IAAI,EAAE;AACJiD,IAAAA,OAAO,EAAE,CADL;AAEJC,IAAAA,MAAM,EAAE,CAFJ;AAGJ7G,IAAAA,KAAK,EAAE;AAHH,GADwC;AAM9C8G,EAAAA,OAAO,EAAE;AACPC,IAAAA,OAAO,EAAE,MADF;AAEPC,IAAAA,UAAU,EAAE,QAFL;AAGPhH,IAAAA,KAAK,EAAE,MAHA;AAIPiH,IAAAA,SAAS,EAAExE,KAAK,CAACyE,OAAN,CAAc,CAAd,CAJJ;AAKPC,IAAAA,cAAc,EAAE;AALT,GANqC;AAa9CC,EAAAA,YAAY,EAAE;AACZH,IAAAA,SAAS,EAAExE,KAAK,CAACyE,OAAN,CAAc,CAAd,CADC;AAEZG,IAAAA,WAAW,EAAE5E,KAAK,CAACyE,OAAN,CAAc,CAAd;AAFD;AAbgC,CAAnB,CAAD,CAA5B;;AAuBA,MAAMI,WAAW,GAAyB,CAAC;AACzChH,EAAAA,SAAS,GAAG,EAD6B;AAEzCiH,EAAAA,OAFyC;AAGzCC,EAAAA,YAHyC;AAIzC,KAAG/G;AAJsC,CAAD;AAMxC,QAAMC,OAAO,GAAGb,WAAS,EAAzB;AAEA,QAAM4H,eAAe,GACnB9G,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACoG;GAAxB,EAEI,CAAAU,YAAY,SAAZ,IAAAA,YAAY,WAAZ,YAAAA,YAAY,CAAE5B,OAAd,KAEEjF,4BAAA,MAAA;AACEL,IAAAA,SAAS,EAAEI,OAAO,CAAC0G;AACnBM,IAAAA,GAAG,EAAEF,YAAF,aAAEA,YAAF,uBAAEA,YAAY,CAAE5B;AACnB+B,IAAAA,GAAG,KAAKH,YAAH,aAAGA,YAAH,uBAAGA,YAAY,CAAE7B;GAHxB,CAJN,EAWG6B,YAXH,aAWGA,YAXH,uBAWGA,YAAY,CAAE7B,IAXjB,CADF;;AAgBA,QAAMiC,aAAa,GAAG;AACpB,QAAIL,OAAJ,EAAa;AACX,aAAOA,OAAO,EAAd;AACD;;AACD,WAAOM,MAAM,CAACC,IAAP,CAAY,gEAAZ,EAA8E,QAA9E,CAAP;AACD,GALD;;AAOA,SACEnH,4BAAA,CAACN,MAAD;AACEC,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD;AAC9BP,IAAAA,KAAK;AACLI,IAAAA,OAAO;AACP4H,IAAAA,OAAO,EAAC;AACRlE,IAAAA,KAAK,EAAC;AACN0D,IAAAA,OAAO,EAAEK;KACLnH,KAPN,EAUG,CAAC,CAAC+G,YAAF,IAAkBA,YAAY,CAAC/B,SAAb,KAA2BF,SAAS,CAACO,KAAvD,IAECnF,4BAAA,CAACqH,YAAD;AAASC,IAAAA,KAAK;AAACC,IAAAA,KAAK,EAAC;GAArB,EACGT,eADH,CAZJ,EAgBG,CAAC,CAACD,YAAF,IAAkBA,YAAY,CAAC/B,SAAb,KAA2BF,SAAS,CAACO,KAAvD,IACI2B,eAjBP,EAkBG,CAACD,YAAD,IAEC7G,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACoG;GAAxB,EACEnG,4BAAA,MAAA;AACEL,IAAAA,SAAS,EAAEI,OAAO,CAAC0G;AACnBM,IAAAA,GAAG,EAAE3B;AACL4B,IAAAA,GAAG,EAAC;GAHN,CADF,wBAAA,CApBJ,CADF;AAgCD,CA/DD;;AChCA,MAAMQ,IAAI,GAAkD,CAC1D;AAAER,EAAAA,GAAG,GAAG,aAAR;AAAuB,KAAGlH;AAA1B,CAD0D,KAEvDE,4BAAA,MAAA;AAAK+G,EAAAA,GAAG,EAAEU;AAAeT,EAAAA,GAAG,EAAEA;GAASlH,KAAvC,CAFL;;ACMA,MAAM4H,UAAU,GAAkB,CAAC;AAAEV,EAAAA,GAAG,GAAG,aAAR;AAAuB3D,EAAAA,MAAM,GAAG,MAAhC;AAAwC,KAAGvD;AAA3C,CAAD,KAChCE,4BAAA,MAAA;AACE+G,EAAAA,GAAG,EAAEU;AACLT,EAAAA,GAAG,EAAEA;AACL3D,EAAAA,MAAM,EAAEA;GACJvD,KAJN,CADF;;ACGA,MAAMZ,WAAS,GAAGC,iBAAU,CAAE2C,KAAD,KAAmB;AAC9CkB,EAAAA,IAAI,EAAE;AACJV,IAAAA,aAAa,EAAE,MADX;AAEJY,IAAAA,KAAK,EAAE/C,MAAM,CAACQ,KAFV;AAGJiC,IAAAA,UAAU,EAAEd,KAAK,CAACK,UAAN,CAAiBK,iBAHzB;AAIJmF,IAAAA,QAAQ,EAAE7F,KAAK,CAACK,UAAN,CAAiByF,OAAjB,CAAyB,EAAzB,CAJN;AAKJlB,IAAAA,WAAW,EAAE5E,KAAK,CAACyE,OAAN,CAAc,CAAd,CALT;AAMJ,eAAW;AACTjD,MAAAA,OAAO,EAAE;AADA;AANP,GADwC;AAW9CuE,EAAAA,QAAQ,EAAE;AACRjF,IAAAA,UAAU,EAAEd,KAAK,CAACK,UAAN,CAAiBM,gBADrB;AAERqF,IAAAA,YAAY,EAAE;AAFN;AAXoC,CAAnB,CAAD,CAA5B;;AAiBA,MAAMC,YAAY,GAA2BlF,KAAD;AAC1C,QAAM9C,OAAO,GAAGb,WAAS,EAAzB;AACA,SAAOc,4BAAA,CAACgI,GAAD;AAAKjI,IAAAA,OAAO,EAAEA;AAASkI,IAAAA,SAAS,EAAEC;AAASC,IAAAA,aAAa;KAAKtF,MAA7D,CAAP;AACD,CAHD;;ACbA,MAAMuF,8BAA8B,GAAG,8BAAvC;AACA,MAAMC,+BAA+B,GAAG,8BAAxC;AACA,MAAMC,uBAAuB,GAAG,sCAAhC;AAEA,AAAA,IAAYC,aAAZ;;AAAA,WAAYA;AACVA,EAAAA,8CAAA,eAAA;AACAA,EAAAA,qDAAA,sBAAA;AACAA,EAAAA,mDAAA,oBAAA;AACD,CAJD,EAAYA,aAAa,KAAbA,aAAa,KAAA,CAAzB;;AAMA,MAAMC,gBAAgB,GAAG,CAACC,gBAAD,EAAmBC,iBAAnB;AACvB,MAAI,CAACD,gBAAL,EAAuB,OAAOF,aAAa,CAACI,UAArB;AAEvB,MAAIF,gBAAgB,KAAKC,iBAAzB,EAA4C,OAAOH,aAAa,CAACK,eAArB;AAC5C,SAAOL,aAAa,CAACM,iBAArB;AACD,CALD;;AAOA,MAAMC,gBAAgB,GAA8B,CAAC;AACnDC,EAAAA,aAAa,GAAG,EADmC;AAEnDN,EAAAA,gBAFmD;AAEjCC,EAAAA,iBAFiC;AAEdM,EAAAA,uBAFc;AAGnDC,EAAAA,wBAHmD;AAGzBC,EAAAA;AAHyB,CAAD;AAKlD,QAAMC,aAAa,GAAGX,gBAAgB,CAACC,gBAAD,EAAmBC,iBAAnB,CAAtC;AAEA,QAAMU,oBAAoB,GAAG,IAAIC,GAAJ,EAA7B;AACAD,EAAAA,oBAAoB,CAACE,GAArB,CAAyBf,aAAa,CAACI,UAAvC,EACE3I,4BAAA,CAACqH,OAAD;AAASE,IAAAA,KAAK,EAAE2B,gBAAgB,IAAIZ;GAApC,EACEtI,4BAAA,CAACuJ,WAAD;AAAa5J,IAAAA,SAAS,EAAEoJ;AAAeS,IAAAA,KAAK,EAAE;AAAEtG,MAAAA,KAAK,EAAEuG,eAAM,CAAC,GAAD;AAAf;GAA9C,CADF,CADF;AAKAL,EAAAA,oBAAoB,CAACE,GAArB,CAAyBf,aAAa,CAACM,iBAAvC,EACE7I,4BAAA,CAACqH,OAAD;AAASE,IAAAA,KAAK,EAAE0B,wBAAwB,IAAIZ;GAA5C,EACErI,4BAAA,CAAC0J,SAAD;AAAW/J,IAAAA,SAAS,EAAEoJ;AAAe7F,IAAAA,KAAK,EAAC;GAA3C,CADF,CADF;AAKAkG,EAAAA,oBAAoB,CAACE,GAArB,CAAyBf,aAAa,CAACK,eAAvC,EACE5I,4BAAA,CAACqH,OAAD;AAASE,IAAAA,KAAK,EAAEyB,uBAAuB,IAAIZ;GAA3C,EACEpI,4BAAA,CAAC2J,8BAAD;AACEhK,IAAAA,SAAS,EAAEoJ;AACXS,IAAAA,KAAK,EAAE;AAAEtG,MAAAA,KAAK,EAAE0G,cAAK,CAAC,GAAD;AAAd;GAFT,CADF,CADF;AASA,SACER,oBAAoB,CAACS,GAArB,CAAyBV,aAAzB,CADF;AAGD,CA9BD;;AC1BA,MAAMjK,WAAS,GAAGC,iBAAU,CAAE2C,KAAD,KAAmB;AAC9CgI,EAAAA,KAAK,EAAE;AACLC,IAAAA,eAAe,EAAEjI,KAAK,CAACE,OAAN,CAAcgI,UAAd,CAAyBF,KADrC;AAELG,IAAAA,MAAM,eAAe9J,MAAM,CAACE,SAFvB;AAGLd,IAAAA,SAAS,EAAEuC,KAAK,CAACoI,OAAN,CAAc,CAAd,CAHN;AAILC,IAAAA,IAAI,EAAE,KAJD;AAKLC,IAAAA,QAAQ,EAAE,GALL;AAMLnE,IAAAA,OAAO,EAAEnE,KAAK,CAACyE,OAAN,CAAc,CAAd,EAAiB,CAAjB,EAAoB,CAApB,CANJ;AAOL8D,IAAAA,QAAQ,EAAE,UAPL;AAQLC,IAAAA,GAAG,EAAE,KARA;AASLC,IAAAA,SAAS,EAAE;AATN;AADuC,CAAnB,CAAD,CAA5B;;AAcA,MAAMC,KAAK,GAAmB,CAAC;AAAE3K,EAAAA,QAAF;AAAY,KAAGC;AAAf,CAAD;AAC5B,QAAMC,OAAO,GAAGb,WAAS,EAAzB;AAEA,SACEc,4BAAA,CAACyK,UAAD,oBAAc3K,KAAd,EACEE,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAAC+J;GAAxB,EACGjK,QADH,CADF,CADF;AAOD,CAVD;;ACbA,MAAMX,WAAS,GAAGC,iBAAU,CAAC,OAAO;AAClC6D,EAAAA,IAAI,EAAE;AACJ8E,IAAAA,YAAY,eAAe3H,MAAM,CAACK,OAD9B;AAEJ0C,IAAAA,KAAK,EAAE/C,MAAM,CAACE,OAFV;AAGJ+F,IAAAA,OAAO,EAAE,MAHL;AAIJI,IAAAA,cAAc,EAAE,QAJZ;AAKJnH,IAAAA,KAAK,EAAE;AALH;AAD4B,CAAP,CAAD,CAA5B;;AAUA,MAAMqL,WAAW,GAAyB,CAAC;AAAE7K,EAAAA,QAAF;AAAYF,EAAAA,SAAS,GAAG;AAAxB,CAAD;AACxC,QAAMI,OAAO,GAAGb,WAAS,EAAzB;AAEA,SACEc,4BAAA,MAAA;AAAKL,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD,WAAnB,CAA+BO,IAA/B;GAAhB,EACGL,QADH,CADF;AAKD,CARD;;ACXA,MAAM8K,UAAU,GAAwB,CAAC;AAAE9K,EAAAA,QAAF;AAAY,KAAGC;AAAf,CAAD,KACtCE,4BAAA,CAAC4K,UAAD;AAAYxD,EAAAA,OAAO,EAAC;GAAStH,KAA7B,EACGD,QADH,CADF;;ACCA,MAAMX,WAAS,GAAGC,iBAAU,CAAE2C,KAAD,KAAmB;AAC9CkB,EAAAA,IAAI,EAAE;AACJ6H,IAAAA,SAAS,eAAe1K,MAAM,CAACK,OAD3B;AAEJ4F,IAAAA,OAAO,EAAE,MAFL;AAGJI,IAAAA,cAAc,EAAE,QAHZ;AAIJsE,IAAAA,UAAU,EAAEhJ,KAAK,CAACyE,OAAN,CAAc,CAAd,CAJR;AAKJlH,IAAAA,KAAK,EAAE;AALH;AADwC,CAAnB,CAAD,CAA5B;;AAUA,MAAM0L,WAAW,GAAyB,CAAC;AAAElL,EAAAA,QAAF;AAAYF,EAAAA,SAAS,GAAG;AAAxB,CAAD;AACxC,QAAMI,OAAO,GAAGb,WAAS,EAAzB;AAEA,SACEc,4BAAA,MAAA;AAAKL,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD,WAAnB,CAA+BO,IAA/B;GAAhB,EACGL,QADH,CADF;AAKD,CARD;;ACXA,MAAMX,WAAS,GAAGC,iBAAU,CAAE2C,KAAD,KAAmB;AAC9CkB,EAAAA,IAAI,EAAE;AACJiD,IAAAA,OAAO,EAAEnE,KAAK,CAACyE,OAAN,CAAc,CAAd,EAAiB,CAAjB,CADL;AAEJlH,IAAAA,KAAK,EAAE;AAFH;AADwC,CAAnB,CAAD,CAA5B;;AAOA,MAAM2L,SAAS,GAAuB,CAAC;AAAEnL,EAAAA,QAAF;AAAYF,EAAAA,SAAS,GAAG;AAAxB,CAAD;AACpC,QAAMI,OAAO,GAAGb,WAAS,EAAzB;AAEA,SACEc,4BAAA,MAAA;AAAKL,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD,WAAnB,CAA+BO,IAA/B;GAAhB,EACGL,QADH,CADF;AAKD,CARD;;ACVA,MAAMX,WAAS,GAAGC,iBAAU,CAAC,OAAO;AAClC,qBAAmB;AACjB,UAAM;AAAEoL,MAAAA,SAAS,EAAE;AAAb,KADW;AAEjB,YAAQ;AAAEA,MAAAA,SAAS,EAAE;AAAb;AAFS,GADe;AAKlCvH,EAAAA,IAAI,EAAE;AACJqH,IAAAA,QAAQ,EAAE;AADN,GAL4B;AAQlCY,EAAAA,OAAO,EAAE;AACPZ,IAAAA,QAAQ,EAAE,UADH;AAEPa,IAAAA,MAAM,EAAE,CAFD;AAGP7H,IAAAA,MAAM,EAAE,MAHD;AAIPhE,IAAAA,KAAK,EAAE,MAJA;AAKP+G,IAAAA,OAAO,EAAE,MALF;AAMPI,IAAAA,cAAc,EAAE,QANT;AAOPH,IAAAA,UAAU,EAAE,QAPL;AAQP2D,IAAAA,UAAU,EAAE;AARL,GARyB;AAkBlCmB,EAAAA,OAAO,EAAE;AACP/E,IAAAA,OAAO,EAAE,cADF;AAEP8E,IAAAA,MAAM,EAAE,CAFD;AAGP7L,IAAAA,KAAK,EAAE,MAHA;AAIPgE,IAAAA,MAAM,EAAE,MAJD;AAKP4G,IAAAA,MAAM,EAAE,MALD;AAMPmB,IAAAA,SAAS,EAAE;AANJ;AAlByB,CAAP,CAAD,CAA5B;;AA4BA,MAAMC,WAAW,GAAIC,gBAAD;AAClB,QAAMC,OAAO,GAAG,CAAC;AAAEC,IAAAA,SAAF;AAAa,OAAG3I;AAAhB,GAAD;AACd,UAAM9C,OAAO,GAAGb,WAAS,EAAzB;AAEA,WACEc,4BAAA,MAAA;AAAKL,MAAAA,SAAS,EAAEI,OAAO,CAACiD;KAAxB,EAEIwI,SAAS,IAEPxL,4BAAA,MAAA;AAAKL,MAAAA,SAAS,EAAEI,OAAO,CAACkL;KAAxB,EACEjL,4BAAA,MAAA;AAAKL,MAAAA,SAAS,EAAEI,OAAO,CAACoL;AAASpE,MAAAA,GAAG,EAAE0E;AAAczE,MAAAA,GAAG,EAAC;KAAxD,CADF,CAJN,EASEhH,4BAAA,CAACsL,gBAAD,oBAAsBzI,MAAtB,CATF,CADF;AAaD,GAhBD;;AAiBA,SAAO0I,OAAP;AACD,CAnBD;;AClBA,MAAMrM,WAAS,GAAGC,iBAAU,CAAE2C,KAAD,IAAkB6B,mBAAY,CAAC;AAC1DX,EAAAA,IAAI,EAAE;AACJzD,IAAAA,SAAS,EAAE,MADP;AAEJ2D,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KAFV;AAGJrB,IAAAA,KAAK,EAAE;AAHH,GADoD;AAM1DqM,EAAAA,OAAO,EAAE;AACPxI,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KADP;AAEPiH,IAAAA,QAAQ,EAAE7F,KAAK,CAACK,UAAN,CAAiByF,OAAjB,CAAyB,EAAzB,CAFH;AAGPhF,IAAAA,UAAU,EAAEd,KAAK,CAACK,UAAN,CAAiBK,iBAHtB;AAIPnD,IAAAA,KAAK,EAAE;AAJA,GANiD;AAY1DsM,EAAAA,gBAAgB,EAAE;AAChB7D,IAAAA,YAAY,eAAe3H,MAAM,CAACK;AADlB;AAZwC,CAAD,CAA/B,CAA5B;;AAiBA,MAAMoL,SAAS,GAAuB,CAAC;AACrC/L,EAAAA,QADqC;AAC3BgM,EAAAA,QAD2B;AACjBC,EAAAA,EADiB;AACbvE,EAAAA;AADa,CAAD;AAGpC,QAAMxH,OAAO,GAAGb,WAAS,EAAzB;AACA,QAAM,CAAC6M,UAAD,EAAaC,aAAb,IAA8B9H,cAAQ,CAAU,CAAC,CAAC2H,QAAZ,CAA5C;;AAEA,QAAMvH,QAAQ,GAAG,MAAY0H,aAAa,CAAC,CAACD,UAAF,CAA1C;;AAEA,SACE/L,4BAAA,CAACiM,cAAD;AACEtM,IAAAA,SAAS,EAAEI,OAAO,CAACiD;AACnB6I,IAAAA,QAAQ,EAAEE;AACVzH,IAAAA,QAAQ,EAAEA;GAHZ,EAKEtE,4BAAA,CAACkM,gBAAD;AACEvM,IAAAA,SAAS,EAAEI,OAAO,CAAC4L;AACnBQ,IAAAA,UAAU,EAAEnM,4BAAA,CAACoM,cAAD,MAAA;8BACYN;AACxBA,IAAAA,EAAE,EAAEA;GAJN,EAME9L,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,EAAEI,OAAO,CAAC2L;GAA/B,EAAyCnE,KAAzC,CANF,CALF,EAaEvH,4BAAA,CAACqM,gBAAD,MAAA,EACGxM,QADH,CAbF,CADF;AAmBD,CA3BD;;ACZA,MAAMyM,YAAY,GAA0B,CAAC;AAC3CC,EAAAA,WAD2C;AAE3CC,EAAAA,kBAF2C;AAG3CrF,EAAAA,IAH2C;AAI3CsF,EAAAA,OAJ2C;AAK3CC,EAAAA;AAL2C,CAAD,KAO1C1M,4BAAA,CAACwK,KAAD;AACErD,EAAAA,IAAI,EAAEA;AACNsF,EAAAA,OAAO,EAAEA;qBACO;sBACC;CAJnB,EAMEzM,4BAAA,CAACA,cAAK,CAAC2M,QAAP,MAAA,EACE3M,4BAAA,CAAC0K,WAAD,MAAA,EACE1K,4BAAA,CAAC2K,UAAD,MAAA,mCAAA,CADF,CADF,EAIE3K,4BAAA,CAACgL,SAAD,MAAA,EAEMwB,kBAAkB,IAAIA,kBAAkB,CAACI,MAAzC,IAAmDJ,kBAAkB,CAACK,GAAnB,CAChDhG,YAAD,IACE7G,4BAAA,CAAC2G,WAAD;AACEE,EAAAA,YAAY,EAAEA;AACdiG,EAAAA,GAAG,EAAEjG,YAAY,CAAC/B;AAClB8B,EAAAA,OAAO;AAAA;;AACL,YAAI2F,WAAJ,yBAAuBA,WAAW,CAAC1F,YAAY,CAAC/B,SAAd,EAAyB4H,aAAzB,CAAlC;;;;AACD,KAFM;AAAA;AAAA;AAAA;CAHT,CAF+C,CAFzD,EAcG,CAACF,kBAAD,IAIKxM,4BAAA,CAAC2G,WAAD,MAAA,CAlBR,CAJF,EAyBE3G,4BAAA,CAAC+K,WAAD,MAAA,EACE/K,4BAAA,CAACN,MAAD;AACE0H,EAAAA,OAAO,EAAC;AACRlE,EAAAA,KAAK,EAAC;AACN9D,EAAAA,KAAK;AACLwH,EAAAA,OAAO,EAAE6F;CAJX,SAAA,CADF,CAzBF,CANF,CAPF;;ACRA,MAAMvN,WAAS,GAAGC,iBAAU,CAAC,OAAO;AAClC4N,EAAAA,YAAY,EAAE;AACZ3G,IAAAA,OAAO,EAAE,MADG;AAEZC,IAAAA,UAAU,EAAE;AAFA;AADoB,CAAP,CAAD,CAA5B;;AAOA,MAAM2G,eAAe,GAA6B,CAAC;AAAEC,EAAAA,cAAF;AAAkBC,EAAAA;AAAlB,CAAD;AAChD,QAAM,CAACC,QAAD,EAAWC,WAAX,IAA0BlJ,cAAQ,CAAC,KAAD,CAAxC;AAEA,QAAMnE,OAAO,GAAGb,WAAS,EAAzB;AAEA,QAAMmO,cAAc,GAClBrN,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACgN;GAAxB,EACE/M,4BAAA,CAACsN,YAAD,MAAA,CADF,EAEEtN,4BAAA,CAAC4K,UAAD;AAAYxD,IAAAA,OAAO,EAAC;GAApB,EACG8F,QADH,CAFF,CADF;AASA,SACElN,4BAAA,CAACqH,OAAD;AACEkG,IAAAA,WAAW;AACXhG,IAAAA,KAAK,EAAE4F,QAAQ,GAAGnN,4BAAA,CAAC4K,UAAD;AAAYxD,MAAAA,OAAO,EAAC;KAApB,WAAA,CAAH,GAAsDiG;AACrEzG,IAAAA,OAAO,EAAE;AACP4G,MAAAA,SAAS,CAACC,SAAV,CAAoBC,SAApB,CAA8BR,QAA9B,EACGS,IADH,CACQ;AAAQP,QAAAA,WAAW,CAAC,IAAD,CAAX;AAAmB,OADnC;AAED;AACDX,IAAAA,OAAO,EAAE;AACPW,MAAAA,WAAW,CAAC,KAAD,CAAX;AACD;GATH,EAWGH,cAXH,CADF;AAeD,CA7BD;;ACDA,MAAM/N,WAAS,GAAGC,iBAAU,CAAE2C,KAAD,KAAmB;AAC9CkB,EAAAA,IAAI,EAAE;AACJzD,IAAAA,SAAS,EAAE,MADP;AAEJ2D,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KAFV;AAGJrB,IAAAA,KAAK,EAAE;AAHH,GADwC;AAM9CqM,EAAAA,OAAO,EAAE;AACPtF,IAAAA,OAAO,EAAE,MADF;AAEPI,IAAAA,cAAc,EAAE,QAFT;AAGPtD,IAAAA,KAAK,EAAE/C,MAAM,CAACQ,KAHP;AAIPgH,IAAAA,QAAQ,EAAE5G,KAAK,CAACE,IAAN,CAAWK,aAJd;AAKPjC,IAAAA,KAAK,EAAE;AALA,GANqC;AAa9CuO,EAAAA,eAAe,EAAE;AACf1K,IAAAA,KAAK,EAAE/C,MAAM,CAACE;AADC,GAb6B;AAgB9CwN,EAAAA,gBAAgB,EAAE;AAChBjL,IAAAA,UAAU,EAAE7B,KAAK,CAACS,MAAN,CAAaE;AADT,GAhB4B;AAmB9CoM,EAAAA,YAAY,EAAE;AACZ1H,IAAAA,OAAO,EAAE,MADG;AAEZI,IAAAA,cAAc,EAAE;AAFJ,GAnBgC;AAuB9CuH,EAAAA,eAAe,EAAE;AACf,KAACjM,KAAK,CAACkM,WAAN,CAAkBC,EAAlB,CAAqB,IAArB,CAAD,GAA8B;AAC5BC,MAAAA,QAAQ,EAAE;AADkB;AADf,GAvB6B;AA4B9CC,EAAAA,UAAU,EAAE;AACVjL,IAAAA,KAAK,EAAE/C,MAAM,CAACQ;AADJ;AA5BkC,CAAnB,CAAD,CAA5B;;AAiCA,MAAMyN,UAAU,GAAwB,CAAC;AACvCzO,EAAAA,SAAS,GAAG,EAD2B;AACvB0O,EAAAA,iBADuB;AACJC,EAAAA,QADI;AACMC,EAAAA;AADN,CAAD;AAGtC,QAAMxO,OAAO,GAAGb,WAAS,EAAzB;AACA,QAAM,CAAC6M,UAAD,EAAaC,aAAb,IAA8B9H,cAAQ,CAAC,CAAC,CAACmK,iBAAH,CAA5C;;AAEA,QAAM/J,QAAQ,GAAG,MAAY0H,aAAa,CAAC,CAACD,UAAF,CAA1C;;AAEA,SACE/L,4BAAA,CAAC4L,WAAD;AAAWjM,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD,WAAnB,CAA+BO,IAA/B;AAAuC2L,IAAAA,QAAQ,EAAEE;AAAYzH,IAAAA,QAAQ,EAAEA;GAA7F,EACEtE,4BAAA,CAACkM,gBAAD;AACEC,IAAAA,UAAU,EAAEJ,UAAU,GAAG/L,4BAAA,CAACwO,UAAD,MAAA,CAAH,GAAoBxO,4BAAA,CAACyO,OAAD,MAAA;GAD5C,EAGEzO,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,KAAKI,OAAO,CAAC2L,WAAWK,UAAU,GAAGhM,OAAO,CAAC6N,eAAX,GAA6B7N,OAAO,CAAC8N,kBAArE,CAAwF3N,IAAxF;GAAvB,EAAwHoO,QAAxH,CAHF,CADF,EAMEtO,4BAAA,CAACqM,gBAAD;AAAkB1M,IAAAA,SAAS,EAAEI,OAAO,CAAC+N;GAArC,EACE9N,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACgO;GAAxB,EACE/N,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,EAAEI,OAAO,CAACoO;GAA/B,EAA4CI,MAA5C,CADF,CADF,CANF,CADF;AAcD,CAtBD;;ACvCA,MAAMrP,WAAS,GAAGC,iBAAU,CAAC,OAAO;AAClC6D,EAAAA,IAAI,EAAE;AACJE,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KADV;AAEJrB,IAAAA,KAAK,EAAE;AAFH;AAD4B,CAAP,CAAD,CAA5B;;AAOA,MAAMqP,eAAe,GAA6B,CAAC;AAAEC,EAAAA,SAAF;AAAaC,EAAAA,cAAc,GAAG,EAA9B;AAAkC,KAAG9O;AAArC,CAAD;AAChD,QAAMC,OAAO,GAAGb,WAAS,EAAzB;AACA,SACEc,4BAAA,CAAC6O,qBAAD;AACElP,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQ4L,cAAc,CAAC1O,IAAf;AAC9B4O,IAAAA,KAAK,EAAEH;AACPI,IAAAA,OAAO,EACL/O,4BAAA,CAAC8D,QAAD,oBAAchE,KAAd;GAJJ,CADF;AAUD,CAZD;;ACTA,MAAMkP,kBAAkB,GAAgC,CAAC;AAAErP,EAAAA,SAAS,GAAG,EAAd;AAAkBiH,EAAAA,OAAlB;AAA2BqI,EAAAA;AAA3B,CAAD,KACtDjP,4BAAA,MAAA;AAAKL,EAAAA,SAAS,EAAEA;CAAhB,EACGsP,KAAK,CAACpC,GAAN,CAAU,CAACqC,IAAD,EAA6BC,CAA7B,KACTnP,4BAAA,CAAC0O,eAAD;AACE9H,EAAAA,OAAO,EAAEA;AACTkG,EAAAA,GAAG,qBAAqBoC,IAAI,CAACpD,IAAxB,uBAAmDqD,KAAKxP,WAAxB,CAAoCO,IAApC;AACrC0O,EAAAA,cAAc,EAAEM,IAAI,CAACN;GACjBM,KAJN,CADD,CADH,CADF;;ICTME,aAAa,GAAG,SAAhBA,aAAgB,CACpBC,GADoB,EAEpBC,UAFoB,EAGpBC,eAHoB;AAAA,MAEpBD,UAFoB;AAEpBA,IAAAA,UAFoB,GAEP,EAFO;AAAA;;AAAA,MAGpBC,eAHoB;AAGpBA,IAAAA,eAHoB,GAGF,CAHE;AAAA;;AAAA,SAIRF,GAAG,CAACzC,MAAJ,GAAa0C,UAAb,GACPD,GAAG,CAACG,MAAJ,CAAW,CAAX,EAAcD,eAAd,CADO,WAC6BF,GAAG,CAACG,MAAJ,CAAWH,GAAG,CAACzC,MAAJ,GAAa,CAAxB,CAD7B,GAEVyC,GANkB;AAAA,CAAtB;;AAQA,IAAMI,iBAAiB,GAAG,SAApBA,iBAAoB,CAACJ,GAAD;AAAA,SAAyBA,GAAG,CAACK,OAAJ,CAAY,KAAZ,EAAmB,EAAnB,CAAzB;AAAA,CAA1B;;AAEA,IAAMC,kBAAkB,GAAG,cAA3B;AACA,IAAMC,kBAAkB,GAAG,QAA3B;;AAEA,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,CAACC,GAAD;AACtB,MAAIA,GAAG,GAAG,CAAV,EAAa;AACX,QAAIA,GAAG,GAAGH,kBAAV,EAA8B,OAAOA,kBAAP;AAE9B,QAAIG,GAAG,GAAGF,kBAAV,EAA8B,OAAOA,kBAAP;AAC/B;;AAED,MAAIE,GAAG,GAAG,CAAV,EAAa;AACX,QAAIA,GAAG,GAAG,CAACH,kBAAX,EAA+B,OAAO,CAACA,kBAAR;AAE/B,QAAIG,GAAG,GAAG,CAACF,kBAAX,EAA+B,OAAO,CAACA,kBAAR;AAChC;;AACD,SAAOE,GAAP;AACD,CAbD;;ACKA,MAAM5Q,WAAS,GAAGC,iBAAU,CAAC,OAAO;AAClC6D,EAAAA,IAAI,EAAE;AACJqD,IAAAA,UAAU,EAAE,QADR;AAEJD,IAAAA,OAAO,EAAE,MAFL;AAGJ2J,IAAAA,aAAa,EAAE;AAHX,GAD4B;AAMlCC,EAAAA,UAAU,EAAE;AACV9M,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KADJ;AAEVkC,IAAAA,UAAU,EAAE7B,KAAK,CAACS,MAAN,CAAaC,KAFf;AAGVwO,IAAAA,cAAc,EAAE,MAHN;AAIV,eAAW;AACTrN,MAAAA,UAAU,EAAE7B,KAAK,CAACS,MAAN,CAAaE;AADhB;AAJD,GANsB;AAclCwO,EAAAA,WAAW,EAAE;AACXvI,IAAAA,QAAQ,EAAE5G,KAAK,CAACE,IAAN,CAAWM,WADV;AAEX4O,IAAAA,SAAS,EAAE;AAFA;AAdqB,CAAP,CAAD,CAA5B;;AAoBA,MAAMC,YAAY,GAA0B,CAAC;AAAE7I,EAAAA,KAAF;AAAS8I,EAAAA,KAAT;AAAgB1Q,EAAAA,SAAS,GAAG;AAA5B,CAAD;AAC1C,QAAMI,OAAO,GAAGb,WAAS,EAAzB;AAEA,SACEc,4BAAA,MAAA;AAAKL,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD,WAAnB,CAA+BO,IAA/B;GAAhB,EACEF,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,EAAEI,OAAO,CAACmQ;AAAa9I,IAAAA,OAAO,EAAC;AAAYlE,IAAAA,KAAK,EAAC;GAAtE,EAAiFqE,KAAjF,CADF,EAGI8I,KAAK,CAACxD,GAAN,CAAWyD,IAAD;AACR,UAAMxD,GAAG,GAAG2C,iBAAiB,CAACa,IAAI,CAAC/I,KAAN,CAA7B;;AAEA,QAAI+I,IAAI,CAACC,UAAT,EAAqB;AACnB,YAAMC,IAAI,GAAG,CAACF,IAAI,CAACG,EAAL,IAAW,GAAZ,EAAiBC,QAAjB,EAAb;AACA,aACE1Q,4BAAA,IAAA;AACEL,QAAAA,SAAS,EAAEI,OAAO,CAACiQ;AACnBW,QAAAA,MAAM,EAAEL,IAAI,CAACK;AACbzN,QAAAA,KAAK,EAAC;AACN4J,QAAAA,GAAG,EAAEA;AACL0D,QAAAA,IAAI,EAAEA;OALR,EAOGF,IAAI,CAAC/I,KAPR,CADF;AAWD;;AACD,WACEvH,4BAAA,CAACkI,sBAAD;AACEvI,MAAAA,SAAS,EAAEI,OAAO,CAACiQ;AACnBW,MAAAA,MAAM,EAAEL,IAAI,CAACK;AACbzN,MAAAA,KAAK,EAAC;AACN4J,MAAAA,GAAG,EAAEA;AACL2D,MAAAA,EAAE,EAAEH,IAAI,CAACG;KALX,EAOGH,IAAI,CAAC/I,KAPR,CADF;AAWD,GA5BD,CAHJ,CADF;AAoCD,CAvCD;;ACvBA,MAAMqJ,aAAa,GAA2B,CAAC;AAC7CrJ,EAAAA,KAD6C;AAE7CsJ,EAAAA,MAF6C;AAG7ChR,EAAAA,QAH6C;AAI7C,KAAGgD;AAJ0C,CAAD,KAM5C7C,4BAAA,CAACwK,KAAD,oBAAW3H,MAAX,EACE7C,4BAAA,CAACA,cAAK,CAAC2M,QAAP,MAAA,EACE3M,4BAAA,CAAC0K,WAAD,MAAA,EACE1K,4BAAA,CAAC2K,UAAD,MAAA,EAAapD,KAAb,CADF,CADF,EAIEvH,4BAAA,CAACgL,SAAD,MAAA,EAAYnL,QAAZ,CAJF,EAKEG,4BAAA,CAAC+K,WAAD,MAAA,EAAc8F,MAAd,CALF,CADF,CANF;;ACCA,MAAM3R,WAAS,GAAGC,iBAAU,CAAE2C,KAAD,KAAmB;AAC9CkB,EAAAA,IAAI,EAAE;AACJE,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KADV;AAEJ0F,IAAAA,OAAO,EAAE;AAFL,GADwC;AAK9C0K,EAAAA,KAAK,EAAE;AACL5N,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KADT;AAELqQ,IAAAA,WAAW,EAAEjP,KAAK,CAACyE,OAAN,CAAc,GAAd,CAFR;AAGL4J,IAAAA,SAAS,EAAE,QAHN;AAIL,iBAAa;AACXrI,MAAAA,YAAY,eAAe3H,MAAM,CAACO;AADvB;AAJR,GALuC;AAa9CsQ,EAAAA,cAAc,EAAE;AACdC,IAAAA,YAAY,EAAE;AADA,GAb8B;AAgB9CC,EAAAA,KAAK,EAAE;AACLhO,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KADT;AAEL0F,IAAAA,OAAO,EAAE,MAFJ;AAGLuB,IAAAA,QAAQ,EAAE5G,KAAK,CAACE,IAAN,CAAWC;AAHhB,GAhBuC;AAqB9CiQ,EAAAA,cAAc,EAAE;AACdC,IAAAA,SAAS,EAAE,QADG;AAEdlO,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KAFA;AAGd0F,IAAAA,OAAO,EAAE,MAHK;AAIduB,IAAAA,QAAQ,EAAE5G,KAAK,CAACE,IAAN,CAAWG,MAJP;AAKd2P,IAAAA,WAAW,EAAE;AALC;AArB8B,CAAnB,CAAD,CAA5B;;AA8BA,MAAMM,UAAU,GAAwB,CAAC;AACvCC,EAAAA,QADuC;AAEvCC,EAAAA,QAFuC;AAGvCL,EAAAA,KAHuC;AAIvCM,EAAAA,KAJuC;AAKvCC,EAAAA,IAAI,GAAG,CALgC;AAMvCC,EAAAA,YANuC;AAOvCC,EAAAA,cAPuC;AAQvC,KAAG7R;AARoC,CAAD;AAUtC,QAAMC,OAAO,GAAGb,WAAS,EAAzB;AAEA,SACEc,4BAAA,CAACA,cAAK,CAAC2M,QAAP,MAAA,EACE3M,4BAAA,CAAC4R,IAAD;AAAMjS,IAAAA,SAAS,EAAEI,OAAO,CAACiD;AAAM6O,IAAAA,SAAS;AAACtL,IAAAA,OAAO,EAAE;GAAlD,EACEvG,4BAAA,CAAC4R,IAAD;AAAMjS,IAAAA,SAAS,EAAEI,OAAO,CAACiR;AAAgB9B,IAAAA,IAAI;AAAC4C,IAAAA,EAAE,EAAE;GAAlD,EACE9R,4BAAA,CAAC+R,KAAD;AACEpS,IAAAA,SAAS,EAAEI,OAAO,CAAC+Q;AACnB/Q,IAAAA,OAAO,EAAE;AAAE+Q,MAAAA,KAAK,EAAE/Q,OAAO,CAAC+Q;AAAjB;AACTU,IAAAA,KAAK,EAAEA;AACPlN,IAAAA,QAAQ,EAAEqN;AACVK,IAAAA,MAAM,EAAEN;AACRO,IAAAA,IAAI,EAAC;AACLC,IAAAA,SAAS;AACTC,IAAAA,UAAU,EAAE;AACVV,MAAAA,IADU;AAEVW,MAAAA,GAAG,EAAEb,QAFK;AAGVc,MAAAA,GAAG,EAAEf,QAHK;AAIV,yBAAmB;AAJT;KAMRxR,KAdN,CADF,CADF,EAmBEE,4BAAA,CAAC4R,IAAD;AAAM1C,IAAAA,IAAI;AAAC4C,IAAAA,EAAE,EAAE;AAAGnS,IAAAA,SAAS,EAAEI,OAAO,CAACoR;GAArC,EACEnR,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,EAAEI,OAAO,CAACmR;GAA/B,EACGA,KADH,CADF,CAnBF,CADF,CADF;AA6BD,CAzCD;;AC5BA,MAAMhS,WAAS,GAAGC,iBAAU,CAAC,OAAO;AAClC6D,EAAAA,IAAI,EAAE;AACJ3D,IAAAA,KAAK,EAAE;AADH,GAD4B;AAIlCiT,EAAAA,eAAe,EAAE;AACflB,IAAAA,SAAS,EAAE,QADI;AAEfhL,IAAAA,OAAO,EAAE,MAFM;AAGfI,IAAAA,cAAc,EAAE,eAHD;AAIfnH,IAAAA,KAAK,EAAE;AAJQ,GAJiB;AAUlCkT,EAAAA,WAAW,EAAE;AACXnB,IAAAA,SAAS,EAAE,QADA;AAEXhL,IAAAA,OAAO,EAAE,MAFE;AAGXI,IAAAA,cAAc,EAAE,QAHL;AAIXnH,IAAAA,KAAK,EAAE,MAJI;AAKXuD,IAAAA,UAAU,EAAE7B,KAAK,CAACS,MAAN,CAAaE;AALd;AAVqB,CAAP,CAAD,CAA5B;;AAmBA,MAAM8Q,qBAAqB,GAAmC,CAAC;AAC7DC,EAAAA,MAAM,EAAE;AACNC,IAAAA,KAAK,EAAEC,UADD;AACaC,IAAAA,GAAG,EAAEC;AADlB,GADqD;AAG1DC,EAAAA,IAH0D;AAGpD3O,EAAAA,YAHoD;AAGtCxE,EAAAA,SAHsC;AAG3B,KAAGG;AAHwB,CAAD;AAK5D,QAAMC,OAAO,GAAGb,WAAS,EAAzB;AAEA,QAAMoS,QAAQ,GAAGxR,IAAI,CAACuS,GAAL,IAAYQ,QAA7B;AACA,QAAMtB,QAAQ,GAAGzR,IAAI,CAACsS,GAAL,IAAYO,UAA7B;AACA,QAAMlB,IAAI,GAAG3R,IAAI,CAAC2R,IAAL,IAAa,CAA1B;;AAEA,QAAMsB,sBAAsB,GAC1B3O,KAD6B;AAG7B,UAAM4O,aAAa,GAAGnD,eAAe,CAACoD,MAAM,CAAC7O,KAAK,CAACuM,MAAN,CAAaa,KAAd,CAAP,CAAf,IAA+CD,QAArE;AACApN,IAAAA,YAAY,CAAC;AAAEiO,MAAAA,GAAG,EAAEY,aAAP;AAAsBX,MAAAA,GAAG,EAAEQ;AAA3B,KAAD,CAAZ;AACD,GALD;;AAOA,QAAMK,oBAAoB,GACxB9O,KAD2B;AAG3B,UAAM+O,WAAW,GAAGtD,eAAe,CAACoD,MAAM,CAAC7O,KAAK,CAACuM,MAAN,CAAaa,KAAd,CAAP,CAAf,IAA+CqB,QAAnE;AACA1O,IAAAA,YAAY,CAAC;AAAEiO,MAAAA,GAAG,EAAEO,UAAP;AAAmBN,MAAAA,GAAG,EAAEc;AAAxB,KAAD,CAAZ;AACD,GALD;;AAOA,QAAMC,kBAAkB,GAAG,CACzBC,CADyB,EACCC,cADD;AAGzBnP,IAAAA,YAAY,CAAC;AAAEiO,MAAAA,GAAG,EAAEkB,cAAc,CAAC,CAAD,CAArB;AAA0BjB,MAAAA,GAAG,EAAEiB,cAAc,CAAC,CAAD;AAA7C,KAAD,CAAZ;AACD,GAJD;;AAMA,QAAMC,oBAAoB,GAAG;AAC3B,QAAIZ,UAAU,GAAGpB,QAAjB,EAA2B;AACzBpN,MAAAA,YAAY,CAAC;AAAEiO,QAAAA,GAAG,EAAEb,QAAP;AAAiBc,QAAAA,GAAG,EAAEQ;AAAtB,OAAD,CAAZ;AACD,KAFD,MAEO,IAAIF,UAAU,GAAGE,QAAjB,EAA2B;AAChC1O,MAAAA,YAAY,CAAC;AAAEiO,QAAAA,GAAG,EAAES,QAAP;AAAiBR,QAAAA,GAAG,EAAEQ;AAAtB,OAAD,CAAZ;AACD;AACF,GAND;;AAQA,QAAMW,kBAAkB,GAAG;AACzB,QAAIX,QAAQ,GAAGF,UAAf,EAA2B;AACzBxO,MAAAA,YAAY,CAAC;AAAEiO,QAAAA,GAAG,EAAEb,QAAP;AAAiBc,QAAAA,GAAG,EAAEM;AAAtB,OAAD,CAAZ;AACD,KAFD,MAEO,IAAIE,QAAQ,GAAGvB,QAAf,EAAyB;AAC9BnN,MAAAA,YAAY,CAAC;AAAEiO,QAAAA,GAAG,EAAEb,QAAP;AAAiBc,QAAAA,GAAG,EAAEf;AAAtB,OAAD,CAAZ;AACD;AACF,GAND;;AAQA,QAAMmC,oBAAoB,GAAG,OAAW;AACtCnC,IAAAA,QADsC;AAEtCC,IAAAA,QAFsC;AAGtCE,IAAAA,IAHsC;AAItCP,IAAAA,KAAK,EAAE4B;AAJ+B,GAAX,CAA7B;;AAOA,SACE9S,4BAAA,MAAA;AAAKL,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD,WAAnB,CAA+BO,IAA/B;GAAhB,EACEF,4BAAA,CAAC0T,MAAD;AACElC,IAAAA,KAAK,EAAE,CAACmB,UAAD,EAAaE,QAAb;KACH/S;AACJwE,IAAAA,QAAQ,EAAE8O;IAHZ,CADF,EAMEpT,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACuS;GAAxB,EACEtS,4BAAA,CAACqR,UAAD;AACEK,IAAAA,YAAY,EAAE6B;AACd5B,IAAAA,cAAc,EAAEoB;KACZU,oBAAoB;AACxBjC,IAAAA,KAAK,EAAEmB;IAJT,CADF,EAOE3S,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,EAAEI,OAAO,CAACwS;GAA/B,MAAA,CAPF,EAUEvS,4BAAA,CAACqR,UAAD;AACEK,IAAAA,YAAY,EAAE8B;AACd7B,IAAAA,cAAc,EAAEuB;KACZO,oBAAoB;AACxBjC,IAAAA,KAAK,EAAEqB;IAJT,CAVF,CANF,CADF;AA0BD,CAhFD;;AC1BA,MAAMc,kBAAkB,GAAgC,CAAC;AAAEnC,EAAAA,KAAF;AAASoC,EAAAA,SAAS,GAAG,EAArB;AAAyBrE,EAAAA;AAAzB,CAAD,KACtDvP,4BAAA,CAACA,cAAK,CAAC2M,QAAP,MAAA,EAEI6E,KAAK,CAAC5E,MAAN,GAAegH,SAAf,IAEE5T,4BAAA,CAACgN,eAAD;AACEC,EAAAA,cAAc,EAAEjN,4BAAA,CAAC4K,UAAD;AAAYxD,IAAAA,OAAO,EAAC;GAApB,EAA6BgI,aAAa,CAACoC,KAAD,EAAQoC,SAAR,EAAmBrE,eAAe,IAAIqE,SAAS,GAAG,CAAlD,CAA1C;AAChB1G,EAAAA,QAAQ,EAAEsE;CAFZ,CAJN,EAWIA,KAAK,CAAC5E,MAAN,IAAgBgH,SAAhB,IACGpC,KAZP,CADF;;ACDA,MAAMtS,WAAS,GAAGC,iBAAU,CAAC;AAC3B0U,EAAAA,SAAS,EAAE;AACTzN,IAAAA,OAAO,EAAE,MADA;AAETI,IAAAA,cAAc,EAAE,QAFP;AAGTuD,IAAAA,eAAe,EAAE;AAHR,GADgB;AAM3B/G,EAAAA,IAAI,EAAE;AACJ8E,IAAAA,YAAY,eAAe3H,MAAM,CAACM;AAD9B;AANqB,CAAD,CAA5B;;AAWA,MAAMqT,UAAU,GAAmBjR,KAAD;AAChC,QAAM;AAAEhD,IAAAA;AAAF,MAAegD,KAArB;AACA,QAAM9C,OAAO,GAAGb,WAAS,EAAzB;AACA,SACEc,4BAAA,CAAC+T,IAAD;AAAMhU,IAAAA,OAAO,EAAEA;KAAa8C,MAA5B,EACGhD,QADH,CADF;AAKD,CARD;;ACTA,MAAMmU,SAAS,GAAIC,KAAD,KAAwB;AACxCnI,EAAAA,EAAE,oBAAoBmI,OADkB;AAExC,0CAAwCA;AAFA,CAAxB,CAAlB;;AAKA,MAAM/U,WAAS,GAAGC,iBAAU,CAAC,OAAO;AAClC6D,EAAAA,IAAI,EAAE;AACJ+G,IAAAA,eAAe,EAAE5J,MAAM,CAACW,KADpB;AAEJoT,IAAAA,SAAS,EAAE,EAFP;AAGJ7U,IAAAA,KAAK,EAAE,MAHH;AAIJ4K,IAAAA,MAAM,KAAK9J,MAAM,CAACE,mBAJd;AAKJZ,IAAAA,YAAY,EAAE,EALV;AAMJ0U,IAAAA,QAAQ,EAAE;AANN,GAD4B;AASlCC,EAAAA,YAAY,EAAE;AACZF,IAAAA,SAAS,EAAE,EADC;AAEZ7U,IAAAA,KAAK,EAAE;AAFK,GAToB;AAalCgV,EAAAA,GAAG,EAAE;AACH,eAAW;AACTnR,MAAAA,KAAK,EAAE/C,MAAM,CAACE;AADL,KADR;AAIHZ,IAAAA,YAAY,EAAE,EAJX;AAKHyD,IAAAA,KAAK,EAAE/C,MAAM,CAACM,KALX;AAMHmC,IAAAA,UAAU,EAAE7B,KAAK,CAACS,MAAN,CAAaC,KANtB;AAOHyM,IAAAA,QAAQ,EAAE,KAPP;AAQHgG,IAAAA,SAAS,EAAE,MARR;AASH9J,IAAAA,QAAQ,EAAE,KATP;AAUHkK,IAAAA,YAAY,EAAE,MAVX;AAWHrO,IAAAA,OAAO,EAAE,CAXN;AAYH3D,IAAAA,aAAa,EAAE,YAZZ;AAaH4I,IAAAA,MAAM,EAAE,CAbL;AAcH,eAAW;AACToJ,MAAAA,YAAY,EAAE;AADL;AAdR,GAb6B;AAgClCC,EAAAA,YAAY,EAAE;AACZxK,IAAAA,eAAe,EAAE5J,MAAM,CAACE,OADZ;AAEZZ,IAAAA,YAAY,EAAE,EAFF;AAGZ4D,IAAAA,MAAM,EAAE;AAHI,GAhCoB;AAqClCmR,EAAAA,WAAW,EAAE;AAEXzK,IAAAA,eAAe,KAAK5J,MAAM,CAACE,oBAFhB;AAGX6C,IAAAA,KAAK,KAAK/C,MAAM,CAACW;AAHN;AArCqB,CAAP,CAAD,CAA5B;;AA4CA,MAAM2T,UAAU,GAAwB,CAAC;AACvCC,EAAAA,MADuC;AAC/BC,EAAAA,MAD+B;AACvBnD,EAAAA,KAAK,EAAEoD,eADgB;AACCtQ,EAAAA;AADD,CAAD;AAGtC,QAAMvE,OAAO,GAAGb,WAAS,EAAzB;;AAEA,QAAMiF,YAAY,GAAG,CACnBC,KADmB,EACWyQ,QADX;AAGnBvQ,IAAAA,QAAQ,CAACF,KAAD,EAAQyQ,QAAR,CAAR;AACD,GAJD;;AAMA,SACE7U,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACiD;GAAxB,EACEhD,4BAAA,CAAC8U,SAAD;kBACa;AACXnV,IAAAA,SAAS,EAAEI,OAAO,CAACqU;AACnB9P,IAAAA,QAAQ,EAAEH;AACV4Q,IAAAA,iBAAiB,EAAE;AACjBpV,MAAAA,SAAS,EAAEI,OAAO,CAACwU;AADF;AAGnB/C,IAAAA,KAAK,EAAEoD;AACPxN,IAAAA,OAAO,EAAC;GARV,EAUEpH,4BAAA,CAACgV,QAAD,oBACMhB,SAAS,CAAC,CAAD;AACbjU,IAAAA,OAAO,EAAE;AAAE8H,MAAAA,QAAQ,EAAE9H,OAAO,CAACyU;AAApB;AACT7U,IAAAA,SAAS,EAAEI,OAAO,CAACsU;AACnBvF,IAAAA,KAAK,EAAE4F;IAJT,CAVF,EAgBE1U,4BAAA,CAACgV,QAAD,oBACMhB,SAAS,CAAC,CAAD;AACbjU,IAAAA,OAAO,EAAE;AAAE8H,MAAAA,QAAQ,EAAE9H,OAAO,CAACyU;AAApB;AACT7U,IAAAA,SAAS,EAAEI,OAAO,CAACsU;AACnBvF,IAAAA,KAAK,EAAE6F;IAJT,CAhBF,CADF,CADF;AA2BD,CAtCD;;ACnDA,MAAMM,iBAAiB,GAA+B,CAAC;AACrDlI,EAAAA,YADqD;AAErDmI,EAAAA,eAFqD;AAGrDzQ,EAAAA;AAHqD,CAAD,KAKpDzE,4BAAA,CAACqH,OAAD;AAASE,EAAAA,KAAK,EAAEwF;CAAhB,EACE/M,4BAAA,OAAA,MAAA,EACEA,4BAAA,CAACmV,UAAD;AAAYjS,EAAAA,KAAK,EAAC;GAAcgS,gBAAhC,EACGzQ,IADH,CADF,CADF,CALF;;ACMA,MAAMvF,WAAS,GAAGC,iBAAU,CAAE2C,KAAD,KAAmB;AAC9CsT,EAAAA,YAAY,EAAE;AACZnL,IAAAA,MAAM,eAAe9J,MAAM,CAACE,SADhB;AAEZ4F,IAAAA,OAAO,EAAEnE,KAAK,CAACyE,OAAN,CAAc,CAAd,CAFG;AAGZ8O,IAAAA,SAAS,EAAEvT,KAAK,CAACyE,OAAN,CAAc,CAAd;AAHC,GADgC;AAM9C+O,EAAAA,eAAe,EAAE;AACflP,IAAAA,OAAO,EAAE,MADM;AAEfI,IAAAA,cAAc,EAAE;AAFD;AAN6B,CAAnB,CAAD,CAA5B;;AAYA,MAAM+O,iBAAiB,GAA+B,CAAC;AACrDpO,EAAAA,IADqD;AAC/CqO,EAAAA,kBAAkB,GAAG,iBAD0B;AACPC,EAAAA,mBADO;AACchJ,EAAAA;AADd,CAAD;AAGpD,QAAM1M,OAAO,GAAGb,WAAS,EAAzB;AACA,SACEc,4BAAA,CAAC4Q,aAAD;AACErJ,IAAAA,KAAK,mBAAmBkO;AACxBtO,IAAAA,IAAI,EAAEA;AACNsF,IAAAA,OAAO,EAAEA;GAHX,EAKEzM,4BAAA,CAACA,cAAK,CAAC2M,QAAP,MAAA,EACE3M,4BAAA,CAAC4K,UAAD;AAAY8K,IAAAA,YAAY;AAACC,IAAAA,KAAK,EAAC;AAASzS,IAAAA,KAAK,EAAC;AAAY+E,IAAAA,SAAS,EAAC;GAApE,+BAAA,EAEG,GAFH,EAGGwN,mBAHH,0BAAA,EAMG,GANH,EAOEzV,4BAAA,CAAC4V,GAAD;AAAKxP,IAAAA,OAAO,EAAC;AAASxD,IAAAA,UAAU,EAAC;GAAjC,EAAqD4S,kBAArD,CAPF,KAAA,CADF,EAWExV,4BAAA,CAAC4R,IAAD;AACEC,IAAAA,SAAS;AACTlS,IAAAA,SAAS,EAAEI,OAAO,CAACqV;AACnB/O,IAAAA,UAAU,EAAC;GAHb,EAKErG,4BAAA,CAAC4R,IAAD;AAAM1C,IAAAA,IAAI;AAAC2G,IAAAA,EAAE,EAAE;AAAGlW,IAAAA,SAAS,EAAEI,OAAO,CAACuV;GAArC,EACEtV,4BAAA,CAAC8V,gBAAD,MAAA,CADF,CALF,EAQE9V,4BAAA,CAAC4R,IAAD;AAAM1C,IAAAA,IAAI;AAAC2G,IAAAA,EAAE,EAAE;GAAf,EACE7V,4BAAA,CAAC4K,UAAD;AAAY8K,IAAAA,YAAY;AAACxS,IAAAA,KAAK,EAAC;GAA/B,oCAAA,CADF,EAEElD,4BAAA,CAAC4K,UAAD;AAAY1H,IAAAA,KAAK,EAAC;AAAU+E,IAAAA,SAAS,EAAC;GAAtC,EACEjI,4BAAA,CAAC4V,GAAD;AAAKhT,IAAAA,UAAU,EAAC;GAAhB,kCAAA,CADF,CAFF,CARF,CAXF,CALF,CADF;AAmCD,CAvCD;;ACbA,MAAM1D,WAAS,GAAGC,iBAAU,CAAE2C,KAAD,KAAmB;AAC9CiU,EAAAA,SAAS,EAAE;AACT3P,IAAAA,OAAO,EAAE,MADA;AAETI,IAAAA,cAAc,EAAE;AAFP,GADmC;AAK9CwP,EAAAA,gBAAgB,EAAE;AAChB9S,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KADE;AAEhBiH,IAAAA,QAAQ,EAAE5G,KAAK,CAACE,IAAN,CAAWC;AAFL,GAL4B;AAS9C+U,EAAAA,eAAe,EAAE;AACflM,IAAAA,eAAe,EAAE5J,MAAM,CAACK,KADT;AAEf4F,IAAAA,OAAO,EAAE,MAFM;AAGfI,IAAAA,cAAc,EAAE,QAHD;AAIf0P,IAAAA,aAAa,EAAEpU,KAAK,CAACyE,OAAN,CAAc,CAAd,CAJA;AAKflH,IAAAA,KAAK,EAAE;AALQ,GAT6B;AAgB9C8W,EAAAA,aAAa,EAAE;AACbd,IAAAA,SAAS,EAAEvT,KAAK,CAACyE,OAAN,CAAc,CAAd,CADE;AAEb2H,IAAAA,QAAQ,EAAE,KAFG;AAGb7O,IAAAA,KAAK,EAAE;AAHM,GAhB+B;AAqB9C+W,EAAAA,WAAW,EAAE;AACXC,IAAAA,YAAY,EAAEvU,KAAK,CAACyE,OAAN,CAAc,CAAd;AADH,GArBiC;AAwB9C+P,EAAAA,UAAU,EAAE;AACVlQ,IAAAA,OAAO,EAAE,MADC;AAEVI,IAAAA,cAAc,EAAE,QAFN;AAGVP,IAAAA,OAAO,EAAEnE,KAAK,CAACyE,OAAN,CAAc,CAAd;AAHC,GAxBkC;AA6B9CvD,EAAAA,IAAI,EAAE;AACJqD,IAAAA,UAAU,EAAE,QADR;AAEJD,IAAAA,OAAO,EAAE,MAFL;AAGJ2J,IAAAA,aAAa,EAAE,QAHX;AAIJjF,IAAAA,UAAU,EAAEhJ,KAAK,CAACyE,OAAN,CAAc,CAAd,CAJR;AAKJlH,IAAAA,KAAK,EAAE;AALH,GA7BwC;AAoC9CkX,EAAAA,MAAM,EAAE;AACNxM,IAAAA,eAAe,EAAE5J,MAAM,CAACK,KADlB;AAENgW,IAAAA,mBAAmB,EAAE,SAFf;AAGNC,IAAAA,oBAAoB,EAAE,SAHhB;AAINpT,IAAAA,MAAM,EAAEvB,KAAK,CAACyE,OAAN,CAAc,EAAd,CAJF;AAKNlH,IAAAA,KAAK,EAAE;AALD;AApCsC,CAAnB,CAAD,CAA5B;;AA6CA,MAAMqX,MAAM,GAAoB,CAAC;AAC/B/W,EAAAA,SAAS,GAAG,EADmB;AACfgX,EAAAA,aADe;AACAC,EAAAA,YADA;AACc,KAAG9W;AADjB,CAAD;AAG9B,QAAMC,OAAO,GAAGb,WAAS,EAAzB;AAEA,SACEc,4BAAA,SAAA;AAAQL,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD,WAAnB,CAA+BO,IAA/B;KAA2CJ,KAA9D,EACEE,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACwW;GAAxB,CADF,EAEEvW,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACkW;GAAxB,EACEjW,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACoW;GAAxB,EACEnW,4BAAA,CAAC4R,SAAD;AAAMC,IAAAA,SAAS;AAACgF,IAAAA,SAAS,EAAC;GAA1B,EACE7W,4BAAA,CAAC4R,SAAD;AAAMjS,IAAAA,SAAS,EAAEI,OAAO,CAACuW;AAAYpH,IAAAA,IAAI;AAAC4C,IAAAA,EAAE,EAAE;AAAIgF,IAAAA,EAAE,EAAE;AAAGC,IAAAA,EAAE,EAAE;GAA7D,EACE/W,4BAAA,MAAA;AAAK+G,IAAAA,GAAG,EAAEiQ;AAAkB3T,IAAAA,MAAM,EAAC;AAAO2D,IAAAA,GAAG,EAAC;GAA9C,CADF,CADF,EAKI4P,YAAY,CAAC/J,GAAb,CAAkBoK,UAAD,IACfjX,4BAAA,CAAC4R,SAAD;AACE9E,IAAAA,GAAG,QAAQ2C,iBAAiB,CAACwH,UAAU,CAAC1P,KAAZ;AAC5B2H,IAAAA,IAAI;AACJ4C,IAAAA,EAAE,EAAE;AACJ+D,IAAAA,EAAE,EAAE;AACJiB,IAAAA,EAAE,EAAE;AACJC,IAAAA,EAAE,EAAE;GANN,EAQE/W,4BAAA,CAACoQ,YAAD;AACEzQ,IAAAA,SAAS,EAAEI,OAAO,CAACqW;KACfa,WAFN,CARF,CADF,CALJ,CADF,EAuBEjX,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACgW;GAAxB,EACE/V,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,EAAEI,OAAO,CAACiW;GAA/B,EACGW,aADH,CADF,CAvBF,CADF,CAFF,CADF;AAoCD,CAzCD;;AC5DA,IAAYO,gBAAZ;;AAAA,WAAYA;AACVA,EAAAA,kDAAA,aAAA;AACAA,EAAAA,mDAAA,cAAA;AACAA,EAAAA,sDAAA,iBAAA;AACAA,EAAAA,sDAAA,iBAAA;AACD,CALD,EAAYA,gBAAgB,KAAhBA,gBAAgB,KAAA,CAA5B;;AAOA,yBAAeA,gBAAf;;ACPA;AACA,AAkKA;AACA,AAAO,MAAM,eAAe,iBAAiB,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,YAAY,CAAC;AAC/J,AA2DA;AACA,AAAO,MAAM,oBAAoB,iBAAiB,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,aAAa,KAAK,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC,IAAI,iBAAiB,CAAC;AACxL,AA8UA;AACA;AACA,AAAO,SAAS,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AACtC,CAAC,IAAI;AACL,EAAE,IAAI,MAAM,GAAG,IAAI,EAAE,CAAC;AACtB,EAAE,CAAC,MAAM,CAAC,EAAE;AACZ,EAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AACpB,EAAE;AACF,CAAC,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE;AAC5B,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;AACtC,EAAE;AACF,CAAC,OAAO,MAAM,CAAC;AACf,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"} \ No newline at end of file +{"version":3,"file":"index.js","sources":["../src/components/atoms/Button.tsx","../src/theme/theme.ts","../src/components/atoms/Checkbox.tsx","../src/assets/images/icons/nifty.png","../src/assets/images/icons/rifCom.png","../src/assets/images/icons/rifDir.png","../src/assets/images/icons/rifGat.png","../src/assets/images/icons/rifMar.png","../src/assets/images/icons/rifPay.png","../src/assets/images/icons/rifSto.png","../src/models/ProviderInfo.ts","../src/components/atoms/LoginOption.tsx","../src/components/atoms/Logo.tsx","../src/components/atoms/LogoNavbar.tsx","../src/components/atoms/StyledNavTab.tsx","../src/components/atoms/NetworkIndicator.tsx","../src/components/atoms/modal/Modal.tsx","../src/components/atoms/modal/ModalHeader.tsx","../src/components/atoms/modal/ModalTitle.tsx","../src/components/atoms/modal/ModalFooter.tsx","../src/components/atoms/modal/ModalBody.tsx","../src/components/hoc/WithSpinner.tsx","../src/components/molecules/Accordion.tsx","../src/components/molecules/AccountModal.tsx","../src/components/molecules/CopyTextTooltip.tsx","../src/components/molecules/FAQSection.tsx","../src/components/molecules/LabeledCheckbox.tsx","../src/components/molecules/FilterCheckboxCard.tsx","../src/utils.ts","../src/components/molecules/FooterColumn.tsx","../src/components/molecules/ModalDialogue.tsx","../src/components/molecules/UnitsInput.tsx","../src/components/molecules/RangeSliderWithInputs.tsx","../src/components/molecules/ShortenTextTooltip.tsx","../src/components/molecules/StyledTabs.tsx","../src/components/molecules/SwitchTabs.tsx","../src/components/molecules/TooltipIconButton.tsx","../src/components/molecules/WrongNetworkModal.tsx","../src/components/organisms/Footer.tsx","../src/models/Enums.ts","../node_modules/babel-plugin-transform-async-to-promises/helpers.js","../src/services/Web3Service.ts","../src/components/organisms/Account.tsx","../src/components/organisms/Header/HeaderDesktop.tsx","../src/components/organisms/Header/HeaderMobile.tsx","../src/components/organisms/Header/Header.tsx","../src/components/organisms/Header/HeaderTongue.tsx","../src/components/templates/FAQPageTemplate.tsx","../src/components/templates/PageTemplate.tsx","../src/providers/Web3Provider.tsx"],"sourcesContent":["import React, { FC } from 'react'\nimport { Button as MUIButton, ButtonProps as MUIButtonProps } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\n\nexport interface ButtonProps extends MUIButtonProps {\n block?: boolean\n shadow?: boolean\n rounded?: boolean\n}\n\nconst useStyles = makeStyles(() => ({\n block: {\n width: '100%',\n },\n noShadow: {\n boxShadow: 'none',\n },\n rounded: {\n borderRadius: 50,\n },\n}))\n\nconst Button: FC = ({\n className = '', block, shadow, rounded, children, ...rest\n}) => {\n const classes = useStyles()\n\n return (\n \n {children}\n \n )\n}\n\nexport default Button\n","import { createMuiTheme } from '@material-ui/core/styles'\nimport '../assets/css/fonts/rubik.css'\n\nexport const colors = {\n black: '#000000',\n primary: '#008FF7',\n darkBlue: '#197DC6',\n gray1: '#F8F7F7',\n gray2: '#E5E5E5',\n gray3: '#C4C4C4',\n gray4: '#919191',\n gray5: '#4D4C4C',\n gray6: '#15171B',\n transparent: '#FFFFFF00',\n white: '#FFFFFF',\n}\n\nexport const fonts = {\n family: 'Rubik',\n size: {\n tiny: 10,\n small: 12,\n normal: 14,\n medium: 16,\n subtitleSmall: 18,\n subtitleBig: 22,\n },\n weight: {\n light: 300,\n regular: 400,\n medium: 500,\n bold: 700,\n },\n}\n\nexport const globalConstants = {\n headerHeight: 8,\n}\n\nconst theme = createMuiTheme({\n palette: {\n primary: {\n main: colors.primary,\n },\n secondary: {\n main: colors.gray4,\n },\n },\n typography: {\n fontFamily: fonts.family,\n button: {\n textTransform: 'none',\n },\n fontWeightLight: fonts.weight.light,\n fontWeightRegular: fonts.weight.regular,\n fontWeightMedium: fonts.weight.medium,\n fontWeightBold: fonts.weight.bold,\n body1: {\n fontWeight: fonts.weight.light,\n },\n },\n props: {},\n overrides: {\n MuiButton: {\n root: {\n fontWeight: fonts.weight.light,\n },\n },\n MuiFormControlLabel: {\n root: {\n color: colors.gray3,\n },\n },\n MuiSlider: {\n rail: {\n color: colors.gray3,\n height: 4,\n opacity: 1,\n },\n root: {\n width: '100%',\n color: colors.primary,\n height: 4,\n },\n track: {\n height: 4,\n },\n thumb: {\n marginLeft: -4,\n height: 14,\n width: 14,\n },\n },\n MuiTextField: {\n root: {\n color: colors.gray3,\n '&:hover': {\n color: colors.gray2,\n },\n },\n },\n },\n})\n\nexport default theme\n","import React, { FC, useState } from 'react'\nimport {\n Checkbox as MUICheckbox,\n CheckboxProps as MUICheckboxProps,\n makeStyles,\n createStyles,\n} from '@material-ui/core'\nimport { CheckBoxOutlineBlankSharp, CheckBoxSharp } from '@material-ui/icons'\nimport { colors } from '../../theme'\n\nexport type CheckboxProps = MUICheckboxProps;\n\nconst useStyles = makeStyles(() => createStyles({\n unCheckedIcon: {\n color: colors.gray4,\n },\n checkedIcon: {\n color: colors.primary,\n },\n}))\n\nconst Checkbox: FC = (props) => {\n const classes = useStyles()\n const { checked } = props\n const [isChecked, setIsChecked] = useState(!!checked)\n\n const handleChange = (event: React.ChangeEvent,\n newChecked: boolean): void => {\n setIsChecked(newChecked)\n const { onChange } = props\n\n if (onChange) onChange(event, newChecked)\n }\n\n return (\n \n }\n icon={\n \n }\n {...props}\n checked={isChecked}\n onChange={handleChange}\n />\n )\n}\n\nexport default Checkbox\n","/* loaded by smart-asset */\nexport default require(\"./nifty~RMIWdZeg.png\")","/* loaded by smart-asset */\nexport default require(\"./rifCom~udwpaCym.png\")","/* loaded by smart-asset */\nexport default require(\"./rifDir~bottaDNJ.png\")","/* loaded by smart-asset */\nexport default require(\"./rifGat~balFpEzC.png\")","/* loaded by smart-asset */\nexport default require(\"./rifMar~IDqKMWpK.png\")","/* loaded by smart-asset */\nexport default require(\"./rifPay~bdtOAceT.png\")","/* loaded by smart-asset */\nexport default require(\"./rifSto~fMRetflo.png\")","import { metaMaskIconImg, niftyIconImg } from '../assets/images'\n\nexport default interface ProviderInfo {\n name: string\n eProvider: EProvider\n iconImg?: string\n}\n\nexport enum EProvider {\n METAMASK = 'Metamask',\n NIFTY = 'Nifty',\n LEDGER = 'Ledger',\n TREZOR = 'Trezor',\n TRUST = 'Trust',\n LOCAL = 'Localhost',\n GO_WALLET = 'GoWallet',\n ALPHA_WALLET = 'AlphaWallet',\n STATUS = 'status',\n CIPHER = 'cipher',\n COINBASE = 'coinbase',\n MIST = 'mist',\n PARITY = 'parity',\n INFURA = 'infura'\n}\n\nexport const getProviderInfo = (eProvider: EProvider): ProviderInfo => {\n switch (eProvider) {\n case EProvider.METAMASK:\n return {\n name: 'MetaMask',\n eProvider,\n iconImg: metaMaskIconImg,\n }\n case EProvider.NIFTY:\n return {\n name: 'Nifty',\n eProvider,\n iconImg: niftyIconImg,\n }\n case EProvider.LEDGER:\n return {\n name: 'Ledger',\n eProvider,\n }\n case EProvider.TREZOR:\n return {\n name: 'Trezor',\n eProvider,\n }\n case EProvider.TRUST:\n return {\n name: 'Trust',\n eProvider,\n }\n case EProvider.GO_WALLET:\n return {\n name: 'Go Wallet',\n eProvider,\n }\n case EProvider.ALPHA_WALLET:\n return {\n name: 'Alpha Wallet',\n eProvider,\n }\n case EProvider.STATUS:\n return {\n name: 'Status',\n eProvider,\n }\n case EProvider.COINBASE:\n return {\n name: 'Coinbase',\n eProvider,\n }\n case EProvider.MIST:\n return {\n name: 'Mist',\n eProvider,\n }\n case EProvider.PARITY:\n return {\n name: 'Parity',\n eProvider,\n }\n case EProvider.INFURA:\n return {\n name: 'Infura',\n eProvider,\n }\n case EProvider.LOCAL:\n return {\n name: 'Localhost',\n eProvider,\n }\n default: {\n throw new Error(\n `EProvider not implemented or unknown. Chosen provider ${eProvider}`,\n )\n }\n }\n}\n","import React, { FC } from 'react'\nimport { makeStyles, Theme, Tooltip } from '@material-ui/core'\nimport Button from './Button'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport { niftyIconImg } from '../../assets/images'\n\nexport interface LoginOptionProps {\n className?: string\n onClick?: () => void\n providerInfo?: ProviderInfo\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n padding: 5,\n margin: 5,\n width: '100%',\n },\n content: {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n maxHeight: theme.spacing(5),\n justifyContent: 'center',\n },\n imageWrapper: {\n maxHeight: theme.spacing(4),\n marginRight: theme.spacing(2),\n },\n}))\n\n/**\n * If not providerInfo is received, we assume there's no provider available and so suggest to install Nifty wallet\n * Same happens when no onClick is provided. We open the Nifty page on a new tab\n */\nconst LoginOption: FC = ({\n className = '',\n onClick,\n providerInfo,\n ...rest\n}) => {\n const classes = useStyles()\n\n const providerContent = (\n
\n {\n providerInfo?.iconImg\n && (\n \n )\n }\n {providerInfo?.name}\n
\n )\n\n const handleOnClick = () => {\n if (onClick) {\n return onClick()\n }\n return window.open('https://www.poa.network/for-users/nifty-wallet/getting-started', '_blank')\n }\n\n return (\n \n {/* only with Nifty we display the Tooltip because atm we can't check if MetaMask is also enabled */}\n {!!providerInfo && providerInfo.eProvider === EProvider.NIFTY\n && (\n \n {providerContent}\n \n )}\n {!!providerInfo && providerInfo.eProvider !== EProvider.NIFTY\n && providerContent}\n {!providerInfo\n && (\n
\n \n Install Nifty wallet\n
\n )}\n \n )\n}\n\nexport default LoginOption\n","import React, { FC } from 'react'\nimport { logoFullWhite } from '../../assets/images'\n\nconst Logo: FC> = (\n { alt = 'RIF OS logo', ...rest },\n) => {alt}\n\nexport default Logo\n","import React, { FC } from 'react'\nimport { logoFullWhite } from '../../assets/images'\n\ninterface LogoProps extends React.Props {\n alt?: string\n height?: string | number\n style?: React.CSSProperties\n}\n\nconst LogoNavbar: FC = ({ alt = 'navbar logo', height = '44px', ...rest }) => (\n \n)\nexport default LogoNavbar\n","import React, { FC } from 'react'\nimport { Theme, makeStyles } from '@material-ui/core/styles'\nimport Tab from '@material-ui/core/Tab'\nimport { NavLink } from 'react-router-dom'\nimport { colors } from '../../theme'\n\nexport interface StyledNavTabProps {\n label: string\n to: string\n value: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n textTransform: 'none',\n color: colors.gray5,\n fontWeight: theme.typography.fontWeightRegular,\n fontSize: theme.typography.pxToRem(15),\n marginRight: theme.spacing(1),\n '&:focus': {\n opacity: 1,\n },\n },\n selected: {\n fontWeight: theme.typography.fontWeightMedium,\n borderBottom: '2px solid #000000',\n },\n}))\n\nconst StyledNavTab: FC = (props: StyledNavTabProps) => {\n const classes = useStyles()\n return \n}\n\nexport default StyledNavTab\n","import React, { FC } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport CheckCircleOutlineOutlinedIcon from '@material-ui/icons/CheckCircleOutlineOutlined'\nimport ErrorIcon from '@material-ui/icons/Error'\nimport WarningIcon from '@material-ui/icons/Warning'\nimport { green, yellow } from '@material-ui/core/colors'\n\nexport interface NetworkIndicatorProps {\n iconClassName?: string\n currentNetworkId?: number\n requiredNetworkId?: number\n onCorrectNetworkMessage?: string\n onNetworkMismatchMessage?: string\n noNetworkMessage?: string\n}\n\nconst defaultonCorrectNetworkMessage = 'You are on the right network'\nconst deaulftonNetworkMismatchMessage = 'You are on the wrong network'\nconst defaultNoNetworkMessage = 'You are not connected to any network'\n\nexport enum NetworkStatus {\n NO_NETWORK = 1,\n NETWORK_MISSMATCH = 2,\n CORRECT_NETWORK = 3\n}\n\nconst getNetworkStatus = (currentNetworkId, requiredNetworkId): NetworkStatus => {\n if (!currentNetworkId) return NetworkStatus.NO_NETWORK\n\n if (currentNetworkId === requiredNetworkId) return NetworkStatus.CORRECT_NETWORK\n return NetworkStatus.NETWORK_MISSMATCH\n}\n\nconst NetworkIndicator: FC = ({\n iconClassName = '',\n currentNetworkId, requiredNetworkId, onCorrectNetworkMessage,\n onNetworkMismatchMessage, noNetworkMessage,\n}) => {\n const networkStatus = getNetworkStatus(currentNetworkId, requiredNetworkId)\n\n const iconPerNetworkStatus = new Map()\n iconPerNetworkStatus.set(NetworkStatus.NO_NETWORK, (\n \n \n \n ))\n iconPerNetworkStatus.set(NetworkStatus.NETWORK_MISSMATCH, (\n \n \n \n ))\n iconPerNetworkStatus.set(NetworkStatus.CORRECT_NETWORK, (\n \n \n \n ))\n\n return (\n iconPerNetworkStatus.get(networkStatus)\n )\n}\n\nexport default NetworkIndicator\n","import React, { FC } from 'react'\nimport { Modal as MUIModal, ModalProps as MUIModalProps } from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport type ModalProps = MUIModalProps;\n\nconst useStyles = makeStyles((theme: Theme) => ({\n paper: {\n backgroundColor: theme.palette.background.paper,\n border: `2px solid ${colors.primary}`,\n boxShadow: theme.shadows[5],\n left: '50%',\n minWidth: 400,\n padding: theme.spacing(2, 4, 3),\n position: 'absolute',\n top: '50%',\n transform: 'translate(-50%, -50%)',\n },\n}))\n\nconst Modal: FC = ({ children, ...rest }) => {\n const classes = useStyles()\n\n return (\n \n
\n {children}\n
\n
\n )\n}\n\nexport default Modal\n","import React, { FC } from 'react'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport interface ModalHeaderProps {\n className?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n borderBottom: `1px solid ${colors.gray2}`,\n color: colors.primary,\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n },\n}))\n\nconst ModalHeader: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalHeader\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\n\nexport interface ModalTitleProps {\n className?: string\n}\n\nconst ModalTitle: FC = ({ children, ...rest }) => (\n \n {children}\n \n)\n\nexport default ModalTitle\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport interface ModalFooterProps {\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n borderTop: `1px solid ${colors.gray2}`,\n display: 'flex',\n justifyContent: 'center',\n paddingTop: theme.spacing(1),\n width: '100%',\n },\n}))\n\nconst ModalFooter: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalFooter\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\n\nexport interface ModalBodyProps {\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n padding: theme.spacing(3, 0),\n width: '100%',\n },\n}))\n\nconst ModalBody: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalBody\n","import React from 'react'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { logoBlueIcon } from '../../assets/images'\n\nconst useStyles = makeStyles(() => ({\n '@keyframes spin': {\n '0%': { transform: 'rotate(0deg)' },\n '100%': { transform: 'rotate(360deg)' },\n },\n root: {\n position: 'relative',\n },\n overlay: {\n position: 'absolute',\n zIndex: 2,\n height: '100%',\n width: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n background: '#FFFFFF55',\n },\n spinner: {\n display: 'inline-block',\n zIndex: 3,\n width: '50px',\n height: '50px',\n border: 'none',\n animation: '$spin 2s ease-in-out infinite',\n },\n}))\n\nconst WithSpinner = (WrappedComponent: React.ElementType) => {\n const Spinner = ({ isLoading, ...props }) => {\n const classes = useStyles()\n\n return (\n
\n {\n isLoading\n && (\n
\n \"logo\"\n
\n )\n }\n \n
\n )\n }\n return Spinner\n}\n\nexport default WithSpinner\n","import React, { FC, useState } from 'react'\nimport { Accordion as MUIAccordion, AccordionProps as MUIAccordionProps } from '@material-ui/core'\nimport Typography from '@material-ui/core/Typography'\nimport AccordionDetails from '@material-ui/core/AccordionDetails'\nimport AccordionSummary from '@material-ui/core/AccordionSummary'\nimport { makeStyles, Theme, createStyles } from '@material-ui/core/styles'\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore'\nimport { colors } from '../../theme'\n\ninterface AccordionProps extends MUIAccordionProps {\n id: string\n title?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n root: {\n boxShadow: 'none',\n color: colors.gray4,\n width: '100%',\n },\n heading: {\n color: colors.gray4,\n fontSize: theme.typography.pxToRem(15),\n fontWeight: theme.typography.fontWeightRegular,\n width: '100%',\n },\n accordionSummary: {\n borderBottom: `1px solid ${colors.gray2}`,\n },\n}))\n\nconst Accordion: FC = ({\n children, expanded, id, title,\n}) => {\n const classes = useStyles()\n const [isExpanded, setIsExpanded] = useState(!!expanded)\n\n const onChange = (): void => setIsExpanded(!isExpanded)\n\n return (\n \n }\n aria-controls={`panel-${id}-content`}\n id={id}\n >\n {title}\n \n \n {children}\n \n \n )\n}\n\nexport default Accordion\n","import React, { FC } from 'react'\nimport Web3 from 'web3'\nimport {\n Button, LoginOption, Modal, ModalBody, ModalFooter, ModalHeader, ModalTitle,\n} from '../atoms'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport NetworkInfo from '../../models/NetworkInfo'\n\nexport interface AccountModalProps {\n web3?: Web3\n networkInfo?: NetworkInfo\n setProvider?: (provider: EProvider, onProviderSet?:\n (account?: string) => void) => Promise\n availableProviders?: ProviderInfo[]\n onClose?: () => void\n onProviderSet?: (account) => void\n open: boolean\n}\n\nconst AccountModal: FC = ({\n setProvider,\n availableProviders,\n open,\n onClose,\n onProviderSet,\n}) => (\n \n \n \n Connect a wallet to get started\n \n \n {\n availableProviders && availableProviders.length && availableProviders.map(\n (providerInfo) => (\n => {\n if (setProvider) await setProvider(providerInfo.eProvider, onProviderSet)\n }}\n />\n ),\n )\n }\n {!availableProviders\n && (\n // TODO: Create LoginOptionTemplate to extract this\n // empty LoginOption means suggest to install Nifty wallet\n \n )}\n \n \n \n Close\n \n \n \n \n)\n\nexport default AccountModal\n","import React, { FC, useState } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport { makeStyles } from '@material-ui/core/styles'\nimport FileCopyIcon from '@material-ui/icons/FileCopy'\nimport Typography from '@material-ui/core/Typography'\n\nexport interface CopyTextTooltipProps {\n displayElement: React.ReactElement\n fullText: string\n}\n\nconst useStyles = makeStyles(() => ({\n tooltipTitle: {\n display: 'flex',\n alignItems: 'center',\n },\n}))\n\nconst CopyTextTooltip: FC = ({ displayElement, fullText }) => {\n const [isCopied, setIsCopied] = useState(false)\n\n const classes = useStyles()\n\n const tooltipContent = (\n
\n \n \n {fullText}\n \n
\n )\n\n return (\n Copied! : tooltipContent}\n onClick={() => {\n navigator.clipboard.writeText(fullText)\n .then(() => { setIsCopied(true) })\n }}\n onClose={() => {\n setIsCopied(false)\n }}\n >\n {displayElement}\n \n )\n}\n\nexport default CopyTextTooltip\n","import React, { FC, useState } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Accordion from '@material-ui/core/Accordion'\nimport AccordionDetails from '@material-ui/core/AccordionDetails'\nimport AccordionSummary from '@material-ui/core/AccordionSummary'\nimport Typography from '@material-ui/core/Typography'\nimport AddIcon from '@material-ui/icons/Add'\nimport RemoveIcon from '@material-ui/icons/Remove'\nimport { colors, fonts } from '../../theme'\n\nexport interface FAQSectionProps {\n answer: string\n initiallyExpanded?: boolean\n question: string\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n boxShadow: 'none',\n color: colors.gray4,\n width: '100%',\n },\n heading: {\n display: 'flex',\n justifyContent: 'center',\n color: colors.gray5,\n fontSize: fonts.size.subtitleSmall,\n width: '100%',\n },\n headingExpanded: {\n color: colors.primary,\n },\n headingCollapsed: {\n fontWeight: fonts.weight.regular,\n },\n panelDetails: {\n display: 'flex',\n justifyContent: 'center',\n },\n answerContainer: {\n [theme.breakpoints.up('md')]: {\n maxWidth: '80%',\n },\n },\n answerText: {\n color: colors.gray5,\n },\n}))\n\nconst FAQSection: FC = ({\n className = '', initiallyExpanded, question, answer,\n}) => {\n const classes = useStyles()\n const [isExpanded, setIsExpanded] = useState(!!initiallyExpanded)\n\n const onChange = (): void => setIsExpanded(!isExpanded)\n\n return (\n \n : }\n >\n {question}\n \n \n
\n {answer}\n
\n
\n
\n )\n}\n\nexport default FAQSection\n","import React, { FC } from 'react'\nimport { FormControlLabel } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Checkbox, { CheckboxProps } from '../atoms/Checkbox'\nimport { colors } from '../../theme'\n\nexport interface LabeledCheckboxProps extends CheckboxProps {\n labelText: string\n labelClassName?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n color: colors.gray4,\n width: '100%',\n },\n}))\n\nconst LabeledCheckbox: FC = ({ labelText, labelClassName = '', ...rest }) => {\n const classes = useStyles()\n return (\n \n }\n />\n\n )\n}\n\nexport default LabeledCheckbox\n","import React, { FC } from 'react'\nimport LabeledCheckbox, { LabeledCheckboxProps } from './LabeledCheckbox'\n\nexport interface FilterCheckboxCardProps {\n className?: string\n items: LabeledCheckboxProps[]\n onClick?: (event: React.MouseEvent) => void\n}\n\nconst FilterCheckboxCard: FC = ({ className = '', onClick, items }) => (\n
\n {items.map((item: LabeledCheckboxProps, i) => (\n \n ))}\n
\n)\n\nexport default FilterCheckboxCard\n","const shortenString = (\n str: string,\n largerThan = 16,\n charsShownCount = 6,\n): string => (str.length > largerThan\n ? `${str.substr(0, charsShownCount)}...${str.substr(str.length - 4)}`\n : str)\n\nconst removeEmptySpaces = (str: string): string => str.replace(/\\s/g, '')\n\nconst maxSupportedNumber = 99999999999999\nconst minSupportedNumber = 0.000001\n\nconst validatedNumber = (num: number): number => {\n if (num > 0) {\n if (num > maxSupportedNumber) return maxSupportedNumber\n\n if (num < minSupportedNumber) return minSupportedNumber\n }\n\n if (num < 0) {\n if (num < -maxSupportedNumber) return -maxSupportedNumber\n\n if (num > -minSupportedNumber) return -minSupportedNumber\n }\n return num\n}\n\nexport {\n shortenString,\n removeEmptySpaces,\n maxSupportedNumber,\n minSupportedNumber,\n validatedNumber,\n}\n","import React, { FC } from 'react'\nimport { NavLinkProps, NavLink } from 'react-router-dom'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../theme'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FooterColumnProps {\n className?: string\n links: FooterLinkProps[]\n title: string\n}\n\nexport interface FooterLinkProps extends NavLinkProps {\n isExternal?: boolean\n title: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n },\n footerLink: {\n color: colors.gray4,\n fontWeight: fonts.weight.light,\n textDecoration: 'none',\n '&:hover': {\n fontWeight: fonts.weight.regular,\n },\n },\n footerTitle: {\n fontSize: fonts.size.subtitleBig,\n textAlign: 'center',\n },\n}))\n\nconst FooterColumn: FC = ({ title, links, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {title}\n {\n links.map((link: FooterLinkProps) => {\n const key = removeEmptySpaces(link.title)\n\n if (link.isExternal) {\n const href = (link.to || '#').toString()\n return (\n \n {link.title}\n \n )\n }\n return (\n \n {link.title}\n \n )\n })\n }\n
\n )\n}\n\nexport default FooterColumn\n","import React, { FC } from 'react'\nimport {\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n ModalTitle,\n} from '../atoms'\nimport { ModalProps } from '../atoms/modal/Modal'\n\nexport interface ModalDialogueProps extends ModalProps {\n title: string\n footer?: React.ReactElement\n}\n\nconst ModalDialogue: FC = ({\n title,\n footer,\n children,\n ...props\n}) => (\n \n \n \n {title}\n \n {children}\n {footer}\n \n \n)\n\nexport default ModalDialogue\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Input, { InputProps } from '@material-ui/core/Input'\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../theme'\n\nexport interface UnitsInputProps extends InputProps {\n handleOnChange: (event: React.ChangeEvent) => void\n handleOnBlur?: () => void\n maxValue?: number\n minValue?: number\n step?: number\n units?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n color: colors.gray4,\n display: 'flex',\n },\n input: {\n color: colors.gray4,\n paddingLeft: theme.spacing(0.1),\n textAlign: 'center',\n '&::before': {\n borderBottom: `1px solid ${colors.gray4}`,\n },\n },\n inputContainer: {\n paddingRight: '0 !important',\n },\n units: {\n color: colors.gray4,\n display: 'flex',\n fontSize: fonts.size.tiny,\n },\n unitsContainer: {\n alignSelf: 'center',\n color: colors.gray4,\n display: 'flex',\n fontSize: fonts.size.normal,\n paddingLeft: '0 !important',\n },\n}))\n\nconst UnitsInput: FC = ({\n maxValue,\n minValue,\n units,\n value,\n step = 1,\n handleOnBlur,\n handleOnChange,\n ...rest\n}) => {\n const classes = useStyles()\n\n return (\n \n \n \n \n \n \n \n {units}\n \n \n \n \n )\n}\n\nexport default UnitsInput\n","import Slider, { SliderProps } from '@material-ui/core/Slider'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport UnitsInput from './UnitsInput'\nimport { validatedNumber } from '../../utils'\nimport { fonts } from '../../theme'\n\nexport interface RangeSliderWithInputsProps extends SliderProps {\n values: {\n start: number\n end: number\n }\n unit?: string\n handleChange: ({ min, max }) => void\n className?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n width: '100%',\n },\n inputsContainer: {\n alignSelf: 'center',\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n },\n toContainer: {\n alignSelf: 'center',\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n fontWeight: fonts.weight.regular,\n },\n}))\n\nconst RangeSliderWithInputs: FC = ({\n values: {\n start: startValue, end: endValue,\n }, unit, handleChange, className, ...rest\n}) => {\n const classes = useStyles()\n\n const maxValue = rest.max || endValue\n const minValue = rest.min || startValue\n const step = rest.step || 1\n\n const handleStartInputChange = (\n event: React.ChangeEvent,\n ): void => {\n const newStartValue = validatedNumber(Number(event.target.value)) || minValue\n handleChange({ min: newStartValue, max: endValue })\n }\n\n const handleEndInputChange = (\n event: React.ChangeEvent,\n ): void => {\n const newEndValue = validatedNumber(Number(event.target.value)) || endValue\n handleChange({ min: startValue, max: newEndValue })\n }\n\n const handleSliderChange = (\n _: React.ChangeEvent<{}>, newSliderValue: number | number[],\n ): void => {\n handleChange({ min: newSliderValue[0], max: newSliderValue[1] })\n }\n\n const handleStartValueBlur = (): void => {\n if (startValue < minValue) {\n handleChange({ min: minValue, max: endValue })\n } else if (startValue > endValue) {\n handleChange({ min: endValue, max: endValue })\n }\n }\n\n const handleEndValueBlur = (): void => {\n if (endValue < startValue) {\n handleChange({ min: minValue, max: startValue })\n } else if (endValue > maxValue) {\n handleChange({ min: minValue, max: maxValue })\n }\n }\n\n const getCommonInputValues = (): {} => ({\n maxValue,\n minValue,\n step,\n units: unit,\n })\n\n return (\n
\n \n
\n \n \n to\n \n \n
\n
\n )\n}\n\nexport default RangeSliderWithInputs\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport CopyTextTooltip from './CopyTextTooltip'\nimport { shortenString } from '../../utils'\n\nexport interface ShortenTextTooltipProps {\n value: string\n maxLength?: number\n charsShownCount?: number\n}\n\nconst ShortenTextTooltip: FC = ({ value, maxLength = 20, charsShownCount }) => (\n \n {\n value.length > maxLength\n && (\n {shortenString(value, maxLength, charsShownCount || maxLength - 5)}}\n fullText={value}\n />\n )\n }\n {\n value.length <= maxLength\n && value\n }\n \n)\n\nexport default ShortenTextTooltip\n","import React, { FC } from 'react'\nimport Tabs, { TabsProps } from '@material-ui/core/Tabs'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { colors } from '../../theme'\n\nexport interface StyledTabsProps {\n value: string\n onChange: (event: React.ChangeEvent<{}>, newValue: string) => void\n}\n\nconst useStyles = makeStyles({\n indicator: {\n display: 'flex',\n justifyContent: 'center',\n backgroundColor: 'transparent',\n },\n root: {\n borderBottom: `1px solid ${colors.gray3}`,\n },\n})\n\nconst StyledTabs: FC = (props: TabsProps) => {\n const { children } = props\n const classes = useStyles()\n return (\n \n {children}\n \n )\n}\n\nexport default StyledTabs\n","import { Tab as MUITab, Tabs as MUITabs } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React, { FC } from 'react'\nimport { colors, fonts } from '../../theme'\n\nexport interface SwitchTabsProps {\n label1: string\n label2: string\n value?: 0 | 1\n onChange: (event: React.ChangeEvent<{}>, value: number) => void\n}\n\nconst a11yProps = (index: number): {} => ({\n id: `full-width-tab-${index}`,\n 'aria-controls': `full-width-tabpanel-${index}`,\n})\n\nconst useStyles = makeStyles(() => ({\n root: {\n backgroundColor: colors.white,\n minHeight: 20,\n width: '100%',\n border: `${colors.primary} solid 1px`,\n borderRadius: 50,\n overflow: 'hidden',\n },\n tabContainer: {\n minHeight: 20,\n width: '100%',\n },\n tab: {\n '&:hover': {\n color: colors.primary,\n },\n borderRadius: 50,\n color: colors.gray3,\n fontWeight: fonts.weight.light,\n maxWidth: '50%',\n minHeight: '100%',\n minWidth: '50%',\n outlineStyle: 'none',\n padding: 0,\n textTransform: 'capitalize',\n zIndex: 1,\n '&:focus': {\n outlineStyle: 'none',\n },\n },\n // shows the transition between tabs\n tabIndicator: {\n backgroundColor: colors.primary,\n borderRadius: 50,\n height: '100%',\n },\n tabSelected: {\n // the '!important' overrides the on hover functionality when it's active\n backgroundColor: `${colors.primary} !important`,\n color: `${colors.white} !important`,\n },\n}))\n\nconst SwitchTabs: FC = ({\n label1, label2, value: controlledValue, onChange,\n}) => {\n const classes = useStyles()\n\n const handleChange = (\n event: React.ChangeEvent<{}>, newValue: number,\n ): void => {\n onChange(event, newValue)\n }\n\n return (\n
\n \n \n \n \n
\n )\n}\n\nexport default SwitchTabs\n","import React, { FC } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport IconButton, { IconButtonProps } from '@material-ui/core/IconButton'\n\nexport interface TooltipIconButtonProps {\n tooltipTitle: string\n iconButtonProps: IconButtonProps\n icon: React.ReactNode\n}\n\nconst TooltipIconButton: FC = ({\n tooltipTitle,\n iconButtonProps,\n icon,\n}) => (\n \n \n \n {icon}\n \n \n\n \n)\n\nexport default TooltipIconButton\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport Box from '@material-ui/core/Box'\nimport Grid from '@material-ui/core/Grid'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../theme'\nimport ModalDialogue from './ModalDialogue'\n\nexport interface WrongNetworkModalProps {\n open: boolean\n currentNetworkName?: string\n requiredNetworkName: string\n onClose: () => void\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n boxContainer: {\n border: `1px solid ${colors.primary}`,\n padding: theme.spacing(5),\n marginTop: theme.spacing(3),\n },\n loaderContainer: {\n display: 'flex',\n justifyContent: 'center',\n },\n}))\n\nconst WrongNetworkModal: FC = ({\n open, currentNetworkName = 'Private network', requiredNetworkName, onClose,\n}) => {\n const classes = useStyles()\n return (\n \n \n \n This dApp only works on the\n {' '}\n {requiredNetworkName}\n .\n You are currently on\n {' '}\n {currentNetworkName}\n .\n \n \n \n \n \n \n Waiting for the right network...\n \n Switch networks on your wallet\n \n \n \n \n \n )\n}\nexport default WrongNetworkModal\n","import React, { FC, HTMLAttributes } from 'react'\nimport { Grid } from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport FooterColumn, { FooterColumnProps } from '../molecules/FooterColumn'\nimport { colors, fonts } from '../../theme'\nimport { logoBlackAndBlue } from '../../assets/images'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FooterProps extends HTMLAttributes {\n className?: string\n copyrightText: string\n linksColumns: FooterColumnProps[]\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n copyright: {\n display: 'flex',\n justifyContent: 'center',\n },\n copyrightContent: {\n color: colors.gray4,\n fontSize: fonts.size.tiny,\n },\n footerContainer: {\n backgroundColor: colors.gray2,\n display: 'flex',\n justifyContent: 'center',\n paddingBottom: theme.spacing(2),\n width: '100%',\n },\n footerContent: {\n marginTop: theme.spacing(2),\n maxWidth: '80%',\n width: '100%',\n },\n linksColumn: {\n marginBottom: theme.spacing(1),\n },\n logoColumn: {\n display: 'flex',\n justifyContent: 'center',\n padding: theme.spacing(5),\n },\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n paddingTop: theme.spacing(4),\n width: '100%',\n },\n tongue: {\n backgroundColor: colors.gray2,\n borderTopLeftRadius: '50% 80%',\n borderTopRightRadius: '50% 80%',\n height: theme.spacing(10),\n width: '100%',\n },\n}))\n\nconst Footer: FC = ({\n className = '', copyrightText, linksColumns, ...rest\n}) => {\n const classes = useStyles()\n\n return (\n
\n
\n
\n
\n \n \n \"logo\"\n \n {\n linksColumns.map((linkColumn: FooterColumnProps) => (\n \n \n \n ))\n }\n \n
\n \n {copyrightText}\n \n
\n
\n
\n
\n )\n}\n\nexport default Footer\n","export enum ConnectionStatus {\n LoggedIn = 0,\n LoggedOut = 1,\n WalletLocked = 2,\n WrongNetwork = 3\n}\n\nexport default ConnectionStatus\n","// A type of promise-like that resolves synchronously and supports only one observer\nexport const _Pact = /*#__PURE__*/(function() {\n\tfunction _Pact() {}\n\t_Pact.prototype.then = function(onFulfilled, onRejected) {\n\t\tconst result = new _Pact();\n\t\tconst state = this.s;\n\t\tif (state) {\n\t\t\tconst callback = state & 1 ? onFulfilled : onRejected;\n\t\t\tif (callback) {\n\t\t\t\ttry {\n\t\t\t\t\t_settle(result, 1, callback(this.v));\n\t\t\t\t} catch (e) {\n\t\t\t\t\t_settle(result, 2, e);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\tthis.o = function(_this) {\n\t\t\ttry {\n\t\t\t\tconst value = _this.v;\n\t\t\t\tif (_this.s & 1) {\n\t\t\t\t\t_settle(result, 1, onFulfilled ? onFulfilled(value) : value);\n\t\t\t\t} else if (onRejected) {\n\t\t\t\t\t_settle(result, 1, onRejected(value));\n\t\t\t\t} else {\n\t\t\t\t\t_settle(result, 2, value);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(result, 2, e);\n\t\t\t}\n\t\t};\n\t\treturn result;\n\t}\n\treturn _Pact;\n})();\n\n// Settles a pact synchronously\nexport function _settle(pact, state, value) {\n\tif (!pact.s) {\n\t\tif (value instanceof _Pact) {\n\t\t\tif (value.s) {\n\t\t\t\tif (state & 1) {\n\t\t\t\t\tstate = value.s;\n\t\t\t\t}\n\t\t\t\tvalue = value.v;\n\t\t\t} else {\n\t\t\t\tvalue.o = _settle.bind(null, pact, state);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (value && value.then) {\n\t\t\tvalue.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));\n\t\t\treturn;\n\t\t}\n\t\tpact.s = state;\n\t\tpact.v = value;\n\t\tconst observer = pact.o;\n\t\tif (observer) {\n\t\t\tobserver(pact);\n\t\t}\n\t}\n}\n\nexport function _isSettledPact(thenable) {\n\treturn thenable instanceof _Pact && thenable.s & 1;\n}\n\n// Converts argument to a function that always returns a Promise\nexport function _async(f) {\n\treturn function() {\n\t\tfor (var args = [], i = 0; i < arguments.length; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\t\ttry {\n\t\t\treturn Promise.resolve(f.apply(this, args));\n\t\t} catch(e) {\n\t\t\treturn Promise.reject(e);\n\t\t}\n\t}\n}\n\n// Awaits on a value that may or may not be a Promise (equivalent to the await keyword in ES2015, with continuations passed explicitly)\nexport function _await(value, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(value) : value;\n\t}\n\tif (!value || !value.then) {\n\t\tvalue = Promise.resolve(value);\n\t}\n\treturn then ? value.then(then) : value;\n}\n\n// Awaits on a value that may or may not be a Promise, then ignores it\nexport function _awaitIgnored(value, direct) {\n\tif (!direct) {\n\t\treturn value && value.then ? value.then(_empty) : Promise.resolve();\n\t}\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continue(value, then) {\n\treturn value && value.then ? value.then(then) : then(value);\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continueIgnored(value) {\n\tif (value && value.then) {\n\t\treturn value.then(_empty);\n\t}\n}\n\n// Asynchronously iterate through an object that has a length property, passing the index as the first argument to the callback (even as the length property changes)\nexport function _forTo(array, body, check) {\n\tvar i = -1, pact, reject;\n\tfunction _cycle(result) {\n\t\ttry {\n\t\t\twhile (++i < array.length && (!check || !check())) {\n\t\t\t\tresult = body(i);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pact) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t} else {\n\t\t\t\tpact = result;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t}\n\t}\n\t_cycle();\n\treturn pact;\n}\n\n// Asynchronously iterate through an object's properties (including properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forIn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tkeys.push(key);\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\n// Asynchronously iterate through an object's own properties (excluding properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forOwn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tif (Object.prototype.hasOwnProperty.call(target, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\nexport const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\"))) : \"@@iterator\";\n\n// Asynchronously iterate through an object's values\n// Uses for...of if the runtime supports it, otherwise iterates until length on a copy\nexport function _forOf(target, body, check) {\n\tif (typeof target[_iteratorSymbol] === \"function\") {\n\t\tvar iterator = target[_iteratorSymbol](), step, pact, reject;\n\t\tfunction _cycle(result) {\n\t\t\ttry {\n\t\t\t\twhile (!(step = iterator.next()).done && (!check || !check())) {\n\t\t\t\t\tresult = body(step.value);\n\t\t\t\t\tif (result && result.then) {\n\t\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pact) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t} else {\n\t\t\t\t\tpact = result;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t\t}\n\t\t}\n\t\t_cycle();\n\t\tif (iterator.return) {\n\t\t\tvar _fixup = function(value) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!step.done) {\n\t\t\t\t\t\titerator.return();\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (pact && pact.then) {\n\t\t\t\treturn pact.then(_fixup, function(e) {\n\t\t\t\t\tthrow _fixup(e);\n\t\t\t\t});\n\t\t\t}\n\t\t\t_fixup();\n\t\t}\n\t\treturn pact;\n\t}\n\t// No support for Symbol.iterator\n\tif (!(\"length\" in target)) {\n\t\tthrow new TypeError(\"Object is not iterable\");\n\t}\n\t// Handle live collections properly\n\tvar values = [];\n\tfor (var i = 0; i < target.length; i++) {\n\t\tvalues.push(target[i]);\n\t}\n\treturn _forTo(values, function(i) { return body(values[i]); }, check);\n}\n\nexport const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\"))) : \"@@asyncIterator\";\n\n// Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\nexport function _forAwaitOf(target, body, check) {\n\tif (typeof target[_asyncIteratorSymbol] === \"function\") {\n\t\tvar pact = new _Pact();\n\t\tvar iterator = target[_asyncIteratorSymbol]();\n\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\treturn pact;\n\t\tfunction _resumeAfterBody(result) {\n\t\t\tif (check && check()) {\n\t\t\t\treturn _settle(pact, 1, iterator.return ? iterator.return().then(function() { return result; }) : result);\n\t\t\t}\n\t\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\t}\n\t\tfunction _resumeAfterNext(step) {\n\t\t\tif (step.done) {\n\t\t\t\t_settle(pact, 1);\n\t\t\t} else {\n\t\t\t\tPromise.resolve(body(step.value)).then(_resumeAfterBody).then(void 0, _reject);\n\t\t\t}\n\t\t}\n\t\tfunction _reject(error) {\n\t\t\t_settle(pact, 2, iterator.return ? iterator.return().then(function() { return error; }) : error);\n\t\t}\n\t}\n\treturn Promise.resolve(_forOf(target, function(value) { return Promise.resolve(value).then(body); }, check));\n}\n\n// Asynchronously implement a generic for loop\nexport function _for(test, update, body) {\n\tvar stage;\n\tfor (;;) {\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t\tif (shouldContinue.then) {\n\t\t\tstage = 0;\n\t\t\tbreak;\n\t\t}\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.s;\n\t\t\t} else {\n\t\t\t\tstage = 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (update) {\n\t\t\tvar updateValue = update();\n\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\tstage = 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tvar pact = new _Pact();\n\tvar reject = _settle.bind(null, pact, 2);\n\t(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tdo {\n\t\t\tif (update) {\n\t\t\t\tupdateValue = update();\n\t\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\t\tupdateValue.then(_resumeAfterUpdate).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshouldContinue = test();\n\t\t\tif (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t}\n\t\t} while (!result || !result.then);\n\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterBody(result);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n\tfunction _resumeAfterUpdate() {\n\t\tif (shouldContinue = test()) {\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterTest(shouldContinue);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a do ... while loop\nexport function _do(body, test) {\n\tvar awaitBody;\n\tdo {\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t} else {\n\t\t\t\tawaitBody = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t} while (!shouldContinue.then);\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : shouldContinue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tfor (;;) {\n\t\t\tshouldContinue = test();\n\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t}\n\t\t\tif (!shouldContinue) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\tresult = result.v;\n\t\t\t\t} else {\n\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tdo {\n\t\t\t\tresult = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshouldContinue = test();\n\t\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t\t}\n\t\t\t\tif (!shouldContinue) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} while (!shouldContinue.then);\n\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a switch statement\nexport function _switch(discriminant, cases) {\n\tvar dispatchIndex = -1;\n\tvar awaitBody;\n\touter: {\n\t\tfor (var i = 0; i < cases.length; i++) {\n\t\t\tvar test = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvar testValue = test();\n\t\t\t\tif (testValue && testValue.then) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tif (testValue === discriminant) {\n\t\t\t\t\tdispatchIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Found the default case, set it as the pending dispatch case\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tif (dispatchIndex !== -1) {\n\t\t\tdo {\n\t\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\t\twhile (!body) {\n\t\t\t\t\tdispatchIndex++;\n\t\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t\t}\n\t\t\t\tvar result = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tawaitBody = true;\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\t\tdispatchIndex++;\n\t\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t\treturn result;\n\t\t}\n\t}\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterTest(value) {\n\t\tfor (;;) {\n\t\t\tif (value === discriminant) {\n\t\t\t\tdispatchIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (++i === cases.length) {\n\t\t\t\tif (dispatchIndex !== -1) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvalue = test();\n\t\t\t\tif (value && value.then) {\n\t\t\t\t\tvalue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tdo {\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tvar result = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tdispatchIndex++;\n\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterBody(result) {\n\t\tfor (;;) {\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tif (!fallthroughCheck || fallthroughCheck()) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdispatchIndex++;\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _call(body, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(body()) : body();\n\t}\n\ttry {\n\t\tvar result = Promise.resolve(body());\n\t\treturn then ? result.then(then) : result;\n\t} catch (e) {\n\t\treturn Promise.reject(e);\n\t}\n}\n\n// Asynchronously call a function and swallow the result\nexport function _callIgnored(body, direct) {\n\treturn _call(body, _empty, direct);\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _invoke(body, then) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(then);\n\t}\n\treturn then(result);\n}\n\n// Asynchronously call a function and swallow the result\nexport function _invokeIgnored(body) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(_empty);\n\t}\n}\n\n// Asynchronously call a function and send errors to recovery continuation\nexport function _catch(body, recover) {\n\ttry {\n\t\tvar result = body();\n\t} catch(e) {\n\t\treturn recover(e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(void 0, recover);\n\t}\n\treturn result;\n}\n\n// Asynchronously await a promise and pass the result to a finally continuation\nexport function _finallyRethrows(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer(true, e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n\t}\n\treturn finalizer(false, result);\n}\n\n// Asynchronously await a promise and invoke a finally continuation that always overrides the result\nexport function _finally(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer();\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer, finalizer);\n\t}\n\treturn finalizer();\n}\n\n// Rethrow or return a value from a finally continuation\nexport function _rethrow(thrown, value) {\n\tif (thrown)\n\t\tthrow value;\n\treturn value;\n}\n\n// Empty function to implement break and other control flow that ignores asynchronous results\nexport function _empty() {\n}\n\n// Sentinel value for early returns in generators \nexport const _earlyReturn = /*#__PURE__*/ {};\n\n// Asynchronously call a function and send errors to recovery continuation, skipping early returns\nexport function _catchInGenerator(body, recover) {\n\treturn _catch(body, function(e) {\n\t\tif (e === _earlyReturn) {\n\t\t\tthrow e;\n\t\t}\n\t\treturn recover(e);\n\t});\n}\n\n// Asynchronous generator class; accepts the entrypoint of the generator, to which it passes itself when the generator should start\nexport const _AsyncGenerator = /*#__PURE__*/(function() {\n\tfunction _AsyncGenerator(entry) {\n\t\tthis._entry = entry;\n\t\tthis._pact = null;\n\t\tthis._resolve = null;\n\t\tthis._return = null;\n\t\tthis._promise = null;\n\t}\n\n\tfunction _wrapReturnedValue(value) {\n\t\treturn { value: value, done: true };\n\t}\n\tfunction _wrapYieldedValue(value) {\n\t\treturn { value: value, done: false };\n\t}\n\n\t_AsyncGenerator.prototype._yield = function(value) {\n\t\t// Yield the value to the pending next call\n\t\tthis._resolve(value && value.then ? value.then(_wrapYieldedValue) : _wrapYieldedValue(value));\n\t\t// Return a pact for an upcoming next/return/throw call\n\t\treturn this._pact = new _Pact();\n\t};\n\t_AsyncGenerator.prototype.next = function(value) {\n\t\t// Advance the generator, starting it if it has yet to be started\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tconst _entry = _this._entry;\n\t\t\t\tif (_entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the next call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Start the generator\n\t\t\t\t_this._entry = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\tfunction returnValue(value) {\n\t\t\t\t\t_this._resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t_this._resolve = null;\n\t\t\t\t}\n\t\t\t\tvar result = _entry(_this);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tresult.then(returnValue, function(error) {\n\t\t\t\t\t\tif (error === _earlyReturn) {\n\t\t\t\t\t\t\treturnValue(_this._return);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst pact = new _Pact();\n\t\t\t\t\t\t\t_this._resolve(pact);\n\t\t\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t\t\t_this._resolve = null;\n\t\t\t\t\t\t\t_resolve(pact, 2, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturnValue(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Generator is started and a yield expression is pending, settle it\n\t\t\t\t_this._pact = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\t_settle(_pact, 1, value);\n\t\t\t}\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.return = function(value) {\n\t\t// Early return from the generator if started, otherwise abandons the generator\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the return call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return the specified value\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t}\n\t\t\t// Settle the yield expression with a rejected \"early return\" value\n\t\t\t_this._return = value;\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, _earlyReturn);\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.throw = function(error) {\n\t\t// Inject an exception into the pending yield expression\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve, reject) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the throw call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return a rejected Promise containing the error\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t\t// Settle the yield expression with the value as a rejection\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, error);\n\t\t});\n\t};\n\n\t_AsyncGenerator.prototype[_asyncIteratorSymbol] = function() {\n\t\treturn this;\n\t};\n\t\n\treturn _AsyncGenerator;\n})();\n","import Web3 from 'web3'\nimport NetworkInfo from '../models/NetworkInfo'\nimport networksData from '../data/networks.json'\nimport ProviderInfo, {\n EProvider,\n getProviderInfo,\n} from '../models/ProviderInfo'\nimport ConnectionStatus from '../models/Enums'\n\ndeclare global {\n interface Window {\n ethereum: any // FIXME: This should be properly typed as per metamask\n web3: Web3\n }\n}\n\nexport function getWeb3(\n provider: EProvider = EProvider.METAMASK,\n): Promise {\n return new Promise((resolve, reject) => {\n switch (provider) {\n // Injected Web3 wallet like MetaMask or Nifty\n case EProvider.NIFTY:\n case EProvider.METAMASK: {\n // New MetaMask\n if (window.ethereum) {\n const web3 = new Web3(window.ethereum)\n window.ethereum\n .enable()\n .then(() => resolve(web3))\n .catch(reject)\n } else if (window.web3) {\n // Older versions of MetaMask or other\n resolve(new Web3(window.web3.currentProvider))\n } else reject(new Error('No injected web3 found'))\n break\n }\n\n // Localhost\n case EProvider.LOCAL: {\n const localhostProvider = new Web3.providers.HttpProvider(\n \"'http://127.0.0.1:4444'\",\n )\n resolve(new Web3(localhostProvider))\n break\n }\n\n // Unknown & not implemented\n default: {\n reject(\n new Error(\n `Provider not implemented or unknown. Chosen provider ${provider}`,\n ),\n )\n break\n }\n }\n })\n}\n\nexport const getNetworkInfo = (\n networkId: number,\n chainId?: number,\n): NetworkInfo | undefined => networksData.find((n) => (chainId\n ? n.networkId === networkId && n.chainId === chainId\n : n.networkId === networkId)) as NetworkInfo\n\nexport const getNetworkInfoFromWeb3 = async (\n web3: Web3,\n): Promise => {\n // set networkId and chainId\n let networkId: number | undefined\n let chainId: number | undefined\n try {\n networkId = await web3.eth.net.getId()\n\n if (networkId) {\n chainId = await web3.eth.getChainId()\n }\n } catch (error) {}\n let networkInfo: NetworkInfo | undefined\n\n if (networkId) {\n try {\n networkInfo = getNetworkInfo(networkId, chainId)\n } catch (error) {}\n }\n return networkInfo\n}\n\nconst getWeb3Provider = (): any => {\n // New Metamask\n if (window.ethereum) return window.ethereum\n\n // Older versions of Metamask or other\n if (window.web3) return window.web3.currentProvider\n return undefined\n}\n\n/* eslint-disable complexity */\nexport const getAvailableProviders = (): ProviderInfo[] | undefined => {\n const result: ProviderInfo[] = []\n\n const currentProvider = getWeb3Provider()\n\n if (!currentProvider) return undefined\n\n if (currentProvider.isMetaMask) {\n // Nifty is also MetaMask\n result.push(\n currentProvider.isNiftyWallet\n ? getProviderInfo(EProvider.NIFTY)\n : getProviderInfo(EProvider.METAMASK),\n )\n }\n\n if (currentProvider.isTrust) result.push(getProviderInfo(EProvider.TRUST))\n\n if (currentProvider.isGoWallet) result.push(getProviderInfo(EProvider.GO_WALLET))\n\n if (currentProvider.isAlphaWallet) result.push(getProviderInfo(EProvider.ALPHA_WALLET))\n\n if (currentProvider.isStatus) result.push(getProviderInfo(EProvider.STATUS))\n\n if (currentProvider.isToshi) result.push(getProviderInfo(EProvider.COINBASE))\n\n // eslint-disable-next-line no-underscore-dangle\n if (typeof (window as any).__CIPHER__ !== 'undefined') result.push(getProviderInfo(EProvider.CIPHER))\n\n if (currentProvider.constructor.name === 'EthereumProvider') result.push(getProviderInfo(EProvider.MIST))\n\n if (currentProvider.constructor.name === 'Web3FrameProvider') result.push(getProviderInfo(EProvider.PARITY))\n\n if (currentProvider.host && currentProvider.host.indexOf('infura') !== -1) result.push(getProviderInfo(EProvider.INFURA))\n\n if (currentProvider.host && currentProvider.host.indexOf('localhost') !== -1) result.push(getProviderInfo(EProvider.LOCAL))\n\n return result\n}\n\nexport const getConnectionStatus = (\n web3?: Web3,\n requiredNetworkId?: number,\n currentNetworkId?: number,\n account?: string,\n): ConnectionStatus => {\n if (!web3) return ConnectionStatus.LoggedOut\n\n if (currentNetworkId !== requiredNetworkId) {\n return ConnectionStatus.WrongNetwork\n }\n\n if (account) {\n return ConnectionStatus.LoggedIn\n }\n return ConnectionStatus.WalletLocked\n}\n","import React, { FC, useState, useEffect } from 'react'\nimport Web3 from 'web3'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Popover from '@material-ui/core/Popover'\nimport Typography from '@material-ui/core/Typography'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport { shortenString } from '../../utils'\nimport { Button, NetworkIndicator } from '../atoms'\nimport { colors, fonts } from '../../theme'\nimport { AccountModal, WrongNetworkModal } from '../molecules'\nimport ConnectionStatus from '../../models/Enums'\nimport { getConnectionStatus } from '../../services/Web3Service'\nimport NetworkInfo from '../../models/NetworkInfo'\n\nexport interface AccountProps {\n requiredNetworkName: string\n setProvider?: (provider: EProvider) => Promise\n web3?: Web3\n networkInfo?: NetworkInfo\n account?: string\n availableProviders?: ProviderInfo[]\n requiredNetworkId?: number\n onCorrectNetworkMessage?: string\n onNetworkMismatchMessage?: string\n noNetworkMessage?: string\n modalInitiallyOpened?: boolean\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n accountText: {\n fontSize: fonts.size.tiny,\n textAlign: 'center',\n },\n button: {\n border: `1px solid ${colors.white}`,\n '&:hover': {\n border: `1px solid ${colors.transparent}`,\n },\n },\n networkIndicator: {\n marginRight: theme.spacing(1),\n },\n rightNetwork: {\n padding: theme.spacing(2),\n },\n}))\n\nconst Account: FC = (props) => {\n const {\n web3,\n networkInfo,\n account,\n setProvider,\n availableProviders,\n requiredNetworkId,\n onCorrectNetworkMessage,\n onNetworkMismatchMessage,\n noNetworkMessage,\n requiredNetworkName,\n modalInitiallyOpened = false,\n } = props\n const classes = useStyles()\n\n const [accountModalOpen, setAccountModalOpen] = useState(modalInitiallyOpened)\n const handleAccountModalClose = (): void => setAccountModalOpen(false)\n const handleAccountModalOpen = (): void => setAccountModalOpen(true)\n const [wrongNetModalOpen, setWrongNetModalOpen] = useState(false)\n const openWrongNetModal = (): void => setWrongNetModalOpen(true)\n const closeWrongNetModal = (): void => setWrongNetModalOpen(false)\n const connectionStatus: ConnectionStatus = getConnectionStatus(web3, requiredNetworkId, networkInfo?.networkId, account)\n\n // TODO: extract popover functionallity into new component\n const [anchorEl, setAnchorEl] = React.useState(null)\n\n const popoverOpen = Boolean(anchorEl)\n const id = popoverOpen ? 'right-net-popover' : undefined\n\n const handlePopoverClose = () => {\n setAnchorEl(null)\n }\n\n useEffect(() => {\n if (connectionStatus === ConnectionStatus.WrongNetwork) {\n openWrongNetModal()\n } else {\n closeWrongNetModal()\n handlePopoverClose()\n }\n }, [connectionStatus])\n\n const accountText = (): string => {\n if (connectionStatus === ConnectionStatus.LoggedOut) return 'Connect wallet'\n\n if (connectionStatus === ConnectionStatus.WrongNetwork) return 'Wrong Network'\n\n if (account) {\n // means connectionStatus === ConnectionStatus.LoggedIn\n return shortenString(account)\n }\n return 'Unlock your wallet'\n }\n\n const onAccountClicked = (event: React.MouseEvent): void | null => {\n if (connectionStatus === ConnectionStatus.WrongNetwork) return openWrongNetModal()\n\n if (connectionStatus === ConnectionStatus.LoggedOut) return handleAccountModalOpen()\n\n if (connectionStatus === ConnectionStatus.LoggedIn) return setAnchorEl(event.currentTarget)\n return null\n }\n\n return (\n \n \n {/* TODO: extract molecule */}\n \n \n {`You are successfully connected to ${networkInfo?.name}.`}\n \n \n \n \n \n )\n}\n\nexport default Account\n","import React, { FC } from 'react'\nimport {\n AppBar, Grid, ListItemIcon, Toolbar,\n} from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { NavLink } from 'react-router-dom'\nimport Typography from '@material-ui/core/Typography'\nimport { ActionHeaderItemProps, HeaderProps, NavItemProps } from './HeaderProps'\nimport { LogoNavbar } from '../../atoms'\nimport { colors, fonts, globalConstants } from '../../../theme'\nimport { removeEmptySpaces } from '../../../utils'\n\nconst useStyles = makeStyles((theme: Theme) => ({\n activeNavlink: {\n color: `${colors.white} !important`,\n fontWeight: fonts.weight.medium,\n },\n navLink: {\n alignItems: 'center',\n color: colors.white,\n display: 'flex',\n paddingLeft: theme.spacing(5),\n paddingRight: theme.spacing(5),\n textAlign: 'center',\n textDecoration: 'none',\n '&:hover': {\n color: colors.gray5,\n textDecoration: 'none',\n },\n },\n navLinkContainer: {\n display: 'flex',\n },\n root: {\n boxShadow: 'none',\n // this height needs to be equal to the marginTop of PageTemplate\n height: theme.spacing(globalConstants.headerHeight),\n },\n}))\n\nconst HeaderDesktop: FC = ({\n hreflogo, itemsStart, itemsEnd, login,\n}) => {\n const classes = useStyles()\n const Login = login\n\n return (\n \n \n \n \n \n \n \n \n \n {\n !!itemsStart?.length\n && itemsStart.map((navItem: NavItemProps) => (\n \n \n {navItem.title}\n \n \n ))\n }\n \n \n {\n !!itemsEnd?.length\n && itemsEnd.map(({ icon, ...rest }: ActionHeaderItemProps) => (\n \n {icon}\n \n ))\n }\n \n \n
\n \n
\n \n \n
\n
\n )\n}\n\nexport default HeaderDesktop\n","import React, { FC, useState } from 'react'\nimport {\n AppBar,\n Divider,\n Drawer, Toolbar,\n IconButton, List, ListItem,\n ListItemText, ListItemIcon, Grid,\n} from '@material-ui/core'\nimport { NavLink } from 'react-router-dom'\nimport MenuIcon from '@material-ui/icons/Menu'\nimport ChevronLeftIcon from '@material-ui/icons/ChevronLeft'\nimport { Theme, createStyles, makeStyles } from '@material-ui/core/styles'\nimport { ActionHeaderItemProps, HeaderProps, NavItemProps } from './HeaderProps'\nimport { colors, globalConstants } from '../../../theme'\nimport { LogoNavbar } from '../../atoms'\nimport { removeEmptySpaces } from '../../../utils'\n\nconst drawerWidth = 240\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n drawerHeader: {\n display: 'flex',\n alignItems: 'center',\n padding: theme.spacing(0, 1),\n // necessary for content to be below app bar\n ...theme.mixins.toolbar,\n justifyContent: 'flex-end',\n },\n drawerPaper: {\n width: drawerWidth,\n },\n mobileAppBar: {\n boxShadow: 'none',\n // this height needs to be equal to the marginTop of PageTemplate\n height: theme.spacing(globalConstants.headerHeight),\n transition: theme.transitions.create(['margin', 'width'], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n },\n mobileAppBarShift: {\n width: `calc(100% - ${drawerWidth}px)`,\n marginLeft: drawerWidth,\n transition: theme.transitions.create(['margin', 'width'], {\n easing: theme.transitions.easing.easeOut,\n duration: theme.transitions.duration.enteringScreen,\n }),\n },\n mobileNavLink: {\n alignItems: 'center',\n color: colors.gray4,\n display: 'flex',\n textDecoration: 'none',\n width: '100%',\n '&:hover': {\n color: colors.gray5,\n textDecoration: 'none',\n },\n },\n mobileNavLinkActive: {\n color: `${colors.primary} !important`,\n },\n}))\n\nconst HeaderMobile: FC = ({\n hreflogo, itemsStart, itemsEnd, login: Login,\n}) => {\n const classes = useStyles()\n const [open, setOpen] = useState(false)\n\n const toggleDrawer = (isOpen: boolean) => (\n event: React.KeyboardEvent | React.MouseEvent,\n ): void => {\n if (\n event.type === 'keydown'\n && ((event as React.KeyboardEvent).key === 'Tab'\n || (event as React.KeyboardEvent).key === 'Shift')\n ) {\n return\n }\n setOpen(isOpen)\n }\n\n return (\n \n \n \n {!open && (\n \n \n \n \n \n \n \n \n \n \n \n \n {\n !!itemsEnd?.length\n && itemsEnd.map(({ icon, ...rest }: ActionHeaderItemProps) => (\n \n {icon}\n \n ))\n }\n \n \n
\n \n
\n
\n \n )}\n
\n \n \n
\n \n \n \n
\n \n \n {\n !!itemsStart?.length\n && itemsStart.map((headerItem: NavItemProps) => (\n \n \n \n {headerItem.icon}\n \n \n \n \n ))\n }\n \n \n \n\n )\n}\n\nexport default HeaderMobile\n","import React, { FC } from 'react'\nimport Hidden from '@material-ui/core/Hidden'\nimport { HeaderProps } from './HeaderProps'\nimport HeaderDesktop from './HeaderDesktop'\nimport HeaderMobile from './HeaderMobile'\n\nconst Header: FC = (props) => (\n \n \n \n \n \n \n \n \n)\n\nexport default Header\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../../theme'\nimport { headerTongueImg } from '../../../assets/images'\n\nexport interface HeaderTongueProps {\n description: string\n titleLine1: string\n titleLine2: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n textContainer: {\n alignItems: 'center',\n backgroundColor: colors.primary,\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n },\n textContent: {\n color: colors.white,\n display: 'flex',\n flexDirection: 'column',\n textAlign: 'center',\n [theme.breakpoints.down('sm')]: {\n maxWidth: '90%',\n },\n [theme.breakpoints.up('md')]: {\n maxWidth: '65%',\n },\n [theme.breakpoints.up('xl')]: {\n maxWidth: '55%',\n },\n },\n titleContent: {\n marginBottom: theme.spacing(1),\n fontSize: theme.spacing(5),\n fontWeight: fonts.weight.regular,\n },\n tongueImg: {\n width: '100%',\n },\n}))\n\nconst HeaderTongue: FC = (\n { description, titleLine1, titleLine2 },\n) => {\n const classes = useStyles()\n\n return (\n \n
\n
\n \n {titleLine1}\n
\n {' '}\n {titleLine2}\n \n {description}\n
\n
\n \n
\n )\n}\n\nexport default HeaderTongue\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport FAQSection, { FAQSectionProps } from '../molecules/FAQSection'\nimport { colors } from '../../theme'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FAQPageTemplateProps {\n className?: string\n mainTitle: string\n questionsAndAnswers: FAQSectionProps[]\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n marginTop: theme.spacing(3),\n },\n container: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n [theme.breakpoints.up('md')]: {\n maxWidth: '80%',\n },\n },\n grayBackground: {\n backgroundColor: colors.gray1,\n },\n mainTitle: {\n fontSize: theme.typography.pxToRem(50),\n margin: theme.spacing(2, 0),\n },\n questionsSection: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n marginTop: theme.spacing(2),\n },\n}))\n\nconst FAQPageTemplate: FC = ({ className = '', mainTitle, questionsAndAnswers }) => {\n const classes = useStyles()\n return (\n
\n
\n {mainTitle}\n
\n {\n questionsAndAnswers.map((qAndA: FAQSectionProps, i) => (\n \n ))\n }\n
\n
\n
\n )\n}\n\nexport default FAQPageTemplate\n","import React, { FC, HTMLAttributes } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { globalConstants } from '../../theme'\n\nexport type PageTemplateProps = HTMLAttributes;\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n // as the header has fixed position, we need to match its height\n marginTop: theme.spacing(globalConstants.headerHeight),\n width: '100%',\n },\n}))\n\nconst PageTemplate: FC = ({ children, className = '', ...props }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default PageTemplate\n","import React, {\n Component, createContext, ReactNode,\n} from 'react'\nimport Web3 from 'web3'\nimport {\n getWeb3, getNetworkInfoFromWeb3, getAvailableProviders,\n} from '../services/Web3Service'\nimport NetworkInfo from '../models/NetworkInfo'\nimport ProviderInfo, { EProvider } from '../models/ProviderInfo'\n\nexport interface Web3ProviderProps {\n state: {\n provider?: EProvider\n web3?: Web3\n account?: string\n networkInfo?: NetworkInfo\n requiredNetworkId?: number\n }\n actions: {\n setProvider?: (\n provider: EProvider,\n onStateChanged?: (account?: string) => void\n ) => Promise\n onConnectedNetworkChange?: () => void\n onConnectedAccountChange?: () => void\n }\n requiredNetworkId?: number\n requiredChainId?: number\n availableProviders?: ProviderInfo[]\n}\n\nexport const defaultWeb3State: Web3ProviderState = {\n provider: undefined,\n web3: undefined,\n account: undefined,\n networkInfo: undefined,\n}\n\nexport const Web3Store = createContext({\n state: defaultWeb3State,\n actions: {\n setProvider: (): Promise => Promise.resolve(),\n onConnectedNetworkChange: (): any => 0,\n onConnectedAccountChange: (): any => 0,\n },\n requiredNetworkId: undefined,\n requiredChainId: undefined,\n})\n\ninterface Web3ProviderState {\n provider?: EProvider\n web3?: Web3\n account?: string\n networkInfo?: NetworkInfo\n}\n\nconst getAccountFromEthAccounts = (accounts: string[] | string): string | undefined => {\n let account: string\n\n if (Array.isArray(accounts)) [account] = accounts\n else account = accounts\n return account\n}\n\n/**\n * The provider will not read the account when a requiredNetworkId was provided\n * and it does not match the networkId of current networkInfo, same applies to\n * chainId. Nothing happens if the requiredNetworkId was not specified\n * @param requiredNetworkId given on the props of the provider\n * @param requiredChainId given on the props of the provider\n * @param networkInfo obtained from the wallet\n */\nconst shouldReadAccount = (\n requiredNetworkId?: number,\n requiredChainId?: number,\n networkInfo?: NetworkInfo,\n): boolean => {\n // the consumer did not provide enough information to validate the network, so we do not check\n if (!requiredNetworkId) return true\n\n if (requiredNetworkId === networkInfo?.networkId) {\n // only when chainId is provided we compare it\n if (requiredChainId) return requiredChainId === networkInfo?.chainId\n return true\n }\n return false\n}\n\nclass Web3Provider extends Component {\n private readonly requiredNetworkId?: number\n\n private readonly requiredChainId?: number\n\n private availableProviders?: ProviderInfo[]\n\n constructor(props: Web3ProviderProps) {\n super(props)\n this.state = defaultWeb3State\n this.requiredNetworkId = props.requiredNetworkId\n this.requiredChainId = props.requiredChainId\n this.onConnectedNetworkChange = props.actions.onConnectedNetworkChange\n this.onConnectedAccountChange = props.actions.onConnectedAccountChange\n this.setProvider = this.setProvider.bind(this)\n this.initialize()\n }\n\n private readonly onConnectedNetworkChange?: () => void\n\n private readonly onConnectedAccountChange?: () => void\n\n public async setProvider(provider: EProvider,\n onStateChanged?: (account?: string) => void): Promise {\n const web3 = await getWeb3(provider)\n const accounts = await web3.eth.getAccounts()\n const networkInfo = await getNetworkInfoFromWeb3(web3)\n // only validate requiredNetworkId and requiredChainId when are provided\n const shouldSetAccount = shouldReadAccount(this.requiredNetworkId, this.requiredChainId, networkInfo)\n\n const account = shouldSetAccount\n ? getAccountFromEthAccounts(accounts)\n : undefined\n\n this.setState(\n {\n web3,\n provider,\n account,\n networkInfo,\n },\n () => (onStateChanged && onStateChanged(account)),\n )\n }\n\n private initialize(): void {\n if (!window.ethereum) {\n return\n }\n this.availableProviders = getAvailableProviders()\n\n window.ethereum.autoRefreshOnNetworkChange = false\n // handle on networkChange\n window.ethereum.on('networkChanged', async (_netId) => {\n const { networkInfo } = this.state\n\n if (!networkInfo) return // wallet is not connected\n const { provider } = this.state\n const web3 = await getWeb3(provider)\n const accounts = await web3.eth.getAccounts()\n const newNetworkInfo = await getNetworkInfoFromWeb3(web3)\n\n // we do not want to set the account if we know it is the wrong network\n const shouldSetAccount = shouldReadAccount(\n this.requiredNetworkId,\n this.requiredChainId,\n newNetworkInfo,\n )\n const account = shouldSetAccount\n ? getAccountFromEthAccounts(accounts)\n : undefined\n\n this.setState(\n {\n networkInfo: newNetworkInfo,\n account,\n },\n () => this.onConnectedNetworkChange && this.onConnectedNetworkChange(),\n )\n })\n // handle on accountsChanged\n window.ethereum.on('accountsChanged', (accounts: string | string[]) => {\n const { networkInfo } = this.state\n\n if (!networkInfo) return // wallet is not connected\n // we only care about this change if it is on the right network\n // or if we can not validate the required network\n const shouldSetAccount = shouldReadAccount(\n this.requiredNetworkId, this.requiredChainId, networkInfo,\n )\n\n if (shouldSetAccount) {\n const account = getAccountFromEthAccounts(accounts)\n\n if (account) {\n this.setState({\n account,\n },\n () => this.onConnectedAccountChange\n && this.onConnectedAccountChange())\n }\n }\n })\n }\n\n public render(): ReactNode {\n const {\n provider,\n web3,\n account,\n networkInfo,\n } = this.state\n const {\n setProvider,\n onConnectedNetworkChange,\n onConnectedAccountChange,\n availableProviders,\n } = this\n\n const { children } = this.props\n\n return (\n \n {children}\n \n )\n }\n}\n\nexport default { Consumer: Web3Store.Consumer, Provider: Web3Provider }\n"],"names":["useStyles","makeStyles","block","width","noShadow","boxShadow","rounded","borderRadius","Button","className","shadow","children","rest","classes","React","MUIButton","trim","colors","black","primary","darkBlue","gray1","gray2","gray3","gray4","gray5","gray6","transparent","white","fonts","family","size","tiny","small","normal","medium","subtitleSmall","subtitleBig","weight","light","regular","bold","globalConstants","headerHeight","theme","createMuiTheme","palette","main","secondary","typography","fontFamily","button","textTransform","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","body1","fontWeight","props","overrides","MuiButton","root","MuiFormControlLabel","color","MuiSlider","rail","height","opacity","track","thumb","marginLeft","MuiTextField","createStyles","unCheckedIcon","checkedIcon","Checkbox","checked","isChecked","setIsChecked","useState","handleChange","event","newChecked","onChange","MUICheckbox","CheckBoxSharp","icon","CheckBoxOutlineBlankSharp","require","EProvider","getProviderInfo","eProvider","METAMASK","name","iconImg","metaMaskIconImg","NIFTY","niftyIconImg","LEDGER","TREZOR","TRUST","GO_WALLET","ALPHA_WALLET","STATUS","COINBASE","MIST","PARITY","INFURA","LOCAL","Error","padding","margin","content","display","alignItems","maxHeight","spacing","justifyContent","imageWrapper","marginRight","LoginOption","onClick","providerInfo","providerContent","src","alt","handleOnClick","window","open","variant","Tooltip","arrow","title","Logo","logoFullWhite","LogoNavbar","fontSize","pxToRem","selected","borderBottom","StyledNavTab","Tab","component","NavLink","disableRipple","defaultonCorrectNetworkMessage","deaulftonNetworkMismatchMessage","defaultNoNetworkMessage","NetworkStatus","getNetworkStatus","currentNetworkId","requiredNetworkId","NO_NETWORK","CORRECT_NETWORK","NETWORK_MISSMATCH","NetworkIndicator","iconClassName","onCorrectNetworkMessage","onNetworkMismatchMessage","noNetworkMessage","networkStatus","iconPerNetworkStatus","Map","set","WarningIcon","style","yellow","ErrorIcon","CheckCircleOutlineOutlinedIcon","green","get","paper","backgroundColor","background","border","shadows","left","minWidth","position","top","transform","Modal","MUIModal","ModalHeader","ModalTitle","Typography","borderTop","paddingTop","ModalFooter","ModalBody","overlay","zIndex","spinner","animation","WithSpinner","WrappedComponent","Spinner","isLoading","logoBlueIcon","heading","accordionSummary","Accordion","expanded","id","isExpanded","setIsExpanded","MUIAccordion","AccordionSummary","expandIcon","ExpandMoreIcon","AccordionDetails","AccountModal","setProvider","availableProviders","onClose","onProviderSet","Fragment","length","map","key","tooltipTitle","CopyTextTooltip","displayElement","fullText","isCopied","setIsCopied","tooltipContent","FileCopyIcon","interactive","navigator","clipboard","writeText","then","headingExpanded","headingCollapsed","panelDetails","answerContainer","breakpoints","up","maxWidth","answerText","FAQSection","initiallyExpanded","question","answer","RemoveIcon","AddIcon","LabeledCheckbox","labelText","labelClassName","FormControlLabel","label","control","FilterCheckboxCard","items","item","i","shortenString","str","largerThan","charsShownCount","substr","removeEmptySpaces","replace","maxSupportedNumber","minSupportedNumber","validatedNumber","num","flexDirection","footerLink","textDecoration","footerTitle","textAlign","FooterColumn","links","link","isExternal","href","to","toString","target","ModalDialogue","footer","input","paddingLeft","inputContainer","paddingRight","units","unitsContainer","alignSelf","UnitsInput","maxValue","minValue","value","step","handleOnBlur","handleOnChange","Grid","container","xs","Input","onBlur","type","fullWidth","inputProps","min","max","inputsContainer","toContainer","RangeSliderWithInputs","values","start","startValue","end","endValue","unit","handleStartInputChange","newStartValue","Number","handleEndInputChange","newEndValue","handleSliderChange","_","newSliderValue","handleStartValueBlur","handleEndValueBlur","getCommonInputValues","Slider","ShortenTextTooltip","maxLength","indicator","StyledTabs","Tabs","a11yProps","index","minHeight","overflow","tabContainer","tab","outlineStyle","tabIndicator","tabSelected","SwitchTabs","label1","label2","controlledValue","newValue","MUITabs","TabIndicatorProps","MUITab","TooltipIconButton","iconButtonProps","IconButton","boxContainer","marginTop","loaderContainer","WrongNetworkModal","currentNetworkName","requiredNetworkName","gutterBottom","align","Box","sm","CircularProgress","copyright","copyrightContent","footerContainer","paddingBottom","footerContent","linksColumn","marginBottom","logoColumn","tongue","borderTopLeftRadius","borderTopRightRadius","Footer","copyrightText","linksColumns","direction","md","lg","logoBlackAndBlue","linkColumn","ConnectionStatus","getWeb3","provider","Promise","resolve","reject","ethereum","web3","Web3","enable","catch","currentProvider","localhostProvider","providers","HttpProvider","getNetworkInfo","networkId","chainId","networksData","find","n","getNetworkInfoFromWeb3","networkInfo","error","eth","net","getId","getChainId","getWeb3Provider","undefined","getAvailableProviders","result","isMetaMask","push","isNiftyWallet","isTrust","isGoWallet","isAlphaWallet","isStatus","isToshi","__CIPHER__","CIPHER","constructor","host","indexOf","getConnectionStatus","account","LoggedOut","WrongNetwork","LoggedIn","WalletLocked","accountText","networkIndicator","rightNetwork","Account","modalInitiallyOpened","accountModalOpen","setAccountModalOpen","handleAccountModalClose","handleAccountModalOpen","wrongNetModalOpen","setWrongNetModalOpen","openWrongNetModal","closeWrongNetModal","connectionStatus","anchorEl","setAnchorEl","popoverOpen","Boolean","handlePopoverClose","useEffect","onAccountClicked","currentTarget","Popover","anchorOrigin","vertical","horizontal","transformOrigin","activeNavlink","navLink","navLinkContainer","HeaderDesktop","hreflogo","itemsStart","itemsEnd","login","Login","AppBar","Toolbar","xl","justify","navItem","activeClassName","alignContent","ListItemIcon","drawerWidth","drawerHeader","mixins","toolbar","drawerPaper","mobileAppBar","transition","transitions","create","easing","sharp","duration","leavingScreen","mobileAppBarShift","easeOut","enteringScreen","mobileNavLink","mobileNavLinkActive","HeaderMobile","setOpen","toggleDrawer","isOpen","role","onKeyDown","MenuIcon","Drawer","anchor","ChevronLeftIcon","Divider","List","headerItem","ListItem","ListItemText","Header","Hidden","smDown","mdUp","textContainer","textContent","down","titleContent","tongueImg","HeaderTongue","description","titleLine1","titleLine2","headerTongueImg","grayBackground","mainTitle","questionsSection","FAQPageTemplate","questionsAndAnswers","qAndA","PageTemplate","defaultWeb3State","Web3Store","createContext","state","actions","onConnectedNetworkChange","onConnectedAccountChange","requiredChainId","getAccountFromEthAccounts","accounts","Array","isArray","shouldReadAccount","Web3Provider","Component","bind","initialize","onStateChanged","getAccounts","shouldSetAccount","setState","autoRefreshOnNetworkChange","on","_netId","newNetworkInfo","render","Provider","Consumer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,MAAMA,SAAS,GAAGC,iBAAU,CAAC,OAAO;AAClCC,EAAAA,KAAK,EAAE;AACLC,IAAAA,KAAK,EAAE;AADF,GAD2B;AAIlCC,EAAAA,QAAQ,EAAE;AACRC,IAAAA,SAAS,EAAE;AADH,GAJwB;AAOlCC,EAAAA,OAAO,EAAE;AACPC,IAAAA,YAAY,EAAE;AADP;AAPyB,CAAP,CAAD,CAA5B;;AAYA,MAAMC,MAAM,GAAoB,CAAC;AAC/BC,EAAAA,SAAS,GAAG,EADmB;AACfP,EAAAA,KADe;AACRQ,EAAAA,MADQ;AACAJ,EAAAA,OADA;AACSK,EAAAA,QADT;AACmB,KAAGC;AADtB,CAAD;AAG9B,QAAMC,OAAO,GAAGb,SAAS,EAAzB;AAEA,SACEc,4BAAA,CAACC,WAAD;AACEN,IAAAA,SAAS,KACJH,OAAO,GAAGO,OAAO,CAACP,OAAX,GAAqB;UAC7BI,MAAM,GAAG,EAAH,GAAQG,OAAO,CAACT;UACtBF,KAAK,GAAGW,OAAO,CAACX,KAAX,GAAmB,MAAMO,WAFhC,CAE4CO,IAF5C;KAIEJ,KANN,EAQGD,QARH,CADF;AAYD,CAjBD;;MCnBaM,MAAM,GAAG;AACpBC,EAAAA,KAAK,EAAE,SADa;AAEpBC,EAAAA,OAAO,EAAE,SAFW;AAGpBC,EAAAA,QAAQ,EAAE,SAHU;AAIpBC,EAAAA,KAAK,EAAE,SAJa;AAKpBC,EAAAA,KAAK,EAAE,SALa;AAMpBC,EAAAA,KAAK,EAAE,SANa;AAOpBC,EAAAA,KAAK,EAAE,SAPa;AAQpBC,EAAAA,KAAK,EAAE,SARa;AASpBC,EAAAA,KAAK,EAAE,SATa;AAUpBC,EAAAA,WAAW,EAAE,WAVO;AAWpBC,EAAAA,KAAK,EAAE;AAXa,CAAf;AAcP,MAAaC,KAAK,GAAG;AACnBC,EAAAA,MAAM,EAAE,OADW;AAEnBC,EAAAA,IAAI,EAAE;AACJC,IAAAA,IAAI,EAAE,EADF;AAEJC,IAAAA,KAAK,EAAE,EAFH;AAGJC,IAAAA,MAAM,EAAE,EAHJ;AAIJC,IAAAA,MAAM,EAAE,EAJJ;AAKJC,IAAAA,aAAa,EAAE,EALX;AAMJC,IAAAA,WAAW,EAAE;AANT,GAFa;AAUnBC,EAAAA,MAAM,EAAE;AACNC,IAAAA,KAAK,EAAE,GADD;AAENC,IAAAA,OAAO,EAAE,GAFH;AAGNL,IAAAA,MAAM,EAAE,GAHF;AAINM,IAAAA,IAAI,EAAE;AAJA;AAVW,CAAd;AAkBP,MAAaC,eAAe,GAAG;AAC7BC,EAAAA,YAAY,EAAE;AADe,CAAxB;AAIP,MAAMC,KAAK,GAAGC,qBAAc,CAAC;AAC3BC,EAAAA,OAAO,EAAE;AACP3B,IAAAA,OAAO,EAAE;AACP4B,MAAAA,IAAI,EAAE9B,MAAM,CAACE;AADN,KADF;AAIP6B,IAAAA,SAAS,EAAE;AACTD,MAAAA,IAAI,EAAE9B,MAAM,CAACO;AADJ;AAJJ,GADkB;AAS3ByB,EAAAA,UAAU,EAAE;AACVC,IAAAA,UAAU,EAAErB,KAAK,CAACC,MADR;AAEVqB,IAAAA,MAAM,EAAE;AACNC,MAAAA,aAAa,EAAE;AADT,KAFE;AAKVC,IAAAA,eAAe,EAAExB,KAAK,CAACS,MAAN,CAAaC,KALpB;AAMVe,IAAAA,iBAAiB,EAAEzB,KAAK,CAACS,MAAN,CAAaE,OANtB;AAOVe,IAAAA,gBAAgB,EAAE1B,KAAK,CAACS,MAAN,CAAaH,MAPrB;AAQVqB,IAAAA,cAAc,EAAE3B,KAAK,CAACS,MAAN,CAAaG,IARnB;AASVgB,IAAAA,KAAK,EAAE;AACLC,MAAAA,UAAU,EAAE7B,KAAK,CAACS,MAAN,CAAaC;AADpB;AATG,GATe;AAsB3BoB,EAAAA,KAAK,EAAE,EAtBoB;AAuB3BC,EAAAA,SAAS,EAAE;AACTC,IAAAA,SAAS,EAAE;AACTC,MAAAA,IAAI,EAAE;AACJJ,QAAAA,UAAU,EAAE7B,KAAK,CAACS,MAAN,CAAaC;AADrB;AADG,KADF;AAMTwB,IAAAA,mBAAmB,EAAE;AACnBD,MAAAA,IAAI,EAAE;AACJE,QAAAA,KAAK,EAAE/C,MAAM,CAACM;AADV;AADa,KANZ;AAWT0C,IAAAA,SAAS,EAAE;AACTC,MAAAA,IAAI,EAAE;AACJF,QAAAA,KAAK,EAAE/C,MAAM,CAACM,KADV;AAEJ4C,QAAAA,MAAM,EAAE,CAFJ;AAGJC,QAAAA,OAAO,EAAE;AAHL,OADG;AAMTN,MAAAA,IAAI,EAAE;AACJ3D,QAAAA,KAAK,EAAE,MADH;AAEJ6D,QAAAA,KAAK,EAAE/C,MAAM,CAACE,OAFV;AAGJgD,QAAAA,MAAM,EAAE;AAHJ,OANG;AAWTE,MAAAA,KAAK,EAAE;AACLF,QAAAA,MAAM,EAAE;AADH,OAXE;AAcTG,MAAAA,KAAK,EAAE;AACLC,QAAAA,UAAU,EAAE,CAAC,CADR;AAELJ,QAAAA,MAAM,EAAE,EAFH;AAGLhE,QAAAA,KAAK,EAAE;AAHF;AAdE,KAXF;AA+BTqE,IAAAA,YAAY,EAAE;AACZV,MAAAA,IAAI,EAAE;AACJE,QAAAA,KAAK,EAAE/C,MAAM,CAACM,KADV;AAEJ,mBAAW;AACTyC,UAAAA,KAAK,EAAE/C,MAAM,CAACK;AADL;AAFP;AADM;AA/BL;AAvBgB,CAAD,CAA5B;;AC3BA,MAAMtB,WAAS,GAAGC,eAAU,CAAC,MAAMwE,iBAAY,CAAC;AAC9CC,EAAAA,aAAa,EAAE;AACbV,IAAAA,KAAK,EAAE/C,MAAM,CAACO;AADD,GAD+B;AAI9CmD,EAAAA,WAAW,EAAE;AACXX,IAAAA,KAAK,EAAE/C,MAAM,CAACE;AADH;AAJiC,CAAD,CAAnB,CAA5B;;AASA,MAAMyD,QAAQ,GAAuBjB,KAAD;AAClC,QAAM9C,OAAO,GAAGb,WAAS,EAAzB;AACA,QAAM;AAAE6E,IAAAA;AAAF,MAAclB,KAApB;AACA,QAAM,CAACmB,SAAD,EAAYC,YAAZ,IAA4BC,cAAQ,CAAC,CAAC,CAACH,OAAH,CAA1C;;AAEA,QAAMI,YAAY,GAAG,CAACC,KAAD,EACnBC,UADmB;AAEnBJ,IAAAA,YAAY,CAACI,UAAD,CAAZ;AACA,UAAM;AAAEC,MAAAA;AAAF,QAAezB,KAArB;AAEA,QAAIyB,QAAJ,EAAcA,QAAQ,CAACF,KAAD,EAAQC,UAAR,CAAR;AACf,GAND;;AAQA,SACErE,4BAAA,CAACuE,aAAD;AACEV,IAAAA,WAAW,EACT7D,4BAAA,CAACwE,mBAAD;AAAe7E,MAAAA,SAAS,EAAEI,OAAO,CAAC8D;KAAlC;AAEFY,IAAAA,IAAI,EACFzE,4BAAA,CAAC0E,+BAAD;AAA2B/E,MAAAA,SAAS,EAAEI,OAAO,CAAC6D;KAA9C;KAEEf;AACJkB,IAAAA,OAAO,EAAEC;AACTM,IAAAA,QAAQ,EAAEH;IATZ,CADF;AAaD,CA1BD;;;;;;;;;;;;;;ACpBA,mBAAeQ,OAAO,CAAC,sBAAD,CAAtB;;ACAA,aAAeA,OAAO,CAAC,uBAAD,CAAtB;;ACAA,aAAeA,OAAO,CAAC,uBAAD,CAAtB;;ACAA,aAAeA,OAAO,CAAC,uBAAD,CAAtB;;ACAA,aAAeA,OAAO,CAAC,uBAAD,CAAtB;;ACAA,aAAeA,OAAO,CAAC,uBAAD,CAAtB;;ACAA,aAAeA,OAAO,CAAC,uBAAD,CAAtB;;;;;;;;;;;;ACOA,IAAYC,SAAZ;;AAAA,WAAYA;AACVA,EAAAA,qBAAA,aAAA;AACAA,EAAAA,kBAAA,UAAA;AACAA,EAAAA,mBAAA,WAAA;AACAA,EAAAA,mBAAA,WAAA;AACAA,EAAAA,kBAAA,UAAA;AACAA,EAAAA,kBAAA,cAAA;AACAA,EAAAA,sBAAA,aAAA;AACAA,EAAAA,yBAAA,gBAAA;AACAA,EAAAA,mBAAA,WAAA;AACAA,EAAAA,mBAAA,WAAA;AACAA,EAAAA,qBAAA,aAAA;AACAA,EAAAA,iBAAA,SAAA;AACAA,EAAAA,mBAAA,WAAA;AACAA,EAAAA,mBAAA,WAAA;AACD,CAfD,EAAYA,SAAS,KAATA,SAAS,KAAA,CAArB;;AAiBA,AAAO,MAAMC,eAAe,GAAIC,SAAD;AAC7B,UAAQA,SAAR;AACE,SAAKF,SAAS,CAACG,QAAf;AACE,aAAO;AACLC,QAAAA,IAAI,EAAE,UADD;AAELF,QAAAA,SAFK;AAGLG,QAAAA,OAAO,EAAEC;AAHJ,OAAP;;AAKF,SAAKN,SAAS,CAACO,KAAf;AACE,aAAO;AACLH,QAAAA,IAAI,EAAE,OADD;AAELF,QAAAA,SAFK;AAGLG,QAAAA,OAAO,EAAEG;AAHJ,OAAP;;AAKF,SAAKR,SAAS,CAACS,MAAf;AACE,aAAO;AACLL,QAAAA,IAAI,EAAE,QADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACU,MAAf;AACE,aAAO;AACLN,QAAAA,IAAI,EAAE,QADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACW,KAAf;AACE,aAAO;AACLP,QAAAA,IAAI,EAAE,OADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACY,SAAf;AACE,aAAO;AACLR,QAAAA,IAAI,EAAE,WADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACa,YAAf;AACE,aAAO;AACLT,QAAAA,IAAI,EAAE,cADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACc,MAAf;AACE,aAAO;AACLV,QAAAA,IAAI,EAAE,QADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACe,QAAf;AACE,aAAO;AACLX,QAAAA,IAAI,EAAE,UADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACgB,IAAf;AACE,aAAO;AACLZ,QAAAA,IAAI,EAAE,MADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACiB,MAAf;AACE,aAAO;AACLb,QAAAA,IAAI,EAAE,QADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACkB,MAAf;AACE,aAAO;AACLd,QAAAA,IAAI,EAAE,QADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACmB,KAAf;AACE,aAAO;AACLf,QAAAA,IAAI,EAAE,WADD;AAELF,QAAAA;AAFK,OAAP;;AAIF;AAAS;AACP,cAAM,IAAIkB,KAAJ,0DACqDlB,WADrD,CAAN;AAGD;AAxEH;AA0ED,CA3EM;;ACbP,MAAM5F,WAAS,GAAGC,eAAU,CAAE2C,KAAD,KAAmB;AAC9CkB,EAAAA,IAAI,EAAE;AACJiD,IAAAA,OAAO,EAAE,CADL;AAEJC,IAAAA,MAAM,EAAE,CAFJ;AAGJ7G,IAAAA,KAAK,EAAE;AAHH,GADwC;AAM9C8G,EAAAA,OAAO,EAAE;AACPC,IAAAA,OAAO,EAAE,MADF;AAEPC,IAAAA,UAAU,EAAE,QAFL;AAGPhH,IAAAA,KAAK,EAAE,MAHA;AAIPiH,IAAAA,SAAS,EAAExE,KAAK,CAACyE,OAAN,CAAc,CAAd,CAJJ;AAKPC,IAAAA,cAAc,EAAE;AALT,GANqC;AAa9CC,EAAAA,YAAY,EAAE;AACZH,IAAAA,SAAS,EAAExE,KAAK,CAACyE,OAAN,CAAc,CAAd,CADC;AAEZG,IAAAA,WAAW,EAAE5E,KAAK,CAACyE,OAAN,CAAc,CAAd;AAFD;AAbgC,CAAnB,CAAD,CAA5B;;AAuBA,MAAMI,WAAW,GAAyB,CAAC;AACzChH,EAAAA,SAAS,GAAG,EAD6B;AAEzCiH,EAAAA,OAFyC;AAGzCC,EAAAA,YAHyC;AAIzC,KAAG/G;AAJsC,CAAD;AAMxC,QAAMC,OAAO,GAAGb,WAAS,EAAzB;AAEA,QAAM4H,eAAe,GACnB9G,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACoG;GAAxB,EAEI,CAAAU,YAAY,SAAZ,IAAAA,YAAY,WAAZ,YAAAA,YAAY,CAAE5B,OAAd,KAEEjF,4BAAA,MAAA;AACEL,IAAAA,SAAS,EAAEI,OAAO,CAAC0G;AACnBM,IAAAA,GAAG,EAAEF,YAAF,aAAEA,YAAF,uBAAEA,YAAY,CAAE5B;AACnB+B,IAAAA,GAAG,KAAKH,YAAH,aAAGA,YAAH,uBAAGA,YAAY,CAAE7B;GAHxB,CAJN,EAWG6B,YAXH,aAWGA,YAXH,uBAWGA,YAAY,CAAE7B,IAXjB,CADF;;AAgBA,QAAMiC,aAAa,GAAG;AACpB,QAAIL,OAAJ,EAAa;AACX,aAAOA,OAAO,EAAd;AACD;;AACD,WAAOM,MAAM,CAACC,IAAP,CAAY,gEAAZ,EAA8E,QAA9E,CAAP;AACD,GALD;;AAOA,SACEnH,4BAAA,CAACN,MAAD;AACEC,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD;AAC9BP,IAAAA,KAAK;AACLI,IAAAA,OAAO;AACP4H,IAAAA,OAAO,EAAC;AACRlE,IAAAA,KAAK,EAAC;AACN0D,IAAAA,OAAO,EAAEK;KACLnH,KAPN,EAUG,CAAC,CAAC+G,YAAF,IAAkBA,YAAY,CAAC/B,SAAb,KAA2BF,SAAS,CAACO,KAAvD,IAECnF,4BAAA,CAACqH,YAAD;AAASC,IAAAA,KAAK;AAACC,IAAAA,KAAK,EAAC;GAArB,EACGT,eADH,CAZJ,EAgBG,CAAC,CAACD,YAAF,IAAkBA,YAAY,CAAC/B,SAAb,KAA2BF,SAAS,CAACO,KAAvD,IACI2B,eAjBP,EAkBG,CAACD,YAAD,IAEC7G,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACoG;GAAxB,EACEnG,4BAAA,MAAA;AACEL,IAAAA,SAAS,EAAEI,OAAO,CAAC0G;AACnBM,IAAAA,GAAG,EAAE3B;AACL4B,IAAAA,GAAG,EAAC;GAHN,CADF,wBAAA,CApBJ,CADF;AAgCD,CA/DD;;AChCA,MAAMQ,IAAI,GAAkD,CAC1D;AAAER,EAAAA,GAAG,GAAG,aAAR;AAAuB,KAAGlH;AAA1B,CAD0D,KAEvDE,4BAAA,MAAA;AAAK+G,EAAAA,GAAG,EAAEU;AAAeT,EAAAA,GAAG,EAAEA;GAASlH,KAAvC,CAFL;;ACMA,MAAM4H,UAAU,GAAkB,CAAC;AAAEV,EAAAA,GAAG,GAAG,aAAR;AAAuB3D,EAAAA,MAAM,GAAG,MAAhC;AAAwC,KAAGvD;AAA3C,CAAD,KAChCE,4BAAA,MAAA;AACE+G,EAAAA,GAAG,EAAEU;AACLT,EAAAA,GAAG,EAAEA;AACL3D,EAAAA,MAAM,EAAEA;GACJvD,KAJN,CADF;;ACGA,MAAMZ,WAAS,GAAGC,iBAAU,CAAE2C,KAAD,KAAmB;AAC9CkB,EAAAA,IAAI,EAAE;AACJV,IAAAA,aAAa,EAAE,MADX;AAEJY,IAAAA,KAAK,EAAE/C,MAAM,CAACQ,KAFV;AAGJiC,IAAAA,UAAU,EAAEd,KAAK,CAACK,UAAN,CAAiBK,iBAHzB;AAIJmF,IAAAA,QAAQ,EAAE7F,KAAK,CAACK,UAAN,CAAiByF,OAAjB,CAAyB,EAAzB,CAJN;AAKJlB,IAAAA,WAAW,EAAE5E,KAAK,CAACyE,OAAN,CAAc,CAAd,CALT;AAMJ,eAAW;AACTjD,MAAAA,OAAO,EAAE;AADA;AANP,GADwC;AAW9CuE,EAAAA,QAAQ,EAAE;AACRjF,IAAAA,UAAU,EAAEd,KAAK,CAACK,UAAN,CAAiBM,gBADrB;AAERqF,IAAAA,YAAY,EAAE;AAFN;AAXoC,CAAnB,CAAD,CAA5B;;AAiBA,MAAMC,YAAY,GAA2BlF,KAAD;AAC1C,QAAM9C,OAAO,GAAGb,WAAS,EAAzB;AACA,SAAOc,4BAAA,CAACgI,GAAD;AAAKjI,IAAAA,OAAO,EAAEA;AAASkI,IAAAA,SAAS,EAAEC;AAASC,IAAAA,aAAa;KAAKtF,MAA7D,CAAP;AACD,CAHD;;ACbA,MAAMuF,8BAA8B,GAAG,8BAAvC;AACA,MAAMC,+BAA+B,GAAG,8BAAxC;AACA,MAAMC,uBAAuB,GAAG,sCAAhC;AAEA,AAAA,IAAYC,aAAZ;;AAAA,WAAYA;AACVA,EAAAA,8CAAA,eAAA;AACAA,EAAAA,qDAAA,sBAAA;AACAA,EAAAA,mDAAA,oBAAA;AACD,CAJD,EAAYA,aAAa,KAAbA,aAAa,KAAA,CAAzB;;AAMA,MAAMC,gBAAgB,GAAG,CAACC,gBAAD,EAAmBC,iBAAnB;AACvB,MAAI,CAACD,gBAAL,EAAuB,OAAOF,aAAa,CAACI,UAArB;AAEvB,MAAIF,gBAAgB,KAAKC,iBAAzB,EAA4C,OAAOH,aAAa,CAACK,eAArB;AAC5C,SAAOL,aAAa,CAACM,iBAArB;AACD,CALD;;AAOA,MAAMC,gBAAgB,GAA8B,CAAC;AACnDC,EAAAA,aAAa,GAAG,EADmC;AAEnDN,EAAAA,gBAFmD;AAEjCC,EAAAA,iBAFiC;AAEdM,EAAAA,uBAFc;AAGnDC,EAAAA,wBAHmD;AAGzBC,EAAAA;AAHyB,CAAD;AAKlD,QAAMC,aAAa,GAAGX,gBAAgB,CAACC,gBAAD,EAAmBC,iBAAnB,CAAtC;AAEA,QAAMU,oBAAoB,GAAG,IAAIC,GAAJ,EAA7B;AACAD,EAAAA,oBAAoB,CAACE,GAArB,CAAyBf,aAAa,CAACI,UAAvC,EACE3I,4BAAA,CAACqH,OAAD;AAASE,IAAAA,KAAK,EAAE2B,gBAAgB,IAAIZ;GAApC,EACEtI,4BAAA,CAACuJ,WAAD;AAAa5J,IAAAA,SAAS,EAAEoJ;AAAeS,IAAAA,KAAK,EAAE;AAAEtG,MAAAA,KAAK,EAAEuG,eAAM,CAAC,GAAD;AAAf;GAA9C,CADF,CADF;AAKAL,EAAAA,oBAAoB,CAACE,GAArB,CAAyBf,aAAa,CAACM,iBAAvC,EACE7I,4BAAA,CAACqH,OAAD;AAASE,IAAAA,KAAK,EAAE0B,wBAAwB,IAAIZ;GAA5C,EACErI,4BAAA,CAAC0J,SAAD;AAAW/J,IAAAA,SAAS,EAAEoJ;AAAe7F,IAAAA,KAAK,EAAC;GAA3C,CADF,CADF;AAKAkG,EAAAA,oBAAoB,CAACE,GAArB,CAAyBf,aAAa,CAACK,eAAvC,EACE5I,4BAAA,CAACqH,OAAD;AAASE,IAAAA,KAAK,EAAEyB,uBAAuB,IAAIZ;GAA3C,EACEpI,4BAAA,CAAC2J,8BAAD;AACEhK,IAAAA,SAAS,EAAEoJ;AACXS,IAAAA,KAAK,EAAE;AAAEtG,MAAAA,KAAK,EAAE0G,cAAK,CAAC,GAAD;AAAd;GAFT,CADF,CADF;AASA,SACER,oBAAoB,CAACS,GAArB,CAAyBV,aAAzB,CADF;AAGD,CA9BD;;AC1BA,MAAMjK,WAAS,GAAGC,iBAAU,CAAE2C,KAAD,KAAmB;AAC9CgI,EAAAA,KAAK,EAAE;AACLC,IAAAA,eAAe,EAAEjI,KAAK,CAACE,OAAN,CAAcgI,UAAd,CAAyBF,KADrC;AAELG,IAAAA,MAAM,eAAe9J,MAAM,CAACE,SAFvB;AAGLd,IAAAA,SAAS,EAAEuC,KAAK,CAACoI,OAAN,CAAc,CAAd,CAHN;AAILC,IAAAA,IAAI,EAAE,KAJD;AAKLC,IAAAA,QAAQ,EAAE,GALL;AAMLnE,IAAAA,OAAO,EAAEnE,KAAK,CAACyE,OAAN,CAAc,CAAd,EAAiB,CAAjB,EAAoB,CAApB,CANJ;AAOL8D,IAAAA,QAAQ,EAAE,UAPL;AAQLC,IAAAA,GAAG,EAAE,KARA;AASLC,IAAAA,SAAS,EAAE;AATN;AADuC,CAAnB,CAAD,CAA5B;;AAcA,MAAMC,KAAK,GAAmB,CAAC;AAAE3K,EAAAA,QAAF;AAAY,KAAGC;AAAf,CAAD;AAC5B,QAAMC,OAAO,GAAGb,WAAS,EAAzB;AAEA,SACEc,4BAAA,CAACyK,UAAD,oBAAc3K,KAAd,EACEE,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAAC+J;GAAxB,EACGjK,QADH,CADF,CADF;AAOD,CAVD;;ACbA,MAAMX,WAAS,GAAGC,iBAAU,CAAC,OAAO;AAClC6D,EAAAA,IAAI,EAAE;AACJ8E,IAAAA,YAAY,eAAe3H,MAAM,CAACK,OAD9B;AAEJ0C,IAAAA,KAAK,EAAE/C,MAAM,CAACE,OAFV;AAGJ+F,IAAAA,OAAO,EAAE,MAHL;AAIJI,IAAAA,cAAc,EAAE,QAJZ;AAKJnH,IAAAA,KAAK,EAAE;AALH;AAD4B,CAAP,CAAD,CAA5B;;AAUA,MAAMqL,WAAW,GAAyB,CAAC;AAAE7K,EAAAA,QAAF;AAAYF,EAAAA,SAAS,GAAG;AAAxB,CAAD;AACxC,QAAMI,OAAO,GAAGb,WAAS,EAAzB;AAEA,SACEc,4BAAA,MAAA;AAAKL,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD,WAAnB,CAA+BO,IAA/B;GAAhB,EACGL,QADH,CADF;AAKD,CARD;;ACXA,MAAM8K,UAAU,GAAwB,CAAC;AAAE9K,EAAAA,QAAF;AAAY,KAAGC;AAAf,CAAD,KACtCE,4BAAA,CAAC4K,UAAD;AAAYxD,EAAAA,OAAO,EAAC;GAAStH,KAA7B,EACGD,QADH,CADF;;ACCA,MAAMX,WAAS,GAAGC,iBAAU,CAAE2C,KAAD,KAAmB;AAC9CkB,EAAAA,IAAI,EAAE;AACJ6H,IAAAA,SAAS,eAAe1K,MAAM,CAACK,OAD3B;AAEJ4F,IAAAA,OAAO,EAAE,MAFL;AAGJI,IAAAA,cAAc,EAAE,QAHZ;AAIJsE,IAAAA,UAAU,EAAEhJ,KAAK,CAACyE,OAAN,CAAc,CAAd,CAJR;AAKJlH,IAAAA,KAAK,EAAE;AALH;AADwC,CAAnB,CAAD,CAA5B;;AAUA,MAAM0L,WAAW,GAAyB,CAAC;AAAElL,EAAAA,QAAF;AAAYF,EAAAA,SAAS,GAAG;AAAxB,CAAD;AACxC,QAAMI,OAAO,GAAGb,WAAS,EAAzB;AAEA,SACEc,4BAAA,MAAA;AAAKL,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD,WAAnB,CAA+BO,IAA/B;GAAhB,EACGL,QADH,CADF;AAKD,CARD;;ACXA,MAAMX,WAAS,GAAGC,iBAAU,CAAE2C,KAAD,KAAmB;AAC9CkB,EAAAA,IAAI,EAAE;AACJiD,IAAAA,OAAO,EAAEnE,KAAK,CAACyE,OAAN,CAAc,CAAd,EAAiB,CAAjB,CADL;AAEJlH,IAAAA,KAAK,EAAE;AAFH;AADwC,CAAnB,CAAD,CAA5B;;AAOA,MAAM2L,SAAS,GAAuB,CAAC;AAAEnL,EAAAA,QAAF;AAAYF,EAAAA,SAAS,GAAG;AAAxB,CAAD;AACpC,QAAMI,OAAO,GAAGb,WAAS,EAAzB;AAEA,SACEc,4BAAA,MAAA;AAAKL,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD,WAAnB,CAA+BO,IAA/B;GAAhB,EACGL,QADH,CADF;AAKD,CARD;;ACVA,MAAMX,WAAS,GAAGC,iBAAU,CAAC,OAAO;AAClC,qBAAmB;AACjB,UAAM;AAAEoL,MAAAA,SAAS,EAAE;AAAb,KADW;AAEjB,YAAQ;AAAEA,MAAAA,SAAS,EAAE;AAAb;AAFS,GADe;AAKlCvH,EAAAA,IAAI,EAAE;AACJqH,IAAAA,QAAQ,EAAE;AADN,GAL4B;AAQlCY,EAAAA,OAAO,EAAE;AACPZ,IAAAA,QAAQ,EAAE,UADH;AAEPa,IAAAA,MAAM,EAAE,CAFD;AAGP7H,IAAAA,MAAM,EAAE,MAHD;AAIPhE,IAAAA,KAAK,EAAE,MAJA;AAKP+G,IAAAA,OAAO,EAAE,MALF;AAMPI,IAAAA,cAAc,EAAE,QANT;AAOPH,IAAAA,UAAU,EAAE,QAPL;AAQP2D,IAAAA,UAAU,EAAE;AARL,GARyB;AAkBlCmB,EAAAA,OAAO,EAAE;AACP/E,IAAAA,OAAO,EAAE,cADF;AAEP8E,IAAAA,MAAM,EAAE,CAFD;AAGP7L,IAAAA,KAAK,EAAE,MAHA;AAIPgE,IAAAA,MAAM,EAAE,MAJD;AAKP4G,IAAAA,MAAM,EAAE,MALD;AAMPmB,IAAAA,SAAS,EAAE;AANJ;AAlByB,CAAP,CAAD,CAA5B;;AA4BA,MAAMC,WAAW,GAAIC,gBAAD;AAClB,QAAMC,OAAO,GAAG,CAAC;AAAEC,IAAAA,SAAF;AAAa,OAAG3I;AAAhB,GAAD;AACd,UAAM9C,OAAO,GAAGb,WAAS,EAAzB;AAEA,WACEc,4BAAA,MAAA;AAAKL,MAAAA,SAAS,EAAEI,OAAO,CAACiD;KAAxB,EAEIwI,SAAS,IAEPxL,4BAAA,MAAA;AAAKL,MAAAA,SAAS,EAAEI,OAAO,CAACkL;KAAxB,EACEjL,4BAAA,MAAA;AAAKL,MAAAA,SAAS,EAAEI,OAAO,CAACoL;AAASpE,MAAAA,GAAG,EAAE0E;AAAczE,MAAAA,GAAG,EAAC;KAAxD,CADF,CAJN,EASEhH,4BAAA,CAACsL,gBAAD,oBAAsBzI,MAAtB,CATF,CADF;AAaD,GAhBD;;AAiBA,SAAO0I,OAAP;AACD,CAnBD;;AClBA,MAAMrM,WAAS,GAAGC,iBAAU,CAAE2C,KAAD,IAAkB6B,mBAAY,CAAC;AAC1DX,EAAAA,IAAI,EAAE;AACJzD,IAAAA,SAAS,EAAE,MADP;AAEJ2D,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KAFV;AAGJrB,IAAAA,KAAK,EAAE;AAHH,GADoD;AAM1DqM,EAAAA,OAAO,EAAE;AACPxI,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KADP;AAEPiH,IAAAA,QAAQ,EAAE7F,KAAK,CAACK,UAAN,CAAiByF,OAAjB,CAAyB,EAAzB,CAFH;AAGPhF,IAAAA,UAAU,EAAEd,KAAK,CAACK,UAAN,CAAiBK,iBAHtB;AAIPnD,IAAAA,KAAK,EAAE;AAJA,GANiD;AAY1DsM,EAAAA,gBAAgB,EAAE;AAChB7D,IAAAA,YAAY,eAAe3H,MAAM,CAACK;AADlB;AAZwC,CAAD,CAA/B,CAA5B;;AAiBA,MAAMoL,SAAS,GAAuB,CAAC;AACrC/L,EAAAA,QADqC;AAC3BgM,EAAAA,QAD2B;AACjBC,EAAAA,EADiB;AACbvE,EAAAA;AADa,CAAD;AAGpC,QAAMxH,OAAO,GAAGb,WAAS,EAAzB;AACA,QAAM,CAAC6M,UAAD,EAAaC,aAAb,IAA8B9H,cAAQ,CAAU,CAAC,CAAC2H,QAAZ,CAA5C;;AAEA,QAAMvH,QAAQ,GAAG,MAAY0H,aAAa,CAAC,CAACD,UAAF,CAA1C;;AAEA,SACE/L,4BAAA,CAACiM,cAAD;AACEtM,IAAAA,SAAS,EAAEI,OAAO,CAACiD;AACnB6I,IAAAA,QAAQ,EAAEE;AACVzH,IAAAA,QAAQ,EAAEA;GAHZ,EAKEtE,4BAAA,CAACkM,gBAAD;AACEvM,IAAAA,SAAS,EAAEI,OAAO,CAAC4L;AACnBQ,IAAAA,UAAU,EAAEnM,4BAAA,CAACoM,cAAD,MAAA;8BACYN;AACxBA,IAAAA,EAAE,EAAEA;GAJN,EAME9L,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,EAAEI,OAAO,CAAC2L;GAA/B,EAAyCnE,KAAzC,CANF,CALF,EAaEvH,4BAAA,CAACqM,gBAAD,MAAA,EACGxM,QADH,CAbF,CADF;AAmBD,CA3BD;;ACZA,MAAMyM,YAAY,GAA0B,CAAC;AAC3CC,EAAAA,WAD2C;AAE3CC,EAAAA,kBAF2C;AAG3CrF,EAAAA,IAH2C;AAI3CsF,EAAAA,OAJ2C;AAK3CC,EAAAA;AAL2C,CAAD,KAO1C1M,4BAAA,CAACwK,KAAD;AACErD,EAAAA,IAAI,EAAEA;AACNsF,EAAAA,OAAO,EAAEA;qBACO;sBACC;CAJnB,EAMEzM,4BAAA,CAACA,cAAK,CAAC2M,QAAP,MAAA,EACE3M,4BAAA,CAAC0K,WAAD,MAAA,EACE1K,4BAAA,CAAC2K,UAAD,MAAA,mCAAA,CADF,CADF,EAIE3K,4BAAA,CAACgL,SAAD,MAAA,EAEMwB,kBAAkB,IAAIA,kBAAkB,CAACI,MAAzC,IAAmDJ,kBAAkB,CAACK,GAAnB,CAChDhG,YAAD,IACE7G,4BAAA,CAAC2G,WAAD;AACEE,EAAAA,YAAY,EAAEA;AACdiG,EAAAA,GAAG,EAAEjG,YAAY,CAAC/B;AAClB8B,EAAAA,OAAO;AAAA;;AACL,YAAI2F,WAAJ,yBAAuBA,WAAW,CAAC1F,YAAY,CAAC/B,SAAd,EAAyB4H,aAAzB,CAAlC;;;;AACD,KAFM;AAAA;AAAA;AAAA;CAHT,CAF+C,CAFzD,EAcG,CAACF,kBAAD,IAIKxM,4BAAA,CAAC2G,WAAD,MAAA,CAlBR,CAJF,EAyBE3G,4BAAA,CAAC+K,WAAD,MAAA,EACE/K,4BAAA,CAACN,MAAD;AACE0H,EAAAA,OAAO,EAAC;AACRlE,EAAAA,KAAK,EAAC;AACN9D,EAAAA,KAAK;AACLwH,EAAAA,OAAO,EAAE6F;CAJX,SAAA,CADF,CAzBF,CANF,CAPF;;ACRA,MAAMvN,WAAS,GAAGC,iBAAU,CAAC,OAAO;AAClC4N,EAAAA,YAAY,EAAE;AACZ3G,IAAAA,OAAO,EAAE,MADG;AAEZC,IAAAA,UAAU,EAAE;AAFA;AADoB,CAAP,CAAD,CAA5B;;AAOA,MAAM2G,eAAe,GAA6B,CAAC;AAAEC,EAAAA,cAAF;AAAkBC,EAAAA;AAAlB,CAAD;AAChD,QAAM,CAACC,QAAD,EAAWC,WAAX,IAA0BlJ,cAAQ,CAAC,KAAD,CAAxC;AAEA,QAAMnE,OAAO,GAAGb,WAAS,EAAzB;AAEA,QAAMmO,cAAc,GAClBrN,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACgN;GAAxB,EACE/M,4BAAA,CAACsN,YAAD,MAAA,CADF,EAEEtN,4BAAA,CAAC4K,UAAD;AAAYxD,IAAAA,OAAO,EAAC;GAApB,EACG8F,QADH,CAFF,CADF;AASA,SACElN,4BAAA,CAACqH,OAAD;AACEkG,IAAAA,WAAW;AACXhG,IAAAA,KAAK,EAAE4F,QAAQ,GAAGnN,4BAAA,CAAC4K,UAAD;AAAYxD,MAAAA,OAAO,EAAC;KAApB,WAAA,CAAH,GAAsDiG;AACrEzG,IAAAA,OAAO,EAAE;AACP4G,MAAAA,SAAS,CAACC,SAAV,CAAoBC,SAApB,CAA8BR,QAA9B,EACGS,IADH,CACQ;AAAQP,QAAAA,WAAW,CAAC,IAAD,CAAX;AAAmB,OADnC;AAED;AACDX,IAAAA,OAAO,EAAE;AACPW,MAAAA,WAAW,CAAC,KAAD,CAAX;AACD;GATH,EAWGH,cAXH,CADF;AAeD,CA7BD;;ACDA,MAAM/N,WAAS,GAAGC,iBAAU,CAAE2C,KAAD,KAAmB;AAC9CkB,EAAAA,IAAI,EAAE;AACJzD,IAAAA,SAAS,EAAE,MADP;AAEJ2D,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KAFV;AAGJrB,IAAAA,KAAK,EAAE;AAHH,GADwC;AAM9CqM,EAAAA,OAAO,EAAE;AACPtF,IAAAA,OAAO,EAAE,MADF;AAEPI,IAAAA,cAAc,EAAE,QAFT;AAGPtD,IAAAA,KAAK,EAAE/C,MAAM,CAACQ,KAHP;AAIPgH,IAAAA,QAAQ,EAAE5G,KAAK,CAACE,IAAN,CAAWK,aAJd;AAKPjC,IAAAA,KAAK,EAAE;AALA,GANqC;AAa9CuO,EAAAA,eAAe,EAAE;AACf1K,IAAAA,KAAK,EAAE/C,MAAM,CAACE;AADC,GAb6B;AAgB9CwN,EAAAA,gBAAgB,EAAE;AAChBjL,IAAAA,UAAU,EAAE7B,KAAK,CAACS,MAAN,CAAaE;AADT,GAhB4B;AAmB9CoM,EAAAA,YAAY,EAAE;AACZ1H,IAAAA,OAAO,EAAE,MADG;AAEZI,IAAAA,cAAc,EAAE;AAFJ,GAnBgC;AAuB9CuH,EAAAA,eAAe,EAAE;AACf,KAACjM,KAAK,CAACkM,WAAN,CAAkBC,EAAlB,CAAqB,IAArB,CAAD,GAA8B;AAC5BC,MAAAA,QAAQ,EAAE;AADkB;AADf,GAvB6B;AA4B9CC,EAAAA,UAAU,EAAE;AACVjL,IAAAA,KAAK,EAAE/C,MAAM,CAACQ;AADJ;AA5BkC,CAAnB,CAAD,CAA5B;;AAiCA,MAAMyN,UAAU,GAAwB,CAAC;AACvCzO,EAAAA,SAAS,GAAG,EAD2B;AACvB0O,EAAAA,iBADuB;AACJC,EAAAA,QADI;AACMC,EAAAA;AADN,CAAD;AAGtC,QAAMxO,OAAO,GAAGb,WAAS,EAAzB;AACA,QAAM,CAAC6M,UAAD,EAAaC,aAAb,IAA8B9H,cAAQ,CAAC,CAAC,CAACmK,iBAAH,CAA5C;;AAEA,QAAM/J,QAAQ,GAAG,MAAY0H,aAAa,CAAC,CAACD,UAAF,CAA1C;;AAEA,SACE/L,4BAAA,CAAC4L,WAAD;AAAWjM,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD,WAAnB,CAA+BO,IAA/B;AAAuC2L,IAAAA,QAAQ,EAAEE;AAAYzH,IAAAA,QAAQ,EAAEA;GAA7F,EACEtE,4BAAA,CAACkM,gBAAD;AACEC,IAAAA,UAAU,EAAEJ,UAAU,GAAG/L,4BAAA,CAACwO,UAAD,MAAA,CAAH,GAAoBxO,4BAAA,CAACyO,OAAD,MAAA;GAD5C,EAGEzO,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,KAAKI,OAAO,CAAC2L,WAAWK,UAAU,GAAGhM,OAAO,CAAC6N,eAAX,GAA6B7N,OAAO,CAAC8N,kBAArE,CAAwF3N,IAAxF;GAAvB,EAAwHoO,QAAxH,CAHF,CADF,EAMEtO,4BAAA,CAACqM,gBAAD;AAAkB1M,IAAAA,SAAS,EAAEI,OAAO,CAAC+N;GAArC,EACE9N,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACgO;GAAxB,EACE/N,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,EAAEI,OAAO,CAACoO;GAA/B,EAA4CI,MAA5C,CADF,CADF,CANF,CADF;AAcD,CAtBD;;ACvCA,MAAMrP,WAAS,GAAGC,iBAAU,CAAC,OAAO;AAClC6D,EAAAA,IAAI,EAAE;AACJE,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KADV;AAEJrB,IAAAA,KAAK,EAAE;AAFH;AAD4B,CAAP,CAAD,CAA5B;;AAOA,MAAMqP,eAAe,GAA6B,CAAC;AAAEC,EAAAA,SAAF;AAAaC,EAAAA,cAAc,GAAG,EAA9B;AAAkC,KAAG9O;AAArC,CAAD;AAChD,QAAMC,OAAO,GAAGb,WAAS,EAAzB;AACA,SACEc,4BAAA,CAAC6O,qBAAD;AACElP,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQ4L,cAAc,CAAC1O,IAAf;AAC9B4O,IAAAA,KAAK,EAAEH;AACPI,IAAAA,OAAO,EACL/O,4BAAA,CAAC8D,QAAD,oBAAchE,KAAd;GAJJ,CADF;AAUD,CAZD;;ACTA,MAAMkP,kBAAkB,GAAgC,CAAC;AAAErP,EAAAA,SAAS,GAAG,EAAd;AAAkBiH,EAAAA,OAAlB;AAA2BqI,EAAAA;AAA3B,CAAD,KACtDjP,4BAAA,MAAA;AAAKL,EAAAA,SAAS,EAAEA;CAAhB,EACGsP,KAAK,CAACpC,GAAN,CAAU,CAACqC,IAAD,EAA6BC,CAA7B,KACTnP,4BAAA,CAAC0O,eAAD;AACE9H,EAAAA,OAAO,EAAEA;AACTkG,EAAAA,GAAG,qBAAqBoC,IAAI,CAACpD,IAAxB,uBAAmDqD,KAAKxP,WAAxB,CAAoCO,IAApC;AACrC0O,EAAAA,cAAc,EAAEM,IAAI,CAACN;GACjBM,KAJN,CADD,CADH,CADF;;ICTME,aAAa,GAAG,SAAhBA,aAAgB,CACpBC,GADoB,EAEpBC,UAFoB,EAGpBC,eAHoB;AAAA,MAEpBD,UAFoB;AAEpBA,IAAAA,UAFoB,GAEP,EAFO;AAAA;;AAAA,MAGpBC,eAHoB;AAGpBA,IAAAA,eAHoB,GAGF,CAHE;AAAA;;AAAA,SAIRF,GAAG,CAACzC,MAAJ,GAAa0C,UAAb,GACPD,GAAG,CAACG,MAAJ,CAAW,CAAX,EAAcD,eAAd,CADO,WAC6BF,GAAG,CAACG,MAAJ,CAAWH,GAAG,CAACzC,MAAJ,GAAa,CAAxB,CAD7B,GAEVyC,GANkB;AAAA,CAAtB;;AAQA,IAAMI,iBAAiB,GAAG,SAApBA,iBAAoB,CAACJ,GAAD;AAAA,SAAyBA,GAAG,CAACK,OAAJ,CAAY,KAAZ,EAAmB,EAAnB,CAAzB;AAAA,CAA1B;;AAEA,IAAMC,kBAAkB,GAAG,cAA3B;AACA,IAAMC,kBAAkB,GAAG,QAA3B;;AAEA,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,CAACC,GAAD;AACtB,MAAIA,GAAG,GAAG,CAAV,EAAa;AACX,QAAIA,GAAG,GAAGH,kBAAV,EAA8B,OAAOA,kBAAP;AAE9B,QAAIG,GAAG,GAAGF,kBAAV,EAA8B,OAAOA,kBAAP;AAC/B;;AAED,MAAIE,GAAG,GAAG,CAAV,EAAa;AACX,QAAIA,GAAG,GAAG,CAACH,kBAAX,EAA+B,OAAO,CAACA,kBAAR;AAE/B,QAAIG,GAAG,GAAG,CAACF,kBAAX,EAA+B,OAAO,CAACA,kBAAR;AAChC;;AACD,SAAOE,GAAP;AACD,CAbD;;ACKA,MAAM5Q,WAAS,GAAGC,iBAAU,CAAC,OAAO;AAClC6D,EAAAA,IAAI,EAAE;AACJqD,IAAAA,UAAU,EAAE,QADR;AAEJD,IAAAA,OAAO,EAAE,MAFL;AAGJ2J,IAAAA,aAAa,EAAE;AAHX,GAD4B;AAMlCC,EAAAA,UAAU,EAAE;AACV9M,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KADJ;AAEVkC,IAAAA,UAAU,EAAE7B,KAAK,CAACS,MAAN,CAAaC,KAFf;AAGVwO,IAAAA,cAAc,EAAE,MAHN;AAIV,eAAW;AACTrN,MAAAA,UAAU,EAAE7B,KAAK,CAACS,MAAN,CAAaE;AADhB;AAJD,GANsB;AAclCwO,EAAAA,WAAW,EAAE;AACXvI,IAAAA,QAAQ,EAAE5G,KAAK,CAACE,IAAN,CAAWM,WADV;AAEX4O,IAAAA,SAAS,EAAE;AAFA;AAdqB,CAAP,CAAD,CAA5B;;AAoBA,MAAMC,YAAY,GAA0B,CAAC;AAAE7I,EAAAA,KAAF;AAAS8I,EAAAA,KAAT;AAAgB1Q,EAAAA,SAAS,GAAG;AAA5B,CAAD;AAC1C,QAAMI,OAAO,GAAGb,WAAS,EAAzB;AAEA,SACEc,4BAAA,MAAA;AAAKL,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD,WAAnB,CAA+BO,IAA/B;GAAhB,EACEF,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,EAAEI,OAAO,CAACmQ;AAAa9I,IAAAA,OAAO,EAAC;AAAYlE,IAAAA,KAAK,EAAC;GAAtE,EAAiFqE,KAAjF,CADF,EAGI8I,KAAK,CAACxD,GAAN,CAAWyD,IAAD;AACR,UAAMxD,GAAG,GAAG2C,iBAAiB,CAACa,IAAI,CAAC/I,KAAN,CAA7B;;AAEA,QAAI+I,IAAI,CAACC,UAAT,EAAqB;AACnB,YAAMC,IAAI,GAAG,CAACF,IAAI,CAACG,EAAL,IAAW,GAAZ,EAAiBC,QAAjB,EAAb;AACA,aACE1Q,4BAAA,IAAA;AACEL,QAAAA,SAAS,EAAEI,OAAO,CAACiQ;AACnBW,QAAAA,MAAM,EAAEL,IAAI,CAACK;AACbzN,QAAAA,KAAK,EAAC;AACN4J,QAAAA,GAAG,EAAEA;AACL0D,QAAAA,IAAI,EAAEA;OALR,EAOGF,IAAI,CAAC/I,KAPR,CADF;AAWD;;AACD,WACEvH,4BAAA,CAACkI,sBAAD;AACEvI,MAAAA,SAAS,EAAEI,OAAO,CAACiQ;AACnBW,MAAAA,MAAM,EAAEL,IAAI,CAACK;AACbzN,MAAAA,KAAK,EAAC;AACN4J,MAAAA,GAAG,EAAEA;AACL2D,MAAAA,EAAE,EAAEH,IAAI,CAACG;KALX,EAOGH,IAAI,CAAC/I,KAPR,CADF;AAWD,GA5BD,CAHJ,CADF;AAoCD,CAvCD;;ACvBA,MAAMqJ,aAAa,GAA2B,CAAC;AAC7CrJ,EAAAA,KAD6C;AAE7CsJ,EAAAA,MAF6C;AAG7ChR,EAAAA,QAH6C;AAI7C,KAAGgD;AAJ0C,CAAD,KAM5C7C,4BAAA,CAACwK,KAAD,oBAAW3H,MAAX,EACE7C,4BAAA,CAACA,cAAK,CAAC2M,QAAP,MAAA,EACE3M,4BAAA,CAAC0K,WAAD,MAAA,EACE1K,4BAAA,CAAC2K,UAAD,MAAA,EAAapD,KAAb,CADF,CADF,EAIEvH,4BAAA,CAACgL,SAAD,MAAA,EAAYnL,QAAZ,CAJF,EAKEG,4BAAA,CAAC+K,WAAD,MAAA,EAAc8F,MAAd,CALF,CADF,CANF;;ACCA,MAAM3R,WAAS,GAAGC,iBAAU,CAAE2C,KAAD,KAAmB;AAC9CkB,EAAAA,IAAI,EAAE;AACJE,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KADV;AAEJ0F,IAAAA,OAAO,EAAE;AAFL,GADwC;AAK9C0K,EAAAA,KAAK,EAAE;AACL5N,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KADT;AAELqQ,IAAAA,WAAW,EAAEjP,KAAK,CAACyE,OAAN,CAAc,GAAd,CAFR;AAGL4J,IAAAA,SAAS,EAAE,QAHN;AAIL,iBAAa;AACXrI,MAAAA,YAAY,eAAe3H,MAAM,CAACO;AADvB;AAJR,GALuC;AAa9CsQ,EAAAA,cAAc,EAAE;AACdC,IAAAA,YAAY,EAAE;AADA,GAb8B;AAgB9CC,EAAAA,KAAK,EAAE;AACLhO,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KADT;AAEL0F,IAAAA,OAAO,EAAE,MAFJ;AAGLuB,IAAAA,QAAQ,EAAE5G,KAAK,CAACE,IAAN,CAAWC;AAHhB,GAhBuC;AAqB9CiQ,EAAAA,cAAc,EAAE;AACdC,IAAAA,SAAS,EAAE,QADG;AAEdlO,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KAFA;AAGd0F,IAAAA,OAAO,EAAE,MAHK;AAIduB,IAAAA,QAAQ,EAAE5G,KAAK,CAACE,IAAN,CAAWG,MAJP;AAKd2P,IAAAA,WAAW,EAAE;AALC;AArB8B,CAAnB,CAAD,CAA5B;;AA8BA,MAAMM,UAAU,GAAwB,CAAC;AACvCC,EAAAA,QADuC;AAEvCC,EAAAA,QAFuC;AAGvCL,EAAAA,KAHuC;AAIvCM,EAAAA,KAJuC;AAKvCC,EAAAA,IAAI,GAAG,CALgC;AAMvCC,EAAAA,YANuC;AAOvCC,EAAAA,cAPuC;AAQvC,KAAG7R;AARoC,CAAD;AAUtC,QAAMC,OAAO,GAAGb,WAAS,EAAzB;AAEA,SACEc,4BAAA,CAACA,cAAK,CAAC2M,QAAP,MAAA,EACE3M,4BAAA,CAAC4R,IAAD;AAAMjS,IAAAA,SAAS,EAAEI,OAAO,CAACiD;AAAM6O,IAAAA,SAAS;AAACtL,IAAAA,OAAO,EAAE;GAAlD,EACEvG,4BAAA,CAAC4R,IAAD;AAAMjS,IAAAA,SAAS,EAAEI,OAAO,CAACiR;AAAgB9B,IAAAA,IAAI;AAAC4C,IAAAA,EAAE,EAAE;GAAlD,EACE9R,4BAAA,CAAC+R,KAAD;AACEpS,IAAAA,SAAS,EAAEI,OAAO,CAAC+Q;AACnB/Q,IAAAA,OAAO,EAAE;AAAE+Q,MAAAA,KAAK,EAAE/Q,OAAO,CAAC+Q;AAAjB;AACTU,IAAAA,KAAK,EAAEA;AACPlN,IAAAA,QAAQ,EAAEqN;AACVK,IAAAA,MAAM,EAAEN;AACRO,IAAAA,IAAI,EAAC;AACLC,IAAAA,SAAS;AACTC,IAAAA,UAAU,EAAE;AACVV,MAAAA,IADU;AAEVW,MAAAA,GAAG,EAAEb,QAFK;AAGVc,MAAAA,GAAG,EAAEf,QAHK;AAIV,yBAAmB;AAJT;KAMRxR,KAdN,CADF,CADF,EAmBEE,4BAAA,CAAC4R,IAAD;AAAM1C,IAAAA,IAAI;AAAC4C,IAAAA,EAAE,EAAE;AAAGnS,IAAAA,SAAS,EAAEI,OAAO,CAACoR;GAArC,EACEnR,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,EAAEI,OAAO,CAACmR;GAA/B,EACGA,KADH,CADF,CAnBF,CADF,CADF;AA6BD,CAzCD;;AC5BA,MAAMhS,WAAS,GAAGC,iBAAU,CAAC,OAAO;AAClC6D,EAAAA,IAAI,EAAE;AACJ3D,IAAAA,KAAK,EAAE;AADH,GAD4B;AAIlCiT,EAAAA,eAAe,EAAE;AACflB,IAAAA,SAAS,EAAE,QADI;AAEfhL,IAAAA,OAAO,EAAE,MAFM;AAGfI,IAAAA,cAAc,EAAE,eAHD;AAIfnH,IAAAA,KAAK,EAAE;AAJQ,GAJiB;AAUlCkT,EAAAA,WAAW,EAAE;AACXnB,IAAAA,SAAS,EAAE,QADA;AAEXhL,IAAAA,OAAO,EAAE,MAFE;AAGXI,IAAAA,cAAc,EAAE,QAHL;AAIXnH,IAAAA,KAAK,EAAE,MAJI;AAKXuD,IAAAA,UAAU,EAAE7B,KAAK,CAACS,MAAN,CAAaE;AALd;AAVqB,CAAP,CAAD,CAA5B;;AAmBA,MAAM8Q,qBAAqB,GAAmC,CAAC;AAC7DC,EAAAA,MAAM,EAAE;AACNC,IAAAA,KAAK,EAAEC,UADD;AACaC,IAAAA,GAAG,EAAEC;AADlB,GADqD;AAG1DC,EAAAA,IAH0D;AAGpD3O,EAAAA,YAHoD;AAGtCxE,EAAAA,SAHsC;AAG3B,KAAGG;AAHwB,CAAD;AAK5D,QAAMC,OAAO,GAAGb,WAAS,EAAzB;AAEA,QAAMoS,QAAQ,GAAGxR,IAAI,CAACuS,GAAL,IAAYQ,QAA7B;AACA,QAAMtB,QAAQ,GAAGzR,IAAI,CAACsS,GAAL,IAAYO,UAA7B;AACA,QAAMlB,IAAI,GAAG3R,IAAI,CAAC2R,IAAL,IAAa,CAA1B;;AAEA,QAAMsB,sBAAsB,GAC1B3O,KAD6B;AAG7B,UAAM4O,aAAa,GAAGnD,eAAe,CAACoD,MAAM,CAAC7O,KAAK,CAACuM,MAAN,CAAaa,KAAd,CAAP,CAAf,IAA+CD,QAArE;AACApN,IAAAA,YAAY,CAAC;AAAEiO,MAAAA,GAAG,EAAEY,aAAP;AAAsBX,MAAAA,GAAG,EAAEQ;AAA3B,KAAD,CAAZ;AACD,GALD;;AAOA,QAAMK,oBAAoB,GACxB9O,KAD2B;AAG3B,UAAM+O,WAAW,GAAGtD,eAAe,CAACoD,MAAM,CAAC7O,KAAK,CAACuM,MAAN,CAAaa,KAAd,CAAP,CAAf,IAA+CqB,QAAnE;AACA1O,IAAAA,YAAY,CAAC;AAAEiO,MAAAA,GAAG,EAAEO,UAAP;AAAmBN,MAAAA,GAAG,EAAEc;AAAxB,KAAD,CAAZ;AACD,GALD;;AAOA,QAAMC,kBAAkB,GAAG,CACzBC,CADyB,EACCC,cADD;AAGzBnP,IAAAA,YAAY,CAAC;AAAEiO,MAAAA,GAAG,EAAEkB,cAAc,CAAC,CAAD,CAArB;AAA0BjB,MAAAA,GAAG,EAAEiB,cAAc,CAAC,CAAD;AAA7C,KAAD,CAAZ;AACD,GAJD;;AAMA,QAAMC,oBAAoB,GAAG;AAC3B,QAAIZ,UAAU,GAAGpB,QAAjB,EAA2B;AACzBpN,MAAAA,YAAY,CAAC;AAAEiO,QAAAA,GAAG,EAAEb,QAAP;AAAiBc,QAAAA,GAAG,EAAEQ;AAAtB,OAAD,CAAZ;AACD,KAFD,MAEO,IAAIF,UAAU,GAAGE,QAAjB,EAA2B;AAChC1O,MAAAA,YAAY,CAAC;AAAEiO,QAAAA,GAAG,EAAES,QAAP;AAAiBR,QAAAA,GAAG,EAAEQ;AAAtB,OAAD,CAAZ;AACD;AACF,GAND;;AAQA,QAAMW,kBAAkB,GAAG;AACzB,QAAIX,QAAQ,GAAGF,UAAf,EAA2B;AACzBxO,MAAAA,YAAY,CAAC;AAAEiO,QAAAA,GAAG,EAAEb,QAAP;AAAiBc,QAAAA,GAAG,EAAEM;AAAtB,OAAD,CAAZ;AACD,KAFD,MAEO,IAAIE,QAAQ,GAAGvB,QAAf,EAAyB;AAC9BnN,MAAAA,YAAY,CAAC;AAAEiO,QAAAA,GAAG,EAAEb,QAAP;AAAiBc,QAAAA,GAAG,EAAEf;AAAtB,OAAD,CAAZ;AACD;AACF,GAND;;AAQA,QAAMmC,oBAAoB,GAAG,OAAW;AACtCnC,IAAAA,QADsC;AAEtCC,IAAAA,QAFsC;AAGtCE,IAAAA,IAHsC;AAItCP,IAAAA,KAAK,EAAE4B;AAJ+B,GAAX,CAA7B;;AAOA,SACE9S,4BAAA,MAAA;AAAKL,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD,WAAnB,CAA+BO,IAA/B;GAAhB,EACEF,4BAAA,CAAC0T,MAAD;AACElC,IAAAA,KAAK,EAAE,CAACmB,UAAD,EAAaE,QAAb;KACH/S;AACJwE,IAAAA,QAAQ,EAAE8O;IAHZ,CADF,EAMEpT,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACuS;GAAxB,EACEtS,4BAAA,CAACqR,UAAD;AACEK,IAAAA,YAAY,EAAE6B;AACd5B,IAAAA,cAAc,EAAEoB;KACZU,oBAAoB;AACxBjC,IAAAA,KAAK,EAAEmB;IAJT,CADF,EAOE3S,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,EAAEI,OAAO,CAACwS;GAA/B,MAAA,CAPF,EAUEvS,4BAAA,CAACqR,UAAD;AACEK,IAAAA,YAAY,EAAE8B;AACd7B,IAAAA,cAAc,EAAEuB;KACZO,oBAAoB;AACxBjC,IAAAA,KAAK,EAAEqB;IAJT,CAVF,CANF,CADF;AA0BD,CAhFD;;AC1BA,MAAMc,kBAAkB,GAAgC,CAAC;AAAEnC,EAAAA,KAAF;AAASoC,EAAAA,SAAS,GAAG,EAArB;AAAyBrE,EAAAA;AAAzB,CAAD,KACtDvP,4BAAA,CAACA,cAAK,CAAC2M,QAAP,MAAA,EAEI6E,KAAK,CAAC5E,MAAN,GAAegH,SAAf,IAEE5T,4BAAA,CAACgN,eAAD;AACEC,EAAAA,cAAc,EAAEjN,4BAAA,CAAC4K,UAAD;AAAYxD,IAAAA,OAAO,EAAC;GAApB,EAA6BgI,aAAa,CAACoC,KAAD,EAAQoC,SAAR,EAAmBrE,eAAe,IAAIqE,SAAS,GAAG,CAAlD,CAA1C;AAChB1G,EAAAA,QAAQ,EAAEsE;CAFZ,CAJN,EAWIA,KAAK,CAAC5E,MAAN,IAAgBgH,SAAhB,IACGpC,KAZP,CADF;;ACDA,MAAMtS,WAAS,GAAGC,iBAAU,CAAC;AAC3B0U,EAAAA,SAAS,EAAE;AACTzN,IAAAA,OAAO,EAAE,MADA;AAETI,IAAAA,cAAc,EAAE,QAFP;AAGTuD,IAAAA,eAAe,EAAE;AAHR,GADgB;AAM3B/G,EAAAA,IAAI,EAAE;AACJ8E,IAAAA,YAAY,eAAe3H,MAAM,CAACM;AAD9B;AANqB,CAAD,CAA5B;;AAWA,MAAMqT,UAAU,GAAmBjR,KAAD;AAChC,QAAM;AAAEhD,IAAAA;AAAF,MAAegD,KAArB;AACA,QAAM9C,OAAO,GAAGb,WAAS,EAAzB;AACA,SACEc,4BAAA,CAAC+T,IAAD;AAAMhU,IAAAA,OAAO,EAAEA;KAAa8C,MAA5B,EACGhD,QADH,CADF;AAKD,CARD;;ACTA,MAAMmU,SAAS,GAAIC,KAAD,KAAwB;AACxCnI,EAAAA,EAAE,oBAAoBmI,OADkB;AAExC,0CAAwCA;AAFA,CAAxB,CAAlB;;AAKA,MAAM/U,WAAS,GAAGC,iBAAU,CAAC,OAAO;AAClC6D,EAAAA,IAAI,EAAE;AACJ+G,IAAAA,eAAe,EAAE5J,MAAM,CAACW,KADpB;AAEJoT,IAAAA,SAAS,EAAE,EAFP;AAGJ7U,IAAAA,KAAK,EAAE,MAHH;AAIJ4K,IAAAA,MAAM,KAAK9J,MAAM,CAACE,mBAJd;AAKJZ,IAAAA,YAAY,EAAE,EALV;AAMJ0U,IAAAA,QAAQ,EAAE;AANN,GAD4B;AASlCC,EAAAA,YAAY,EAAE;AACZF,IAAAA,SAAS,EAAE,EADC;AAEZ7U,IAAAA,KAAK,EAAE;AAFK,GAToB;AAalCgV,EAAAA,GAAG,EAAE;AACH,eAAW;AACTnR,MAAAA,KAAK,EAAE/C,MAAM,CAACE;AADL,KADR;AAIHZ,IAAAA,YAAY,EAAE,EAJX;AAKHyD,IAAAA,KAAK,EAAE/C,MAAM,CAACM,KALX;AAMHmC,IAAAA,UAAU,EAAE7B,KAAK,CAACS,MAAN,CAAaC,KANtB;AAOHyM,IAAAA,QAAQ,EAAE,KAPP;AAQHgG,IAAAA,SAAS,EAAE,MARR;AASH9J,IAAAA,QAAQ,EAAE,KATP;AAUHkK,IAAAA,YAAY,EAAE,MAVX;AAWHrO,IAAAA,OAAO,EAAE,CAXN;AAYH3D,IAAAA,aAAa,EAAE,YAZZ;AAaH4I,IAAAA,MAAM,EAAE,CAbL;AAcH,eAAW;AACToJ,MAAAA,YAAY,EAAE;AADL;AAdR,GAb6B;AAgClCC,EAAAA,YAAY,EAAE;AACZxK,IAAAA,eAAe,EAAE5J,MAAM,CAACE,OADZ;AAEZZ,IAAAA,YAAY,EAAE,EAFF;AAGZ4D,IAAAA,MAAM,EAAE;AAHI,GAhCoB;AAqClCmR,EAAAA,WAAW,EAAE;AAEXzK,IAAAA,eAAe,KAAK5J,MAAM,CAACE,oBAFhB;AAGX6C,IAAAA,KAAK,KAAK/C,MAAM,CAACW;AAHN;AArCqB,CAAP,CAAD,CAA5B;;AA4CA,MAAM2T,UAAU,GAAwB,CAAC;AACvCC,EAAAA,MADuC;AAC/BC,EAAAA,MAD+B;AACvBnD,EAAAA,KAAK,EAAEoD,eADgB;AACCtQ,EAAAA;AADD,CAAD;AAGtC,QAAMvE,OAAO,GAAGb,WAAS,EAAzB;;AAEA,QAAMiF,YAAY,GAAG,CACnBC,KADmB,EACWyQ,QADX;AAGnBvQ,IAAAA,QAAQ,CAACF,KAAD,EAAQyQ,QAAR,CAAR;AACD,GAJD;;AAMA,SACE7U,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACiD;GAAxB,EACEhD,4BAAA,CAAC8U,SAAD;kBACa;AACXnV,IAAAA,SAAS,EAAEI,OAAO,CAACqU;AACnB9P,IAAAA,QAAQ,EAAEH;AACV4Q,IAAAA,iBAAiB,EAAE;AACjBpV,MAAAA,SAAS,EAAEI,OAAO,CAACwU;AADF;AAGnB/C,IAAAA,KAAK,EAAEoD;AACPxN,IAAAA,OAAO,EAAC;GARV,EAUEpH,4BAAA,CAACgV,QAAD,oBACMhB,SAAS,CAAC,CAAD;AACbjU,IAAAA,OAAO,EAAE;AAAE8H,MAAAA,QAAQ,EAAE9H,OAAO,CAACyU;AAApB;AACT7U,IAAAA,SAAS,EAAEI,OAAO,CAACsU;AACnBvF,IAAAA,KAAK,EAAE4F;IAJT,CAVF,EAgBE1U,4BAAA,CAACgV,QAAD,oBACMhB,SAAS,CAAC,CAAD;AACbjU,IAAAA,OAAO,EAAE;AAAE8H,MAAAA,QAAQ,EAAE9H,OAAO,CAACyU;AAApB;AACT7U,IAAAA,SAAS,EAAEI,OAAO,CAACsU;AACnBvF,IAAAA,KAAK,EAAE6F;IAJT,CAhBF,CADF,CADF;AA2BD,CAtCD;;ACnDA,MAAMM,iBAAiB,GAA+B,CAAC;AACrDlI,EAAAA,YADqD;AAErDmI,EAAAA,eAFqD;AAGrDzQ,EAAAA;AAHqD,CAAD,KAKpDzE,4BAAA,CAACqH,OAAD;AAASE,EAAAA,KAAK,EAAEwF;CAAhB,EACE/M,4BAAA,OAAA,MAAA,EACEA,4BAAA,CAACmV,UAAD;AAAYjS,EAAAA,KAAK,EAAC;GAAcgS,gBAAhC,EACGzQ,IADH,CADF,CADF,CALF;;ACMA,MAAMvF,WAAS,GAAGC,iBAAU,CAAE2C,KAAD,KAAmB;AAC9CsT,EAAAA,YAAY,EAAE;AACZnL,IAAAA,MAAM,eAAe9J,MAAM,CAACE,SADhB;AAEZ4F,IAAAA,OAAO,EAAEnE,KAAK,CAACyE,OAAN,CAAc,CAAd,CAFG;AAGZ8O,IAAAA,SAAS,EAAEvT,KAAK,CAACyE,OAAN,CAAc,CAAd;AAHC,GADgC;AAM9C+O,EAAAA,eAAe,EAAE;AACflP,IAAAA,OAAO,EAAE,MADM;AAEfI,IAAAA,cAAc,EAAE;AAFD;AAN6B,CAAnB,CAAD,CAA5B;;AAYA,MAAM+O,iBAAiB,GAA+B,CAAC;AACrDpO,EAAAA,IADqD;AAC/CqO,EAAAA,kBAAkB,GAAG,iBAD0B;AACPC,EAAAA,mBADO;AACchJ,EAAAA;AADd,CAAD;AAGpD,QAAM1M,OAAO,GAAGb,WAAS,EAAzB;AACA,SACEc,4BAAA,CAAC4Q,aAAD;AACErJ,IAAAA,KAAK,mBAAmBkO;AACxBtO,IAAAA,IAAI,EAAEA;AACNsF,IAAAA,OAAO,EAAEA;GAHX,EAKEzM,4BAAA,CAACA,cAAK,CAAC2M,QAAP,MAAA,EACE3M,4BAAA,CAAC4K,UAAD;AAAY8K,IAAAA,YAAY;AAACC,IAAAA,KAAK,EAAC;AAASzS,IAAAA,KAAK,EAAC;AAAY+E,IAAAA,SAAS,EAAC;GAApE,+BAAA,EAEG,GAFH,EAGGwN,mBAHH,0BAAA,EAMG,GANH,EAOEzV,4BAAA,CAAC4V,GAAD;AAAKxP,IAAAA,OAAO,EAAC;AAASxD,IAAAA,UAAU,EAAC;GAAjC,EAAqD4S,kBAArD,CAPF,KAAA,CADF,EAWExV,4BAAA,CAAC4R,IAAD;AACEC,IAAAA,SAAS;AACTlS,IAAAA,SAAS,EAAEI,OAAO,CAACqV;AACnB/O,IAAAA,UAAU,EAAC;GAHb,EAKErG,4BAAA,CAAC4R,IAAD;AAAM1C,IAAAA,IAAI;AAAC2G,IAAAA,EAAE,EAAE;AAAGlW,IAAAA,SAAS,EAAEI,OAAO,CAACuV;GAArC,EACEtV,4BAAA,CAAC8V,gBAAD,MAAA,CADF,CALF,EAQE9V,4BAAA,CAAC4R,IAAD;AAAM1C,IAAAA,IAAI;AAAC2G,IAAAA,EAAE,EAAE;GAAf,EACE7V,4BAAA,CAAC4K,UAAD;AAAY8K,IAAAA,YAAY;AAACxS,IAAAA,KAAK,EAAC;GAA/B,oCAAA,CADF,EAEElD,4BAAA,CAAC4K,UAAD;AAAY1H,IAAAA,KAAK,EAAC;AAAU+E,IAAAA,SAAS,EAAC;GAAtC,EACEjI,4BAAA,CAAC4V,GAAD;AAAKhT,IAAAA,UAAU,EAAC;GAAhB,kCAAA,CADF,CAFF,CARF,CAXF,CALF,CADF;AAmCD,CAvCD;;ACbA,MAAM1D,WAAS,GAAGC,iBAAU,CAAE2C,KAAD,KAAmB;AAC9CiU,EAAAA,SAAS,EAAE;AACT3P,IAAAA,OAAO,EAAE,MADA;AAETI,IAAAA,cAAc,EAAE;AAFP,GADmC;AAK9CwP,EAAAA,gBAAgB,EAAE;AAChB9S,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KADE;AAEhBiH,IAAAA,QAAQ,EAAE5G,KAAK,CAACE,IAAN,CAAWC;AAFL,GAL4B;AAS9C+U,EAAAA,eAAe,EAAE;AACflM,IAAAA,eAAe,EAAE5J,MAAM,CAACK,KADT;AAEf4F,IAAAA,OAAO,EAAE,MAFM;AAGfI,IAAAA,cAAc,EAAE,QAHD;AAIf0P,IAAAA,aAAa,EAAEpU,KAAK,CAACyE,OAAN,CAAc,CAAd,CAJA;AAKflH,IAAAA,KAAK,EAAE;AALQ,GAT6B;AAgB9C8W,EAAAA,aAAa,EAAE;AACbd,IAAAA,SAAS,EAAEvT,KAAK,CAACyE,OAAN,CAAc,CAAd,CADE;AAEb2H,IAAAA,QAAQ,EAAE,KAFG;AAGb7O,IAAAA,KAAK,EAAE;AAHM,GAhB+B;AAqB9C+W,EAAAA,WAAW,EAAE;AACXC,IAAAA,YAAY,EAAEvU,KAAK,CAACyE,OAAN,CAAc,CAAd;AADH,GArBiC;AAwB9C+P,EAAAA,UAAU,EAAE;AACVlQ,IAAAA,OAAO,EAAE,MADC;AAEVI,IAAAA,cAAc,EAAE,QAFN;AAGVP,IAAAA,OAAO,EAAEnE,KAAK,CAACyE,OAAN,CAAc,CAAd;AAHC,GAxBkC;AA6B9CvD,EAAAA,IAAI,EAAE;AACJqD,IAAAA,UAAU,EAAE,QADR;AAEJD,IAAAA,OAAO,EAAE,MAFL;AAGJ2J,IAAAA,aAAa,EAAE,QAHX;AAIJjF,IAAAA,UAAU,EAAEhJ,KAAK,CAACyE,OAAN,CAAc,CAAd,CAJR;AAKJlH,IAAAA,KAAK,EAAE;AALH,GA7BwC;AAoC9CkX,EAAAA,MAAM,EAAE;AACNxM,IAAAA,eAAe,EAAE5J,MAAM,CAACK,KADlB;AAENgW,IAAAA,mBAAmB,EAAE,SAFf;AAGNC,IAAAA,oBAAoB,EAAE,SAHhB;AAINpT,IAAAA,MAAM,EAAEvB,KAAK,CAACyE,OAAN,CAAc,EAAd,CAJF;AAKNlH,IAAAA,KAAK,EAAE;AALD;AApCsC,CAAnB,CAAD,CAA5B;;AA6CA,MAAMqX,MAAM,GAAoB,CAAC;AAC/B/W,EAAAA,SAAS,GAAG,EADmB;AACfgX,EAAAA,aADe;AACAC,EAAAA,YADA;AACc,KAAG9W;AADjB,CAAD;AAG9B,QAAMC,OAAO,GAAGb,WAAS,EAAzB;AAEA,SACEc,4BAAA,SAAA;AAAQL,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD,WAAnB,CAA+BO,IAA/B;KAA2CJ,KAA9D,EACEE,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACwW;GAAxB,CADF,EAEEvW,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACkW;GAAxB,EACEjW,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACoW;GAAxB,EACEnW,4BAAA,CAAC4R,SAAD;AAAMC,IAAAA,SAAS;AAACgF,IAAAA,SAAS,EAAC;GAA1B,EACE7W,4BAAA,CAAC4R,SAAD;AAAMjS,IAAAA,SAAS,EAAEI,OAAO,CAACuW;AAAYpH,IAAAA,IAAI;AAAC4C,IAAAA,EAAE,EAAE;AAAIgF,IAAAA,EAAE,EAAE;AAAGC,IAAAA,EAAE,EAAE;GAA7D,EACE/W,4BAAA,MAAA;AAAK+G,IAAAA,GAAG,EAAEiQ;AAAkB3T,IAAAA,MAAM,EAAC;AAAO2D,IAAAA,GAAG,EAAC;GAA9C,CADF,CADF,EAKI4P,YAAY,CAAC/J,GAAb,CAAkBoK,UAAD,IACfjX,4BAAA,CAAC4R,SAAD;AACE9E,IAAAA,GAAG,QAAQ2C,iBAAiB,CAACwH,UAAU,CAAC1P,KAAZ;AAC5B2H,IAAAA,IAAI;AACJ4C,IAAAA,EAAE,EAAE;AACJ+D,IAAAA,EAAE,EAAE;AACJiB,IAAAA,EAAE,EAAE;AACJC,IAAAA,EAAE,EAAE;GANN,EAQE/W,4BAAA,CAACoQ,YAAD;AACEzQ,IAAAA,SAAS,EAAEI,OAAO,CAACqW;KACfa,WAFN,CARF,CADF,CALJ,CADF,EAuBEjX,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACgW;GAAxB,EACE/V,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,EAAEI,OAAO,CAACiW;GAA/B,EACGW,aADH,CADF,CAvBF,CADF,CAFF,CADF;AAoCD,CAzCD;;AC5DA,IAAYO,gBAAZ;;AAAA,WAAYA;AACVA,EAAAA,kDAAA,aAAA;AACAA,EAAAA,mDAAA,cAAA;AACAA,EAAAA,sDAAA,iBAAA;AACAA,EAAAA,sDAAA,iBAAA;AACD,CALD,EAAYA,gBAAgB,KAAhBA,gBAAgB,KAAA,CAA5B;;AAOA,yBAAeA,gBAAf;;ACPA;AACA,AAkKA;AACA,AAAO,MAAM,eAAe,iBAAiB,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,YAAY,CAAC;AAC/J,AA2DA;AACA,AAAO,MAAM,oBAAoB,iBAAiB,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,aAAa,KAAK,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC,IAAI,iBAAiB,CAAC;AACxL,AA8UA;AACA;AACA,AAAO,SAAS,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AACtC,CAAC,IAAI;AACL,EAAE,IAAI,MAAM,GAAG,IAAI,EAAE,CAAC;AACtB,EAAE,CAAC,MAAM,CAAC,EAAE;AACZ,EAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AACpB,EAAE;AACF,CAAC,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE;AAC5B,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;AACtC,EAAE;AACF,CAAC,OAAO,MAAM,CAAC;AACf,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"} \ No newline at end of file diff --git a/dist/index.modern.js b/dist/index.modern.js index b899304f..ad98fda5 100644 --- a/dist/index.modern.js +++ b/dist/index.modern.js @@ -2837,6 +2837,7 @@ const HeaderDesktop = ({ }, React__default.createElement(LogoNavbar, null))), React__default.createElement(Grid$1, { item: true, xs: 6, + xl: 8, container: true, justify: "flex-start" }, !!(itemsStart === null || itemsStart === void 0 ? void 0 : itemsStart.length) && itemsStart.map(navItem => React__default.createElement(Typography, { @@ -2848,6 +2849,7 @@ const HeaderDesktop = ({ }, navItem), navItem.title)))), React__default.createElement(Grid$1, { item: true, xs: 3, + xl: 2, container: true, justify: "flex-end", alignContent: "center" @@ -2860,6 +2862,7 @@ const HeaderDesktop = ({ item: true, container: true, xs: 2, + xl: 1, justify: "flex-end", alignContent: "center" }, React__default.createElement("div", null, React__default.createElement(Login, null)))))); @@ -2948,6 +2951,8 @@ const HeaderMobile = ({ to: hreflogo }, React__default.createElement(LogoNavbar, null))), React__default.createElement(Grid$1, { item: true, + md: 6, + sm: 5, xs: 4, container: true, justify: "flex-end", @@ -2959,6 +2964,8 @@ const HeaderMobile = ({ key: icon.key }, rest), icon))), React__default.createElement(Grid$1, { item: true, + md: 2, + sm: 3, xs: 4, container: true, justify: "flex-end", diff --git a/dist/index.modern.js.map b/dist/index.modern.js.map index 75211025..ecff5697 100644 --- a/dist/index.modern.js.map +++ b/dist/index.modern.js.map @@ -1 +1 @@ -{"version":3,"file":"index.modern.js","sources":["../src/components/atoms/Button.tsx","../src/theme/theme.ts","../src/components/atoms/Checkbox.tsx","../src/assets/images/icons/nifty.png","../src/assets/images/icons/rifCom.png","../src/assets/images/icons/rifDir.png","../src/assets/images/icons/rifGat.png","../src/assets/images/icons/rifMar.png","../src/assets/images/icons/rifPay.png","../src/assets/images/icons/rifSto.png","../src/models/ProviderInfo.ts","../src/components/atoms/LoginOption.tsx","../src/components/atoms/Logo.tsx","../src/components/atoms/LogoNavbar.tsx","../src/components/atoms/StyledNavTab.tsx","../src/components/atoms/NetworkIndicator.tsx","../src/components/atoms/modal/Modal.tsx","../src/components/atoms/modal/ModalHeader.tsx","../src/components/atoms/modal/ModalTitle.tsx","../src/components/atoms/modal/ModalFooter.tsx","../src/components/atoms/modal/ModalBody.tsx","../src/components/hoc/WithSpinner.tsx","../src/components/molecules/Accordion.tsx","../src/components/molecules/AccountModal.tsx","../src/components/molecules/CopyTextTooltip.tsx","../src/components/molecules/FAQSection.tsx","../src/components/molecules/LabeledCheckbox.tsx","../src/components/molecules/FilterCheckboxCard.tsx","../src/utils.ts","../src/components/molecules/FooterColumn.tsx","../src/components/molecules/ModalDialogue.tsx","../src/components/molecules/UnitsInput.tsx","../src/components/molecules/RangeSliderWithInputs.tsx","../src/components/molecules/ShortenTextTooltip.tsx","../src/components/molecules/StyledTabs.tsx","../src/components/molecules/SwitchTabs.tsx","../src/components/molecules/TooltipIconButton.tsx","../src/components/molecules/WrongNetworkModal.tsx","../src/components/organisms/Footer.tsx","../src/models/Enums.ts","../src/services/Web3Service.ts","../src/components/organisms/Account.tsx","../src/components/organisms/Header/HeaderDesktop.tsx","../src/components/organisms/Header/HeaderMobile.tsx","../src/components/organisms/Header/Header.tsx","../src/components/organisms/Header/HeaderTongue.tsx","../src/components/templates/FAQPageTemplate.tsx","../src/components/templates/PageTemplate.tsx","../src/providers/Web3Provider.tsx"],"sourcesContent":["import React, { FC } from 'react'\nimport { Button as MUIButton, ButtonProps as MUIButtonProps } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\n\nexport interface ButtonProps extends MUIButtonProps {\n block?: boolean\n shadow?: boolean\n rounded?: boolean\n}\n\nconst useStyles = makeStyles(() => ({\n block: {\n width: '100%',\n },\n noShadow: {\n boxShadow: 'none',\n },\n rounded: {\n borderRadius: 50,\n },\n}))\n\nconst Button: FC = ({\n className = '', block, shadow, rounded, children, ...rest\n}) => {\n const classes = useStyles()\n\n return (\n \n {children}\n \n )\n}\n\nexport default Button\n","import { createMuiTheme } from '@material-ui/core/styles'\nimport '../assets/css/fonts/rubik.css'\n\nexport const colors = {\n black: '#000000',\n primary: '#008FF7',\n darkBlue: '#197DC6',\n gray1: '#F8F7F7',\n gray2: '#E5E5E5',\n gray3: '#C4C4C4',\n gray4: '#919191',\n gray5: '#4D4C4C',\n gray6: '#15171B',\n transparent: '#FFFFFF00',\n white: '#FFFFFF',\n}\n\nexport const fonts = {\n family: 'Rubik',\n size: {\n tiny: 10,\n small: 12,\n normal: 14,\n medium: 16,\n subtitleSmall: 18,\n subtitleBig: 22,\n },\n weight: {\n light: 300,\n regular: 400,\n medium: 500,\n bold: 700,\n },\n}\n\nexport const globalConstants = {\n headerHeight: 8,\n}\n\nconst theme = createMuiTheme({\n palette: {\n primary: {\n main: colors.primary,\n },\n secondary: {\n main: colors.gray4,\n },\n },\n typography: {\n fontFamily: fonts.family,\n button: {\n textTransform: 'none',\n },\n fontWeightLight: fonts.weight.light,\n fontWeightRegular: fonts.weight.regular,\n fontWeightMedium: fonts.weight.medium,\n fontWeightBold: fonts.weight.bold,\n body1: {\n fontWeight: fonts.weight.light,\n },\n },\n props: {},\n overrides: {\n MuiButton: {\n root: {\n fontWeight: fonts.weight.light,\n },\n },\n MuiFormControlLabel: {\n root: {\n color: colors.gray3,\n },\n },\n MuiSlider: {\n rail: {\n color: colors.gray3,\n height: 4,\n opacity: 1,\n },\n root: {\n width: '100%',\n color: colors.primary,\n height: 4,\n },\n track: {\n height: 4,\n },\n thumb: {\n marginLeft: -4,\n height: 14,\n width: 14,\n },\n },\n MuiTextField: {\n root: {\n color: colors.gray3,\n '&:hover': {\n color: colors.gray2,\n },\n },\n },\n },\n})\n\nexport default theme\n","import React, { FC, useState } from 'react'\nimport {\n Checkbox as MUICheckbox,\n CheckboxProps as MUICheckboxProps,\n makeStyles,\n createStyles,\n} from '@material-ui/core'\nimport { CheckBoxOutlineBlankSharp, CheckBoxSharp } from '@material-ui/icons'\nimport { colors } from '../../theme'\n\nexport type CheckboxProps = MUICheckboxProps;\n\nconst useStyles = makeStyles(() => createStyles({\n unCheckedIcon: {\n color: colors.gray4,\n },\n checkedIcon: {\n color: colors.primary,\n },\n}))\n\nconst Checkbox: FC = (props) => {\n const classes = useStyles()\n const { checked } = props\n const [isChecked, setIsChecked] = useState(!!checked)\n\n const handleChange = (event: React.ChangeEvent,\n newChecked: boolean): void => {\n setIsChecked(newChecked)\n const { onChange } = props\n\n if (onChange) onChange(event, newChecked)\n }\n\n return (\n \n }\n icon={\n \n }\n {...props}\n checked={isChecked}\n onChange={handleChange}\n />\n )\n}\n\nexport default Checkbox\n","/* loaded by smart-asset */\nexport default require(\"./nifty~RMIWdZeg.png\")","/* loaded by smart-asset */\nexport default require(\"./rifCom~udwpaCym.png\")","/* loaded by smart-asset */\nexport default require(\"./rifDir~bottaDNJ.png\")","/* loaded by smart-asset */\nexport default require(\"./rifGat~balFpEzC.png\")","/* loaded by smart-asset */\nexport default require(\"./rifMar~IDqKMWpK.png\")","/* loaded by smart-asset */\nexport default require(\"./rifPay~bdtOAceT.png\")","/* loaded by smart-asset */\nexport default require(\"./rifSto~fMRetflo.png\")","import { metaMaskIconImg, niftyIconImg } from '../assets/images'\n\nexport default interface ProviderInfo {\n name: string\n eProvider: EProvider\n iconImg?: string\n}\n\nexport enum EProvider {\n METAMASK = 'Metamask',\n NIFTY = 'Nifty',\n LEDGER = 'Ledger',\n TREZOR = 'Trezor',\n TRUST = 'Trust',\n LOCAL = 'Localhost',\n GO_WALLET = 'GoWallet',\n ALPHA_WALLET = 'AlphaWallet',\n STATUS = 'status',\n CIPHER = 'cipher',\n COINBASE = 'coinbase',\n MIST = 'mist',\n PARITY = 'parity',\n INFURA = 'infura'\n}\n\nexport const getProviderInfo = (eProvider: EProvider): ProviderInfo => {\n switch (eProvider) {\n case EProvider.METAMASK:\n return {\n name: 'MetaMask',\n eProvider,\n iconImg: metaMaskIconImg,\n }\n case EProvider.NIFTY:\n return {\n name: 'Nifty',\n eProvider,\n iconImg: niftyIconImg,\n }\n case EProvider.LEDGER:\n return {\n name: 'Ledger',\n eProvider,\n }\n case EProvider.TREZOR:\n return {\n name: 'Trezor',\n eProvider,\n }\n case EProvider.TRUST:\n return {\n name: 'Trust',\n eProvider,\n }\n case EProvider.GO_WALLET:\n return {\n name: 'Go Wallet',\n eProvider,\n }\n case EProvider.ALPHA_WALLET:\n return {\n name: 'Alpha Wallet',\n eProvider,\n }\n case EProvider.STATUS:\n return {\n name: 'Status',\n eProvider,\n }\n case EProvider.COINBASE:\n return {\n name: 'Coinbase',\n eProvider,\n }\n case EProvider.MIST:\n return {\n name: 'Mist',\n eProvider,\n }\n case EProvider.PARITY:\n return {\n name: 'Parity',\n eProvider,\n }\n case EProvider.INFURA:\n return {\n name: 'Infura',\n eProvider,\n }\n case EProvider.LOCAL:\n return {\n name: 'Localhost',\n eProvider,\n }\n default: {\n throw new Error(\n `EProvider not implemented or unknown. Chosen provider ${eProvider}`,\n )\n }\n }\n}\n","import React, { FC } from 'react'\nimport { makeStyles, Theme, Tooltip } from '@material-ui/core'\nimport Button from './Button'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport { niftyIconImg } from '../../assets/images'\n\nexport interface LoginOptionProps {\n className?: string\n onClick?: () => void\n providerInfo?: ProviderInfo\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n padding: 5,\n margin: 5,\n width: '100%',\n },\n content: {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n maxHeight: theme.spacing(5),\n justifyContent: 'center',\n },\n imageWrapper: {\n maxHeight: theme.spacing(4),\n marginRight: theme.spacing(2),\n },\n}))\n\n/**\n * If not providerInfo is received, we assume there's no provider available and so suggest to install Nifty wallet\n * Same happens when no onClick is provided. We open the Nifty page on a new tab\n */\nconst LoginOption: FC = ({\n className = '',\n onClick,\n providerInfo,\n ...rest\n}) => {\n const classes = useStyles()\n\n const providerContent = (\n
\n {\n providerInfo?.iconImg\n && (\n \n )\n }\n {providerInfo?.name}\n
\n )\n\n const handleOnClick = () => {\n if (onClick) {\n return onClick()\n }\n return window.open('https://www.poa.network/for-users/nifty-wallet/getting-started', '_blank')\n }\n\n return (\n \n {/* only with Nifty we display the Tooltip because atm we can't check if MetaMask is also enabled */}\n {!!providerInfo && providerInfo.eProvider === EProvider.NIFTY\n && (\n \n {providerContent}\n \n )}\n {!!providerInfo && providerInfo.eProvider !== EProvider.NIFTY\n && providerContent}\n {!providerInfo\n && (\n
\n \n Install Nifty wallet\n
\n )}\n \n )\n}\n\nexport default LoginOption\n","import React, { FC } from 'react'\nimport { logoFullWhite } from '../../assets/images'\n\nconst Logo: FC> = (\n { alt = 'RIF OS logo', ...rest },\n) => {alt}\n\nexport default Logo\n","import React, { FC } from 'react'\nimport { logoFullWhite } from '../../assets/images'\n\ninterface LogoProps extends React.Props {\n alt?: string\n height?: string | number\n style?: React.CSSProperties\n}\n\nconst LogoNavbar: FC = ({ alt = 'navbar logo', height = '44px', ...rest }) => (\n \n)\nexport default LogoNavbar\n","import React, { FC } from 'react'\nimport { Theme, makeStyles } from '@material-ui/core/styles'\nimport Tab from '@material-ui/core/Tab'\nimport { NavLink } from 'react-router-dom'\nimport { colors } from '../../theme'\n\nexport interface StyledNavTabProps {\n label: string\n to: string\n value: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n textTransform: 'none',\n color: colors.gray5,\n fontWeight: theme.typography.fontWeightRegular,\n fontSize: theme.typography.pxToRem(15),\n marginRight: theme.spacing(1),\n '&:focus': {\n opacity: 1,\n },\n },\n selected: {\n fontWeight: theme.typography.fontWeightMedium,\n borderBottom: '2px solid #000000',\n },\n}))\n\nconst StyledNavTab: FC = (props: StyledNavTabProps) => {\n const classes = useStyles()\n return \n}\n\nexport default StyledNavTab\n","import React, { FC } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport CheckCircleOutlineOutlinedIcon from '@material-ui/icons/CheckCircleOutlineOutlined'\nimport ErrorIcon from '@material-ui/icons/Error'\nimport WarningIcon from '@material-ui/icons/Warning'\nimport { green, yellow } from '@material-ui/core/colors'\n\nexport interface NetworkIndicatorProps {\n iconClassName?: string\n currentNetworkId?: number\n requiredNetworkId?: number\n onCorrectNetworkMessage?: string\n onNetworkMismatchMessage?: string\n noNetworkMessage?: string\n}\n\nconst defaultonCorrectNetworkMessage = 'You are on the right network'\nconst deaulftonNetworkMismatchMessage = 'You are on the wrong network'\nconst defaultNoNetworkMessage = 'You are not connected to any network'\n\nexport enum NetworkStatus {\n NO_NETWORK = 1,\n NETWORK_MISSMATCH = 2,\n CORRECT_NETWORK = 3\n}\n\nconst getNetworkStatus = (currentNetworkId, requiredNetworkId): NetworkStatus => {\n if (!currentNetworkId) return NetworkStatus.NO_NETWORK\n\n if (currentNetworkId === requiredNetworkId) return NetworkStatus.CORRECT_NETWORK\n return NetworkStatus.NETWORK_MISSMATCH\n}\n\nconst NetworkIndicator: FC = ({\n iconClassName = '',\n currentNetworkId, requiredNetworkId, onCorrectNetworkMessage,\n onNetworkMismatchMessage, noNetworkMessage,\n}) => {\n const networkStatus = getNetworkStatus(currentNetworkId, requiredNetworkId)\n\n const iconPerNetworkStatus = new Map()\n iconPerNetworkStatus.set(NetworkStatus.NO_NETWORK, (\n \n \n \n ))\n iconPerNetworkStatus.set(NetworkStatus.NETWORK_MISSMATCH, (\n \n \n \n ))\n iconPerNetworkStatus.set(NetworkStatus.CORRECT_NETWORK, (\n \n \n \n ))\n\n return (\n iconPerNetworkStatus.get(networkStatus)\n )\n}\n\nexport default NetworkIndicator\n","import React, { FC } from 'react'\nimport { Modal as MUIModal, ModalProps as MUIModalProps } from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport type ModalProps = MUIModalProps;\n\nconst useStyles = makeStyles((theme: Theme) => ({\n paper: {\n backgroundColor: theme.palette.background.paper,\n border: `2px solid ${colors.primary}`,\n boxShadow: theme.shadows[5],\n left: '50%',\n minWidth: 400,\n padding: theme.spacing(2, 4, 3),\n position: 'absolute',\n top: '50%',\n transform: 'translate(-50%, -50%)',\n },\n}))\n\nconst Modal: FC = ({ children, ...rest }) => {\n const classes = useStyles()\n\n return (\n \n
\n {children}\n
\n
\n )\n}\n\nexport default Modal\n","import React, { FC } from 'react'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport interface ModalHeaderProps {\n className?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n borderBottom: `1px solid ${colors.gray2}`,\n color: colors.primary,\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n },\n}))\n\nconst ModalHeader: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalHeader\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\n\nexport interface ModalTitleProps {\n className?: string\n}\n\nconst ModalTitle: FC = ({ children, ...rest }) => (\n \n {children}\n \n)\n\nexport default ModalTitle\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport interface ModalFooterProps {\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n borderTop: `1px solid ${colors.gray2}`,\n display: 'flex',\n justifyContent: 'center',\n paddingTop: theme.spacing(1),\n width: '100%',\n },\n}))\n\nconst ModalFooter: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalFooter\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\n\nexport interface ModalBodyProps {\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n padding: theme.spacing(3, 0),\n width: '100%',\n },\n}))\n\nconst ModalBody: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalBody\n","import React from 'react'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { logoBlueIcon } from '../../assets/images'\n\nconst useStyles = makeStyles(() => ({\n '@keyframes spin': {\n '0%': { transform: 'rotate(0deg)' },\n '100%': { transform: 'rotate(360deg)' },\n },\n root: {\n position: 'relative',\n },\n overlay: {\n position: 'absolute',\n zIndex: 2,\n height: '100%',\n width: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n background: '#FFFFFF55',\n },\n spinner: {\n display: 'inline-block',\n zIndex: 3,\n width: '50px',\n height: '50px',\n border: 'none',\n animation: '$spin 2s ease-in-out infinite',\n },\n}))\n\nconst WithSpinner = (WrappedComponent: React.ElementType) => {\n const Spinner = ({ isLoading, ...props }) => {\n const classes = useStyles()\n\n return (\n
\n {\n isLoading\n && (\n
\n \"logo\"\n
\n )\n }\n \n
\n )\n }\n return Spinner\n}\n\nexport default WithSpinner\n","import React, { FC, useState } from 'react'\nimport { Accordion as MUIAccordion, AccordionProps as MUIAccordionProps } from '@material-ui/core'\nimport Typography from '@material-ui/core/Typography'\nimport AccordionDetails from '@material-ui/core/AccordionDetails'\nimport AccordionSummary from '@material-ui/core/AccordionSummary'\nimport { makeStyles, Theme, createStyles } from '@material-ui/core/styles'\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore'\nimport { colors } from '../../theme'\n\ninterface AccordionProps extends MUIAccordionProps {\n id: string\n title?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n root: {\n boxShadow: 'none',\n color: colors.gray4,\n width: '100%',\n },\n heading: {\n color: colors.gray4,\n fontSize: theme.typography.pxToRem(15),\n fontWeight: theme.typography.fontWeightRegular,\n width: '100%',\n },\n accordionSummary: {\n borderBottom: `1px solid ${colors.gray2}`,\n },\n}))\n\nconst Accordion: FC = ({\n children, expanded, id, title,\n}) => {\n const classes = useStyles()\n const [isExpanded, setIsExpanded] = useState(!!expanded)\n\n const onChange = (): void => setIsExpanded(!isExpanded)\n\n return (\n \n }\n aria-controls={`panel-${id}-content`}\n id={id}\n >\n {title}\n \n \n {children}\n \n \n )\n}\n\nexport default Accordion\n","import React, { FC } from 'react'\nimport Web3 from 'web3'\nimport {\n Button, LoginOption, Modal, ModalBody, ModalFooter, ModalHeader, ModalTitle,\n} from '../atoms'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport NetworkInfo from '../../models/NetworkInfo'\n\nexport interface AccountModalProps {\n web3?: Web3\n networkInfo?: NetworkInfo\n setProvider?: (provider: EProvider, onProviderSet?:\n (account?: string) => void) => Promise\n availableProviders?: ProviderInfo[]\n onClose?: () => void\n onProviderSet?: (account) => void\n open: boolean\n}\n\nconst AccountModal: FC = ({\n setProvider,\n availableProviders,\n open,\n onClose,\n onProviderSet,\n}) => (\n \n \n \n Connect a wallet to get started\n \n \n {\n availableProviders && availableProviders.length && availableProviders.map(\n (providerInfo) => (\n => {\n if (setProvider) await setProvider(providerInfo.eProvider, onProviderSet)\n }}\n />\n ),\n )\n }\n {!availableProviders\n && (\n // TODO: Create LoginOptionTemplate to extract this\n // empty LoginOption means suggest to install Nifty wallet\n \n )}\n \n \n \n Close\n \n \n \n \n)\n\nexport default AccountModal\n","import React, { FC, useState } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport { makeStyles } from '@material-ui/core/styles'\nimport FileCopyIcon from '@material-ui/icons/FileCopy'\nimport Typography from '@material-ui/core/Typography'\n\nexport interface CopyTextTooltipProps {\n displayElement: React.ReactElement\n fullText: string\n}\n\nconst useStyles = makeStyles(() => ({\n tooltipTitle: {\n display: 'flex',\n alignItems: 'center',\n },\n}))\n\nconst CopyTextTooltip: FC = ({ displayElement, fullText }) => {\n const [isCopied, setIsCopied] = useState(false)\n\n const classes = useStyles()\n\n const tooltipContent = (\n
\n \n \n {fullText}\n \n
\n )\n\n return (\n Copied! : tooltipContent}\n onClick={() => {\n navigator.clipboard.writeText(fullText)\n .then(() => { setIsCopied(true) })\n }}\n onClose={() => {\n setIsCopied(false)\n }}\n >\n {displayElement}\n \n )\n}\n\nexport default CopyTextTooltip\n","import React, { FC, useState } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Accordion from '@material-ui/core/Accordion'\nimport AccordionDetails from '@material-ui/core/AccordionDetails'\nimport AccordionSummary from '@material-ui/core/AccordionSummary'\nimport Typography from '@material-ui/core/Typography'\nimport AddIcon from '@material-ui/icons/Add'\nimport RemoveIcon from '@material-ui/icons/Remove'\nimport { colors, fonts } from '../../theme'\n\nexport interface FAQSectionProps {\n answer: string\n initiallyExpanded?: boolean\n question: string\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n boxShadow: 'none',\n color: colors.gray4,\n width: '100%',\n },\n heading: {\n display: 'flex',\n justifyContent: 'center',\n color: colors.gray5,\n fontSize: fonts.size.subtitleSmall,\n width: '100%',\n },\n headingExpanded: {\n color: colors.primary,\n },\n headingCollapsed: {\n fontWeight: fonts.weight.regular,\n },\n panelDetails: {\n display: 'flex',\n justifyContent: 'center',\n },\n answerContainer: {\n [theme.breakpoints.up('md')]: {\n maxWidth: '80%',\n },\n },\n answerText: {\n color: colors.gray5,\n },\n}))\n\nconst FAQSection: FC = ({\n className = '', initiallyExpanded, question, answer,\n}) => {\n const classes = useStyles()\n const [isExpanded, setIsExpanded] = useState(!!initiallyExpanded)\n\n const onChange = (): void => setIsExpanded(!isExpanded)\n\n return (\n \n : }\n >\n {question}\n \n \n
\n {answer}\n
\n
\n
\n )\n}\n\nexport default FAQSection\n","import React, { FC } from 'react'\nimport { FormControlLabel } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Checkbox, { CheckboxProps } from '../atoms/Checkbox'\nimport { colors } from '../../theme'\n\nexport interface LabeledCheckboxProps extends CheckboxProps {\n labelText: string\n labelClassName?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n color: colors.gray4,\n width: '100%',\n },\n}))\n\nconst LabeledCheckbox: FC = ({ labelText, labelClassName = '', ...rest }) => {\n const classes = useStyles()\n return (\n \n }\n />\n\n )\n}\n\nexport default LabeledCheckbox\n","import React, { FC } from 'react'\nimport LabeledCheckbox, { LabeledCheckboxProps } from './LabeledCheckbox'\n\nexport interface FilterCheckboxCardProps {\n className?: string\n items: LabeledCheckboxProps[]\n onClick?: (event: React.MouseEvent) => void\n}\n\nconst FilterCheckboxCard: FC = ({ className = '', onClick, items }) => (\n
\n {items.map((item: LabeledCheckboxProps, i) => (\n \n ))}\n
\n)\n\nexport default FilterCheckboxCard\n","const shortenString = (\n str: string,\n largerThan = 16,\n charsShownCount = 6,\n): string => (str.length > largerThan\n ? `${str.substr(0, charsShownCount)}...${str.substr(str.length - 4)}`\n : str)\n\nconst removeEmptySpaces = (str: string): string => str.replace(/\\s/g, '')\n\nconst maxSupportedNumber = 99999999999999\nconst minSupportedNumber = 0.000001\n\nconst validatedNumber = (num: number): number => {\n if (num > 0) {\n if (num > maxSupportedNumber) return maxSupportedNumber\n\n if (num < minSupportedNumber) return minSupportedNumber\n }\n\n if (num < 0) {\n if (num < -maxSupportedNumber) return -maxSupportedNumber\n\n if (num > -minSupportedNumber) return -minSupportedNumber\n }\n return num\n}\n\nexport {\n shortenString,\n removeEmptySpaces,\n maxSupportedNumber,\n minSupportedNumber,\n validatedNumber,\n}\n","import React, { FC } from 'react'\nimport { NavLinkProps, NavLink } from 'react-router-dom'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../theme'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FooterColumnProps {\n className?: string\n links: FooterLinkProps[]\n title: string\n}\n\nexport interface FooterLinkProps extends NavLinkProps {\n isExternal?: boolean\n title: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n },\n footerLink: {\n color: colors.gray4,\n fontWeight: fonts.weight.light,\n textDecoration: 'none',\n '&:hover': {\n fontWeight: fonts.weight.regular,\n },\n },\n footerTitle: {\n fontSize: fonts.size.subtitleBig,\n textAlign: 'center',\n },\n}))\n\nconst FooterColumn: FC = ({ title, links, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {title}\n {\n links.map((link: FooterLinkProps) => {\n const key = removeEmptySpaces(link.title)\n\n if (link.isExternal) {\n const href = (link.to || '#').toString()\n return (\n \n {link.title}\n \n )\n }\n return (\n \n {link.title}\n \n )\n })\n }\n
\n )\n}\n\nexport default FooterColumn\n","import React, { FC } from 'react'\nimport {\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n ModalTitle,\n} from '../atoms'\nimport { ModalProps } from '../atoms/modal/Modal'\n\nexport interface ModalDialogueProps extends ModalProps {\n title: string\n footer?: React.ReactElement\n}\n\nconst ModalDialogue: FC = ({\n title,\n footer,\n children,\n ...props\n}) => (\n \n \n \n {title}\n \n {children}\n {footer}\n \n \n)\n\nexport default ModalDialogue\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Input, { InputProps } from '@material-ui/core/Input'\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../theme'\n\nexport interface UnitsInputProps extends InputProps {\n handleOnChange: (event: React.ChangeEvent) => void\n handleOnBlur?: () => void\n maxValue?: number\n minValue?: number\n step?: number\n units?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n color: colors.gray4,\n display: 'flex',\n },\n input: {\n color: colors.gray4,\n paddingLeft: theme.spacing(0.1),\n textAlign: 'center',\n '&::before': {\n borderBottom: `1px solid ${colors.gray4}`,\n },\n },\n inputContainer: {\n paddingRight: '0 !important',\n },\n units: {\n color: colors.gray4,\n display: 'flex',\n fontSize: fonts.size.tiny,\n },\n unitsContainer: {\n alignSelf: 'center',\n color: colors.gray4,\n display: 'flex',\n fontSize: fonts.size.normal,\n paddingLeft: '0 !important',\n },\n}))\n\nconst UnitsInput: FC = ({\n maxValue,\n minValue,\n units,\n value,\n step = 1,\n handleOnBlur,\n handleOnChange,\n ...rest\n}) => {\n const classes = useStyles()\n\n return (\n \n \n \n \n \n \n \n {units}\n \n \n \n \n )\n}\n\nexport default UnitsInput\n","import Slider, { SliderProps } from '@material-ui/core/Slider'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport UnitsInput from './UnitsInput'\nimport { validatedNumber } from '../../utils'\nimport { fonts } from '../../theme'\n\nexport interface RangeSliderWithInputsProps extends SliderProps {\n values: {\n start: number\n end: number\n }\n unit?: string\n handleChange: ({ min, max }) => void\n className?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n width: '100%',\n },\n inputsContainer: {\n alignSelf: 'center',\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n },\n toContainer: {\n alignSelf: 'center',\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n fontWeight: fonts.weight.regular,\n },\n}))\n\nconst RangeSliderWithInputs: FC = ({\n values: {\n start: startValue, end: endValue,\n }, unit, handleChange, className, ...rest\n}) => {\n const classes = useStyles()\n\n const maxValue = rest.max || endValue\n const minValue = rest.min || startValue\n const step = rest.step || 1\n\n const handleStartInputChange = (\n event: React.ChangeEvent,\n ): void => {\n const newStartValue = validatedNumber(Number(event.target.value)) || minValue\n handleChange({ min: newStartValue, max: endValue })\n }\n\n const handleEndInputChange = (\n event: React.ChangeEvent,\n ): void => {\n const newEndValue = validatedNumber(Number(event.target.value)) || endValue\n handleChange({ min: startValue, max: newEndValue })\n }\n\n const handleSliderChange = (\n _: React.ChangeEvent<{}>, newSliderValue: number | number[],\n ): void => {\n handleChange({ min: newSliderValue[0], max: newSliderValue[1] })\n }\n\n const handleStartValueBlur = (): void => {\n if (startValue < minValue) {\n handleChange({ min: minValue, max: endValue })\n } else if (startValue > endValue) {\n handleChange({ min: endValue, max: endValue })\n }\n }\n\n const handleEndValueBlur = (): void => {\n if (endValue < startValue) {\n handleChange({ min: minValue, max: startValue })\n } else if (endValue > maxValue) {\n handleChange({ min: minValue, max: maxValue })\n }\n }\n\n const getCommonInputValues = (): {} => ({\n maxValue,\n minValue,\n step,\n units: unit,\n })\n\n return (\n
\n \n
\n \n \n to\n \n \n
\n
\n )\n}\n\nexport default RangeSliderWithInputs\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport CopyTextTooltip from './CopyTextTooltip'\nimport { shortenString } from '../../utils'\n\nexport interface ShortenTextTooltipProps {\n value: string\n maxLength?: number\n charsShownCount?: number\n}\n\nconst ShortenTextTooltip: FC = ({ value, maxLength = 20, charsShownCount }) => (\n \n {\n value.length > maxLength\n && (\n {shortenString(value, maxLength, charsShownCount || maxLength - 5)}}\n fullText={value}\n />\n )\n }\n {\n value.length <= maxLength\n && value\n }\n \n)\n\nexport default ShortenTextTooltip\n","import React, { FC } from 'react'\nimport Tabs, { TabsProps } from '@material-ui/core/Tabs'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { colors } from '../../theme'\n\nexport interface StyledTabsProps {\n value: string\n onChange: (event: React.ChangeEvent<{}>, newValue: string) => void\n}\n\nconst useStyles = makeStyles({\n indicator: {\n display: 'flex',\n justifyContent: 'center',\n backgroundColor: 'transparent',\n },\n root: {\n borderBottom: `1px solid ${colors.gray3}`,\n },\n})\n\nconst StyledTabs: FC = (props: TabsProps) => {\n const { children } = props\n const classes = useStyles()\n return (\n \n {children}\n \n )\n}\n\nexport default StyledTabs\n","import { Tab as MUITab, Tabs as MUITabs } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React, { FC } from 'react'\nimport { colors, fonts } from '../../theme'\n\nexport interface SwitchTabsProps {\n label1: string\n label2: string\n value?: 0 | 1\n onChange: (event: React.ChangeEvent<{}>, value: number) => void\n}\n\nconst a11yProps = (index: number): {} => ({\n id: `full-width-tab-${index}`,\n 'aria-controls': `full-width-tabpanel-${index}`,\n})\n\nconst useStyles = makeStyles(() => ({\n root: {\n backgroundColor: colors.white,\n minHeight: 20,\n width: '100%',\n border: `${colors.primary} solid 1px`,\n borderRadius: 50,\n overflow: 'hidden',\n },\n tabContainer: {\n minHeight: 20,\n width: '100%',\n },\n tab: {\n '&:hover': {\n color: colors.primary,\n },\n borderRadius: 50,\n color: colors.gray3,\n fontWeight: fonts.weight.light,\n maxWidth: '50%',\n minHeight: '100%',\n minWidth: '50%',\n outlineStyle: 'none',\n padding: 0,\n textTransform: 'capitalize',\n zIndex: 1,\n '&:focus': {\n outlineStyle: 'none',\n },\n },\n // shows the transition between tabs\n tabIndicator: {\n backgroundColor: colors.primary,\n borderRadius: 50,\n height: '100%',\n },\n tabSelected: {\n // the '!important' overrides the on hover functionality when it's active\n backgroundColor: `${colors.primary} !important`,\n color: `${colors.white} !important`,\n },\n}))\n\nconst SwitchTabs: FC = ({\n label1, label2, value: controlledValue, onChange,\n}) => {\n const classes = useStyles()\n\n const handleChange = (\n event: React.ChangeEvent<{}>, newValue: number,\n ): void => {\n onChange(event, newValue)\n }\n\n return (\n
\n \n \n \n \n
\n )\n}\n\nexport default SwitchTabs\n","import React, { FC } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport IconButton, { IconButtonProps } from '@material-ui/core/IconButton'\n\nexport interface TooltipIconButtonProps {\n tooltipTitle: string\n iconButtonProps: IconButtonProps\n icon: React.ReactNode\n}\n\nconst TooltipIconButton: FC = ({\n tooltipTitle,\n iconButtonProps,\n icon,\n}) => (\n \n \n \n {icon}\n \n \n\n \n)\n\nexport default TooltipIconButton\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport Box from '@material-ui/core/Box'\nimport Grid from '@material-ui/core/Grid'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../theme'\nimport ModalDialogue from './ModalDialogue'\n\nexport interface WrongNetworkModalProps {\n open: boolean\n currentNetworkName?: string\n requiredNetworkName: string\n onClose: () => void\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n boxContainer: {\n border: `1px solid ${colors.primary}`,\n padding: theme.spacing(5),\n marginTop: theme.spacing(3),\n },\n loaderContainer: {\n display: 'flex',\n justifyContent: 'center',\n },\n}))\n\nconst WrongNetworkModal: FC = ({\n open, currentNetworkName = 'Private network', requiredNetworkName, onClose,\n}) => {\n const classes = useStyles()\n return (\n \n \n \n This dApp only works on the\n {' '}\n {requiredNetworkName}\n .\n You are currently on\n {' '}\n {currentNetworkName}\n .\n \n \n \n \n \n \n Waiting for the right network...\n \n Switch networks on your wallet\n \n \n \n \n \n )\n}\nexport default WrongNetworkModal\n","import React, { FC, HTMLAttributes } from 'react'\nimport { Grid } from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport FooterColumn, { FooterColumnProps } from '../molecules/FooterColumn'\nimport { colors, fonts } from '../../theme'\nimport { logoBlackAndBlue } from '../../assets/images'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FooterProps extends HTMLAttributes {\n className?: string\n copyrightText: string\n linksColumns: FooterColumnProps[]\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n copyright: {\n display: 'flex',\n justifyContent: 'center',\n },\n copyrightContent: {\n color: colors.gray4,\n fontSize: fonts.size.tiny,\n },\n footerContainer: {\n backgroundColor: colors.gray2,\n display: 'flex',\n justifyContent: 'center',\n paddingBottom: theme.spacing(2),\n width: '100%',\n },\n footerContent: {\n marginTop: theme.spacing(2),\n maxWidth: '80%',\n width: '100%',\n },\n linksColumn: {\n marginBottom: theme.spacing(1),\n },\n logoColumn: {\n display: 'flex',\n justifyContent: 'center',\n padding: theme.spacing(5),\n },\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n paddingTop: theme.spacing(4),\n width: '100%',\n },\n tongue: {\n backgroundColor: colors.gray2,\n borderTopLeftRadius: '50% 80%',\n borderTopRightRadius: '50% 80%',\n height: theme.spacing(10),\n width: '100%',\n },\n}))\n\nconst Footer: FC = ({\n className = '', copyrightText, linksColumns, ...rest\n}) => {\n const classes = useStyles()\n\n return (\n
\n
\n
\n
\n \n \n \"logo\"\n \n {\n linksColumns.map((linkColumn: FooterColumnProps) => (\n \n \n \n ))\n }\n \n
\n \n {copyrightText}\n \n
\n
\n
\n
\n )\n}\n\nexport default Footer\n","export enum ConnectionStatus {\n LoggedIn = 0,\n LoggedOut = 1,\n WalletLocked = 2,\n WrongNetwork = 3\n}\n\nexport default ConnectionStatus\n","import Web3 from 'web3'\nimport NetworkInfo from '../models/NetworkInfo'\nimport networksData from '../data/networks.json'\nimport ProviderInfo, {\n EProvider,\n getProviderInfo,\n} from '../models/ProviderInfo'\nimport ConnectionStatus from '../models/Enums'\n\ndeclare global {\n interface Window {\n ethereum: any // FIXME: This should be properly typed as per metamask\n web3: Web3\n }\n}\n\nexport function getWeb3(\n provider: EProvider = EProvider.METAMASK,\n): Promise {\n return new Promise((resolve, reject) => {\n switch (provider) {\n // Injected Web3 wallet like MetaMask or Nifty\n case EProvider.NIFTY:\n case EProvider.METAMASK: {\n // New MetaMask\n if (window.ethereum) {\n const web3 = new Web3(window.ethereum)\n window.ethereum\n .enable()\n .then(() => resolve(web3))\n .catch(reject)\n } else if (window.web3) {\n // Older versions of MetaMask or other\n resolve(new Web3(window.web3.currentProvider))\n } else reject(new Error('No injected web3 found'))\n break\n }\n\n // Localhost\n case EProvider.LOCAL: {\n const localhostProvider = new Web3.providers.HttpProvider(\n \"'http://127.0.0.1:4444'\",\n )\n resolve(new Web3(localhostProvider))\n break\n }\n\n // Unknown & not implemented\n default: {\n reject(\n new Error(\n `Provider not implemented or unknown. Chosen provider ${provider}`,\n ),\n )\n break\n }\n }\n })\n}\n\nexport const getNetworkInfo = (\n networkId: number,\n chainId?: number,\n): NetworkInfo | undefined => networksData.find((n) => (chainId\n ? n.networkId === networkId && n.chainId === chainId\n : n.networkId === networkId)) as NetworkInfo\n\nexport const getNetworkInfoFromWeb3 = async (\n web3: Web3,\n): Promise => {\n // set networkId and chainId\n let networkId: number | undefined\n let chainId: number | undefined\n try {\n networkId = await web3.eth.net.getId()\n\n if (networkId) {\n chainId = await web3.eth.getChainId()\n }\n } catch (error) {}\n let networkInfo: NetworkInfo | undefined\n\n if (networkId) {\n try {\n networkInfo = getNetworkInfo(networkId, chainId)\n } catch (error) {}\n }\n return networkInfo\n}\n\nconst getWeb3Provider = (): any => {\n // New Metamask\n if (window.ethereum) return window.ethereum\n\n // Older versions of Metamask or other\n if (window.web3) return window.web3.currentProvider\n return undefined\n}\n\n/* eslint-disable complexity */\nexport const getAvailableProviders = (): ProviderInfo[] | undefined => {\n const result: ProviderInfo[] = []\n\n const currentProvider = getWeb3Provider()\n\n if (!currentProvider) return undefined\n\n if (currentProvider.isMetaMask) {\n // Nifty is also MetaMask\n result.push(\n currentProvider.isNiftyWallet\n ? getProviderInfo(EProvider.NIFTY)\n : getProviderInfo(EProvider.METAMASK),\n )\n }\n\n if (currentProvider.isTrust) result.push(getProviderInfo(EProvider.TRUST))\n\n if (currentProvider.isGoWallet) result.push(getProviderInfo(EProvider.GO_WALLET))\n\n if (currentProvider.isAlphaWallet) result.push(getProviderInfo(EProvider.ALPHA_WALLET))\n\n if (currentProvider.isStatus) result.push(getProviderInfo(EProvider.STATUS))\n\n if (currentProvider.isToshi) result.push(getProviderInfo(EProvider.COINBASE))\n\n // eslint-disable-next-line no-underscore-dangle\n if (typeof (window as any).__CIPHER__ !== 'undefined') result.push(getProviderInfo(EProvider.CIPHER))\n\n if (currentProvider.constructor.name === 'EthereumProvider') result.push(getProviderInfo(EProvider.MIST))\n\n if (currentProvider.constructor.name === 'Web3FrameProvider') result.push(getProviderInfo(EProvider.PARITY))\n\n if (currentProvider.host && currentProvider.host.indexOf('infura') !== -1) result.push(getProviderInfo(EProvider.INFURA))\n\n if (currentProvider.host && currentProvider.host.indexOf('localhost') !== -1) result.push(getProviderInfo(EProvider.LOCAL))\n\n return result\n}\n\nexport const getConnectionStatus = (\n web3?: Web3,\n requiredNetworkId?: number,\n currentNetworkId?: number,\n account?: string,\n): ConnectionStatus => {\n if (!web3) return ConnectionStatus.LoggedOut\n\n if (currentNetworkId !== requiredNetworkId) {\n return ConnectionStatus.WrongNetwork\n }\n\n if (account) {\n return ConnectionStatus.LoggedIn\n }\n return ConnectionStatus.WalletLocked\n}\n","import React, { FC, useState, useEffect } from 'react'\nimport Web3 from 'web3'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Popover from '@material-ui/core/Popover'\nimport Typography from '@material-ui/core/Typography'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport { shortenString } from '../../utils'\nimport { Button, NetworkIndicator } from '../atoms'\nimport { colors, fonts } from '../../theme'\nimport { AccountModal, WrongNetworkModal } from '../molecules'\nimport ConnectionStatus from '../../models/Enums'\nimport { getConnectionStatus } from '../../services/Web3Service'\nimport NetworkInfo from '../../models/NetworkInfo'\n\nexport interface AccountProps {\n requiredNetworkName: string\n setProvider?: (provider: EProvider) => Promise\n web3?: Web3\n networkInfo?: NetworkInfo\n account?: string\n availableProviders?: ProviderInfo[]\n requiredNetworkId?: number\n onCorrectNetworkMessage?: string\n onNetworkMismatchMessage?: string\n noNetworkMessage?: string\n modalInitiallyOpened?: boolean\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n accountText: {\n fontSize: fonts.size.tiny,\n textAlign: 'center',\n },\n button: {\n border: `1px solid ${colors.white}`,\n '&:hover': {\n border: `1px solid ${colors.transparent}`,\n },\n },\n networkIndicator: {\n marginRight: theme.spacing(1),\n },\n rightNetwork: {\n padding: theme.spacing(2),\n },\n}))\n\nconst Account: FC = (props) => {\n const {\n web3,\n networkInfo,\n account,\n setProvider,\n availableProviders,\n requiredNetworkId,\n onCorrectNetworkMessage,\n onNetworkMismatchMessage,\n noNetworkMessage,\n requiredNetworkName,\n modalInitiallyOpened = false,\n } = props\n const classes = useStyles()\n\n const [accountModalOpen, setAccountModalOpen] = useState(modalInitiallyOpened)\n const handleAccountModalClose = (): void => setAccountModalOpen(false)\n const handleAccountModalOpen = (): void => setAccountModalOpen(true)\n const [wrongNetModalOpen, setWrongNetModalOpen] = useState(false)\n const openWrongNetModal = (): void => setWrongNetModalOpen(true)\n const closeWrongNetModal = (): void => setWrongNetModalOpen(false)\n const connectionStatus: ConnectionStatus = getConnectionStatus(web3, requiredNetworkId, networkInfo?.networkId, account)\n\n // TODO: extract popover functionallity into new component\n const [anchorEl, setAnchorEl] = React.useState(null)\n\n const popoverOpen = Boolean(anchorEl)\n const id = popoverOpen ? 'right-net-popover' : undefined\n\n const handlePopoverClose = () => {\n setAnchorEl(null)\n }\n\n useEffect(() => {\n if (connectionStatus === ConnectionStatus.WrongNetwork) {\n openWrongNetModal()\n } else {\n closeWrongNetModal()\n handlePopoverClose()\n }\n }, [connectionStatus])\n\n const accountText = (): string => {\n if (connectionStatus === ConnectionStatus.LoggedOut) return 'Connect wallet'\n\n if (connectionStatus === ConnectionStatus.WrongNetwork) return 'Wrong Network'\n\n if (account) {\n // means connectionStatus === ConnectionStatus.LoggedIn\n return shortenString(account)\n }\n return 'Unlock your wallet'\n }\n\n const onAccountClicked = (event: React.MouseEvent): void | null => {\n if (connectionStatus === ConnectionStatus.WrongNetwork) return openWrongNetModal()\n\n if (connectionStatus === ConnectionStatus.LoggedOut) return handleAccountModalOpen()\n\n if (connectionStatus === ConnectionStatus.LoggedIn) return setAnchorEl(event.currentTarget)\n return null\n }\n\n return (\n \n \n {/* TODO: extract molecule */}\n \n \n {`You are successfully connected to ${networkInfo?.name}.`}\n \n \n \n \n \n )\n}\n\nexport default Account\n","import React, { FC } from 'react'\nimport {\n AppBar, Grid, ListItemIcon, Toolbar,\n} from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { NavLink } from 'react-router-dom'\nimport Typography from '@material-ui/core/Typography'\nimport { ActionHeaderItemProps, HeaderProps, NavItemProps } from './HeaderProps'\nimport { LogoNavbar } from '../../atoms'\nimport { colors, fonts, globalConstants } from '../../../theme'\nimport { removeEmptySpaces } from '../../../utils'\n\nconst useStyles = makeStyles((theme: Theme) => ({\n activeNavlink: {\n color: `${colors.white} !important`,\n fontWeight: fonts.weight.medium,\n },\n navLink: {\n alignItems: 'center',\n color: colors.white,\n display: 'flex',\n paddingLeft: theme.spacing(5),\n paddingRight: theme.spacing(5),\n textAlign: 'center',\n textDecoration: 'none',\n '&:hover': {\n color: colors.gray5,\n textDecoration: 'none',\n },\n },\n navLinkContainer: {\n display: 'flex',\n },\n root: {\n boxShadow: 'none',\n // this height needs to be equal to the marginTop of PageTemplate\n height: theme.spacing(globalConstants.headerHeight),\n },\n}))\n\nconst HeaderDesktop: FC = ({\n hreflogo, itemsStart, itemsEnd, login,\n}) => {\n const classes = useStyles()\n const Login = login\n\n return (\n \n \n \n \n \n \n \n \n \n {\n !!itemsStart?.length\n && itemsStart.map((navItem: NavItemProps) => (\n \n \n {navItem.title}\n \n \n ))\n }\n \n \n {\n !!itemsEnd?.length\n && itemsEnd.map(({ icon, ...rest }: ActionHeaderItemProps) => (\n \n {icon}\n \n ))\n }\n \n \n
\n \n
\n \n \n
\n
\n )\n}\n\nexport default HeaderDesktop\n","import React, { FC, useState } from 'react'\nimport {\n AppBar,\n Divider,\n Drawer, Toolbar,\n IconButton, List, ListItem,\n ListItemText, ListItemIcon, Grid,\n} from '@material-ui/core'\nimport { NavLink } from 'react-router-dom'\nimport MenuIcon from '@material-ui/icons/Menu'\nimport ChevronLeftIcon from '@material-ui/icons/ChevronLeft'\nimport { Theme, createStyles, makeStyles } from '@material-ui/core/styles'\nimport { ActionHeaderItemProps, HeaderProps, NavItemProps } from './HeaderProps'\nimport { colors, globalConstants } from '../../../theme'\nimport { LogoNavbar } from '../../atoms'\nimport { removeEmptySpaces } from '../../../utils'\n\nconst drawerWidth = 240\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n drawerHeader: {\n display: 'flex',\n alignItems: 'center',\n padding: theme.spacing(0, 1),\n // necessary for content to be below app bar\n ...theme.mixins.toolbar,\n justifyContent: 'flex-end',\n },\n drawerPaper: {\n width: drawerWidth,\n },\n mobileAppBar: {\n boxShadow: 'none',\n // this height needs to be equal to the marginTop of PageTemplate\n height: theme.spacing(globalConstants.headerHeight),\n transition: theme.transitions.create(['margin', 'width'], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n },\n mobileAppBarShift: {\n width: `calc(100% - ${drawerWidth}px)`,\n marginLeft: drawerWidth,\n transition: theme.transitions.create(['margin', 'width'], {\n easing: theme.transitions.easing.easeOut,\n duration: theme.transitions.duration.enteringScreen,\n }),\n },\n mobileNavLink: {\n alignItems: 'center',\n color: colors.gray4,\n display: 'flex',\n textDecoration: 'none',\n width: '100%',\n '&:hover': {\n color: colors.gray5,\n textDecoration: 'none',\n },\n },\n mobileNavLinkActive: {\n color: `${colors.primary} !important`,\n },\n}))\n\nconst HeaderMobile: FC = ({\n hreflogo, itemsStart, itemsEnd, login: Login,\n}) => {\n const classes = useStyles()\n const [open, setOpen] = useState(false)\n\n const toggleDrawer = (isOpen: boolean) => (\n event: React.KeyboardEvent | React.MouseEvent,\n ): void => {\n if (\n event.type === 'keydown'\n && ((event as React.KeyboardEvent).key === 'Tab'\n || (event as React.KeyboardEvent).key === 'Shift')\n ) {\n return\n }\n setOpen(isOpen)\n }\n\n return (\n \n \n \n {!open && (\n \n \n \n \n \n \n \n \n \n \n \n \n {\n !!itemsEnd?.length\n && itemsEnd.map(({ icon, ...rest }: ActionHeaderItemProps) => (\n \n {icon}\n \n ))\n }\n \n \n
\n \n
\n
\n \n )}\n
\n \n \n
\n \n \n \n
\n \n \n {\n !!itemsStart?.length\n && itemsStart.map((headerItem: NavItemProps) => (\n \n \n \n {headerItem.icon}\n \n \n \n \n ))\n }\n \n \n \n\n )\n}\n\nexport default HeaderMobile\n","import React, { FC } from 'react'\nimport Hidden from '@material-ui/core/Hidden'\nimport { HeaderProps } from './HeaderProps'\nimport HeaderDesktop from './HeaderDesktop'\nimport HeaderMobile from './HeaderMobile'\n\nconst Header: FC = (props) => (\n \n \n \n \n \n \n \n \n)\n\nexport default Header\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../../theme'\nimport { headerTongueImg } from '../../../assets/images'\n\nexport interface HeaderTongueProps {\n description: string\n titleLine1: string\n titleLine2: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n textContainer: {\n alignItems: 'center',\n backgroundColor: colors.primary,\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n },\n textContent: {\n color: colors.white,\n display: 'flex',\n flexDirection: 'column',\n textAlign: 'center',\n [theme.breakpoints.down('sm')]: {\n maxWidth: '90%',\n },\n [theme.breakpoints.up('md')]: {\n maxWidth: '65%',\n },\n [theme.breakpoints.up('xl')]: {\n maxWidth: '55%',\n },\n },\n titleContent: {\n marginBottom: theme.spacing(1),\n fontSize: theme.spacing(5),\n fontWeight: fonts.weight.regular,\n },\n tongueImg: {\n width: '100%',\n },\n}))\n\nconst HeaderTongue: FC = (\n { description, titleLine1, titleLine2 },\n) => {\n const classes = useStyles()\n\n return (\n \n
\n
\n \n {titleLine1}\n
\n {' '}\n {titleLine2}\n \n {description}\n
\n
\n \n
\n )\n}\n\nexport default HeaderTongue\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport FAQSection, { FAQSectionProps } from '../molecules/FAQSection'\nimport { colors } from '../../theme'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FAQPageTemplateProps {\n className?: string\n mainTitle: string\n questionsAndAnswers: FAQSectionProps[]\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n marginTop: theme.spacing(3),\n },\n container: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n [theme.breakpoints.up('md')]: {\n maxWidth: '80%',\n },\n },\n grayBackground: {\n backgroundColor: colors.gray1,\n },\n mainTitle: {\n fontSize: theme.typography.pxToRem(50),\n margin: theme.spacing(2, 0),\n },\n questionsSection: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n marginTop: theme.spacing(2),\n },\n}))\n\nconst FAQPageTemplate: FC = ({ className = '', mainTitle, questionsAndAnswers }) => {\n const classes = useStyles()\n return (\n
\n
\n {mainTitle}\n
\n {\n questionsAndAnswers.map((qAndA: FAQSectionProps, i) => (\n \n ))\n }\n
\n
\n
\n )\n}\n\nexport default FAQPageTemplate\n","import React, { FC, HTMLAttributes } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { globalConstants } from '../../theme'\n\nexport type PageTemplateProps = HTMLAttributes;\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n // as the header has fixed position, we need to match its height\n marginTop: theme.spacing(globalConstants.headerHeight),\n width: '100%',\n },\n}))\n\nconst PageTemplate: FC = ({ children, className = '', ...props }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default PageTemplate\n","import React, {\n Component, createContext, ReactNode,\n} from 'react'\nimport Web3 from 'web3'\nimport {\n getWeb3, getNetworkInfoFromWeb3, getAvailableProviders,\n} from '../services/Web3Service'\nimport NetworkInfo from '../models/NetworkInfo'\nimport ProviderInfo, { EProvider } from '../models/ProviderInfo'\n\nexport interface Web3ProviderProps {\n state: {\n provider?: EProvider\n web3?: Web3\n account?: string\n networkInfo?: NetworkInfo\n requiredNetworkId?: number\n }\n actions: {\n setProvider?: (\n provider: EProvider,\n onStateChanged?: (account?: string) => void\n ) => Promise\n onConnectedNetworkChange?: () => void\n onConnectedAccountChange?: () => void\n }\n requiredNetworkId?: number\n requiredChainId?: number\n availableProviders?: ProviderInfo[]\n}\n\nexport const defaultWeb3State: Web3ProviderState = {\n provider: undefined,\n web3: undefined,\n account: undefined,\n networkInfo: undefined,\n}\n\nexport const Web3Store = createContext({\n state: defaultWeb3State,\n actions: {\n setProvider: (): Promise => Promise.resolve(),\n onConnectedNetworkChange: (): any => 0,\n onConnectedAccountChange: (): any => 0,\n },\n requiredNetworkId: undefined,\n requiredChainId: undefined,\n})\n\ninterface Web3ProviderState {\n provider?: EProvider\n web3?: Web3\n account?: string\n networkInfo?: NetworkInfo\n}\n\nconst getAccountFromEthAccounts = (accounts: string[] | string): string | undefined => {\n let account: string\n\n if (Array.isArray(accounts)) [account] = accounts\n else account = accounts\n return account\n}\n\n/**\n * The provider will not read the account when a requiredNetworkId was provided\n * and it does not match the networkId of current networkInfo, same applies to\n * chainId. Nothing happens if the requiredNetworkId was not specified\n * @param requiredNetworkId given on the props of the provider\n * @param requiredChainId given on the props of the provider\n * @param networkInfo obtained from the wallet\n */\nconst shouldReadAccount = (\n requiredNetworkId?: number,\n requiredChainId?: number,\n networkInfo?: NetworkInfo,\n): boolean => {\n // the consumer did not provide enough information to validate the network, so we do not check\n if (!requiredNetworkId) return true\n\n if (requiredNetworkId === networkInfo?.networkId) {\n // only when chainId is provided we compare it\n if (requiredChainId) return requiredChainId === networkInfo?.chainId\n return true\n }\n return false\n}\n\nclass Web3Provider extends Component {\n private readonly requiredNetworkId?: number\n\n private readonly requiredChainId?: number\n\n private availableProviders?: ProviderInfo[]\n\n constructor(props: Web3ProviderProps) {\n super(props)\n this.state = defaultWeb3State\n this.requiredNetworkId = props.requiredNetworkId\n this.requiredChainId = props.requiredChainId\n this.onConnectedNetworkChange = props.actions.onConnectedNetworkChange\n this.onConnectedAccountChange = props.actions.onConnectedAccountChange\n this.setProvider = this.setProvider.bind(this)\n this.initialize()\n }\n\n private readonly onConnectedNetworkChange?: () => void\n\n private readonly onConnectedAccountChange?: () => void\n\n public async setProvider(provider: EProvider,\n onStateChanged?: (account?: string) => void): Promise {\n const web3 = await getWeb3(provider)\n const accounts = await web3.eth.getAccounts()\n const networkInfo = await getNetworkInfoFromWeb3(web3)\n // only validate requiredNetworkId and requiredChainId when are provided\n const shouldSetAccount = shouldReadAccount(this.requiredNetworkId, this.requiredChainId, networkInfo)\n\n const account = shouldSetAccount\n ? getAccountFromEthAccounts(accounts)\n : undefined\n\n this.setState(\n {\n web3,\n provider,\n account,\n networkInfo,\n },\n () => (onStateChanged && onStateChanged(account)),\n )\n }\n\n private initialize(): void {\n if (!window.ethereum) {\n return\n }\n this.availableProviders = getAvailableProviders()\n\n window.ethereum.autoRefreshOnNetworkChange = false\n // handle on networkChange\n window.ethereum.on('networkChanged', async (_netId) => {\n const { networkInfo } = this.state\n\n if (!networkInfo) return // wallet is not connected\n const { provider } = this.state\n const web3 = await getWeb3(provider)\n const accounts = await web3.eth.getAccounts()\n const newNetworkInfo = await getNetworkInfoFromWeb3(web3)\n\n // we do not want to set the account if we know it is the wrong network\n const shouldSetAccount = shouldReadAccount(\n this.requiredNetworkId,\n this.requiredChainId,\n newNetworkInfo,\n )\n const account = shouldSetAccount\n ? getAccountFromEthAccounts(accounts)\n : undefined\n\n this.setState(\n {\n networkInfo: newNetworkInfo,\n account,\n },\n () => this.onConnectedNetworkChange && this.onConnectedNetworkChange(),\n )\n })\n // handle on accountsChanged\n window.ethereum.on('accountsChanged', (accounts: string | string[]) => {\n const { networkInfo } = this.state\n\n if (!networkInfo) return // wallet is not connected\n // we only care about this change if it is on the right network\n // or if we can not validate the required network\n const shouldSetAccount = shouldReadAccount(\n this.requiredNetworkId, this.requiredChainId, networkInfo,\n )\n\n if (shouldSetAccount) {\n const account = getAccountFromEthAccounts(accounts)\n\n if (account) {\n this.setState({\n account,\n },\n () => this.onConnectedAccountChange\n && this.onConnectedAccountChange())\n }\n }\n })\n }\n\n public render(): ReactNode {\n const {\n provider,\n web3,\n account,\n networkInfo,\n } = this.state\n const {\n setProvider,\n onConnectedNetworkChange,\n onConnectedAccountChange,\n availableProviders,\n } = this\n\n const { children } = this.props\n\n return (\n \n {children}\n \n )\n }\n}\n\nexport default { Consumer: Web3Store.Consumer, Provider: Web3Provider }\n"],"names":["useStyles","makeStyles","block","width","noShadow","boxShadow","rounded","borderRadius","Button","className","shadow","children","rest","classes","React","MUIButton","trim","colors","black","primary","darkBlue","gray1","gray2","gray3","gray4","gray5","gray6","transparent","white","fonts","family","size","tiny","small","normal","medium","subtitleSmall","subtitleBig","weight","light","regular","bold","globalConstants","headerHeight","theme","createMuiTheme","palette","main","secondary","typography","fontFamily","button","textTransform","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","body1","fontWeight","props","overrides","MuiButton","root","MuiFormControlLabel","color","MuiSlider","rail","height","opacity","track","thumb","marginLeft","MuiTextField","createStyles","unCheckedIcon","checkedIcon","Checkbox","checked","isChecked","setIsChecked","useState","handleChange","event","newChecked","onChange","MUICheckbox","CheckBoxSharp","icon","CheckBoxOutlineBlankSharp","require","EProvider","getProviderInfo","eProvider","METAMASK","name","iconImg","metaMaskIconImg","NIFTY","niftyIconImg","LEDGER","TREZOR","TRUST","GO_WALLET","ALPHA_WALLET","STATUS","COINBASE","MIST","PARITY","INFURA","LOCAL","Error","padding","margin","content","display","alignItems","maxHeight","spacing","justifyContent","imageWrapper","marginRight","LoginOption","onClick","providerInfo","providerContent","src","alt","handleOnClick","window","open","variant","Tooltip","arrow","title","Logo","logoFullWhite","LogoNavbar","fontSize","pxToRem","selected","borderBottom","StyledNavTab","Tab","component","NavLink","disableRipple","defaultonCorrectNetworkMessage","deaulftonNetworkMismatchMessage","defaultNoNetworkMessage","NetworkStatus","getNetworkStatus","currentNetworkId","requiredNetworkId","NO_NETWORK","CORRECT_NETWORK","NETWORK_MISSMATCH","NetworkIndicator","iconClassName","onCorrectNetworkMessage","onNetworkMismatchMessage","noNetworkMessage","networkStatus","iconPerNetworkStatus","Map","set","WarningIcon","style","yellow","ErrorIcon","CheckCircleOutlineOutlinedIcon","green","get","paper","backgroundColor","background","border","shadows","left","minWidth","position","top","transform","Modal","MUIModal","ModalHeader","ModalTitle","Typography","borderTop","paddingTop","ModalFooter","ModalBody","overlay","zIndex","spinner","animation","WithSpinner","WrappedComponent","Spinner","isLoading","logoBlueIcon","heading","accordionSummary","Accordion","expanded","id","isExpanded","setIsExpanded","MUIAccordion","AccordionSummary","expandIcon","ExpandMoreIcon","AccordionDetails","AccountModal","setProvider","availableProviders","onClose","onProviderSet","Fragment","length","map","key","tooltipTitle","CopyTextTooltip","displayElement","fullText","isCopied","setIsCopied","tooltipContent","FileCopyIcon","interactive","navigator","clipboard","writeText","then","headingExpanded","headingCollapsed","panelDetails","answerContainer","breakpoints","up","maxWidth","answerText","FAQSection","initiallyExpanded","question","answer","RemoveIcon","AddIcon","LabeledCheckbox","labelText","labelClassName","FormControlLabel","label","control","FilterCheckboxCard","items","item","i","shortenString","str","largerThan","charsShownCount","substr","removeEmptySpaces","replace","maxSupportedNumber","minSupportedNumber","validatedNumber","num","flexDirection","footerLink","textDecoration","footerTitle","textAlign","FooterColumn","links","link","isExternal","href","to","toString","target","ModalDialogue","footer","input","paddingLeft","inputContainer","paddingRight","units","unitsContainer","alignSelf","UnitsInput","maxValue","minValue","value","step","handleOnBlur","handleOnChange","Grid","container","xs","Input","onBlur","type","fullWidth","inputProps","min","max","inputsContainer","toContainer","RangeSliderWithInputs","values","start","startValue","end","endValue","unit","handleStartInputChange","newStartValue","Number","handleEndInputChange","newEndValue","handleSliderChange","_","newSliderValue","handleStartValueBlur","handleEndValueBlur","getCommonInputValues","Slider","ShortenTextTooltip","maxLength","indicator","StyledTabs","Tabs","a11yProps","index","minHeight","overflow","tabContainer","tab","outlineStyle","tabIndicator","tabSelected","SwitchTabs","label1","label2","controlledValue","newValue","MUITabs","TabIndicatorProps","MUITab","TooltipIconButton","iconButtonProps","IconButton","boxContainer","marginTop","loaderContainer","WrongNetworkModal","currentNetworkName","requiredNetworkName","gutterBottom","align","Box","sm","CircularProgress","copyright","copyrightContent","footerContainer","paddingBottom","footerContent","linksColumn","marginBottom","logoColumn","tongue","borderTopLeftRadius","borderTopRightRadius","Footer","copyrightText","linksColumns","direction","md","lg","logoBlackAndBlue","linkColumn","ConnectionStatus","getWeb3","provider","Promise","resolve","reject","ethereum","web3","Web3","enable","catch","currentProvider","localhostProvider","providers","HttpProvider","getNetworkInfo","networkId","chainId","networksData","find","n","getNetworkInfoFromWeb3","eth","net","getId","getChainId","error","networkInfo","getWeb3Provider","undefined","getAvailableProviders","result","isMetaMask","push","isNiftyWallet","isTrust","isGoWallet","isAlphaWallet","isStatus","isToshi","__CIPHER__","CIPHER","constructor","host","indexOf","getConnectionStatus","account","LoggedOut","WrongNetwork","LoggedIn","WalletLocked","accountText","networkIndicator","rightNetwork","Account","modalInitiallyOpened","accountModalOpen","setAccountModalOpen","handleAccountModalClose","handleAccountModalOpen","wrongNetModalOpen","setWrongNetModalOpen","openWrongNetModal","closeWrongNetModal","connectionStatus","anchorEl","setAnchorEl","popoverOpen","Boolean","handlePopoverClose","useEffect","onAccountClicked","currentTarget","Popover","anchorOrigin","vertical","horizontal","transformOrigin","activeNavlink","navLink","navLinkContainer","HeaderDesktop","hreflogo","itemsStart","itemsEnd","login","Login","AppBar","Toolbar","justify","navItem","activeClassName","alignContent","ListItemIcon","drawerWidth","drawerHeader","mixins","toolbar","drawerPaper","mobileAppBar","transition","transitions","create","easing","sharp","duration","leavingScreen","mobileAppBarShift","easeOut","enteringScreen","mobileNavLink","mobileNavLinkActive","HeaderMobile","setOpen","toggleDrawer","isOpen","role","onKeyDown","MenuIcon","Drawer","anchor","ChevronLeftIcon","Divider","List","headerItem","ListItem","ListItemText","Header","Hidden","smDown","mdUp","textContainer","textContent","down","titleContent","tongueImg","HeaderTongue","description","titleLine1","titleLine2","headerTongueImg","grayBackground","mainTitle","questionsSection","FAQPageTemplate","questionsAndAnswers","qAndA","PageTemplate","defaultWeb3State","Web3Store","createContext","state","actions","onConnectedNetworkChange","onConnectedAccountChange","requiredChainId","getAccountFromEthAccounts","accounts","Array","isArray","shouldReadAccount","Web3Provider","Component","bind","initialize","onStateChanged","getAccounts","shouldSetAccount","setState","autoRefreshOnNetworkChange","on","_netId","newNetworkInfo","render","Provider","Consumer"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.modern.js","sources":["../src/components/atoms/Button.tsx","../src/theme/theme.ts","../src/components/atoms/Checkbox.tsx","../src/assets/images/icons/nifty.png","../src/assets/images/icons/rifCom.png","../src/assets/images/icons/rifDir.png","../src/assets/images/icons/rifGat.png","../src/assets/images/icons/rifMar.png","../src/assets/images/icons/rifPay.png","../src/assets/images/icons/rifSto.png","../src/models/ProviderInfo.ts","../src/components/atoms/LoginOption.tsx","../src/components/atoms/Logo.tsx","../src/components/atoms/LogoNavbar.tsx","../src/components/atoms/StyledNavTab.tsx","../src/components/atoms/NetworkIndicator.tsx","../src/components/atoms/modal/Modal.tsx","../src/components/atoms/modal/ModalHeader.tsx","../src/components/atoms/modal/ModalTitle.tsx","../src/components/atoms/modal/ModalFooter.tsx","../src/components/atoms/modal/ModalBody.tsx","../src/components/hoc/WithSpinner.tsx","../src/components/molecules/Accordion.tsx","../src/components/molecules/AccountModal.tsx","../src/components/molecules/CopyTextTooltip.tsx","../src/components/molecules/FAQSection.tsx","../src/components/molecules/LabeledCheckbox.tsx","../src/components/molecules/FilterCheckboxCard.tsx","../src/utils.ts","../src/components/molecules/FooterColumn.tsx","../src/components/molecules/ModalDialogue.tsx","../src/components/molecules/UnitsInput.tsx","../src/components/molecules/RangeSliderWithInputs.tsx","../src/components/molecules/ShortenTextTooltip.tsx","../src/components/molecules/StyledTabs.tsx","../src/components/molecules/SwitchTabs.tsx","../src/components/molecules/TooltipIconButton.tsx","../src/components/molecules/WrongNetworkModal.tsx","../src/components/organisms/Footer.tsx","../src/models/Enums.ts","../src/services/Web3Service.ts","../src/components/organisms/Account.tsx","../src/components/organisms/Header/HeaderDesktop.tsx","../src/components/organisms/Header/HeaderMobile.tsx","../src/components/organisms/Header/Header.tsx","../src/components/organisms/Header/HeaderTongue.tsx","../src/components/templates/FAQPageTemplate.tsx","../src/components/templates/PageTemplate.tsx","../src/providers/Web3Provider.tsx"],"sourcesContent":["import React, { FC } from 'react'\nimport { Button as MUIButton, ButtonProps as MUIButtonProps } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\n\nexport interface ButtonProps extends MUIButtonProps {\n block?: boolean\n shadow?: boolean\n rounded?: boolean\n}\n\nconst useStyles = makeStyles(() => ({\n block: {\n width: '100%',\n },\n noShadow: {\n boxShadow: 'none',\n },\n rounded: {\n borderRadius: 50,\n },\n}))\n\nconst Button: FC = ({\n className = '', block, shadow, rounded, children, ...rest\n}) => {\n const classes = useStyles()\n\n return (\n \n {children}\n \n )\n}\n\nexport default Button\n","import { createMuiTheme } from '@material-ui/core/styles'\nimport '../assets/css/fonts/rubik.css'\n\nexport const colors = {\n black: '#000000',\n primary: '#008FF7',\n darkBlue: '#197DC6',\n gray1: '#F8F7F7',\n gray2: '#E5E5E5',\n gray3: '#C4C4C4',\n gray4: '#919191',\n gray5: '#4D4C4C',\n gray6: '#15171B',\n transparent: '#FFFFFF00',\n white: '#FFFFFF',\n}\n\nexport const fonts = {\n family: 'Rubik',\n size: {\n tiny: 10,\n small: 12,\n normal: 14,\n medium: 16,\n subtitleSmall: 18,\n subtitleBig: 22,\n },\n weight: {\n light: 300,\n regular: 400,\n medium: 500,\n bold: 700,\n },\n}\n\nexport const globalConstants = {\n headerHeight: 8,\n}\n\nconst theme = createMuiTheme({\n palette: {\n primary: {\n main: colors.primary,\n },\n secondary: {\n main: colors.gray4,\n },\n },\n typography: {\n fontFamily: fonts.family,\n button: {\n textTransform: 'none',\n },\n fontWeightLight: fonts.weight.light,\n fontWeightRegular: fonts.weight.regular,\n fontWeightMedium: fonts.weight.medium,\n fontWeightBold: fonts.weight.bold,\n body1: {\n fontWeight: fonts.weight.light,\n },\n },\n props: {},\n overrides: {\n MuiButton: {\n root: {\n fontWeight: fonts.weight.light,\n },\n },\n MuiFormControlLabel: {\n root: {\n color: colors.gray3,\n },\n },\n MuiSlider: {\n rail: {\n color: colors.gray3,\n height: 4,\n opacity: 1,\n },\n root: {\n width: '100%',\n color: colors.primary,\n height: 4,\n },\n track: {\n height: 4,\n },\n thumb: {\n marginLeft: -4,\n height: 14,\n width: 14,\n },\n },\n MuiTextField: {\n root: {\n color: colors.gray3,\n '&:hover': {\n color: colors.gray2,\n },\n },\n },\n },\n})\n\nexport default theme\n","import React, { FC, useState } from 'react'\nimport {\n Checkbox as MUICheckbox,\n CheckboxProps as MUICheckboxProps,\n makeStyles,\n createStyles,\n} from '@material-ui/core'\nimport { CheckBoxOutlineBlankSharp, CheckBoxSharp } from '@material-ui/icons'\nimport { colors } from '../../theme'\n\nexport type CheckboxProps = MUICheckboxProps;\n\nconst useStyles = makeStyles(() => createStyles({\n unCheckedIcon: {\n color: colors.gray4,\n },\n checkedIcon: {\n color: colors.primary,\n },\n}))\n\nconst Checkbox: FC = (props) => {\n const classes = useStyles()\n const { checked } = props\n const [isChecked, setIsChecked] = useState(!!checked)\n\n const handleChange = (event: React.ChangeEvent,\n newChecked: boolean): void => {\n setIsChecked(newChecked)\n const { onChange } = props\n\n if (onChange) onChange(event, newChecked)\n }\n\n return (\n \n }\n icon={\n \n }\n {...props}\n checked={isChecked}\n onChange={handleChange}\n />\n )\n}\n\nexport default Checkbox\n","/* loaded by smart-asset */\nexport default require(\"./nifty~RMIWdZeg.png\")","/* loaded by smart-asset */\nexport default require(\"./rifCom~udwpaCym.png\")","/* loaded by smart-asset */\nexport default require(\"./rifDir~bottaDNJ.png\")","/* loaded by smart-asset */\nexport default require(\"./rifGat~balFpEzC.png\")","/* loaded by smart-asset */\nexport default require(\"./rifMar~IDqKMWpK.png\")","/* loaded by smart-asset */\nexport default require(\"./rifPay~bdtOAceT.png\")","/* loaded by smart-asset */\nexport default require(\"./rifSto~fMRetflo.png\")","import { metaMaskIconImg, niftyIconImg } from '../assets/images'\n\nexport default interface ProviderInfo {\n name: string\n eProvider: EProvider\n iconImg?: string\n}\n\nexport enum EProvider {\n METAMASK = 'Metamask',\n NIFTY = 'Nifty',\n LEDGER = 'Ledger',\n TREZOR = 'Trezor',\n TRUST = 'Trust',\n LOCAL = 'Localhost',\n GO_WALLET = 'GoWallet',\n ALPHA_WALLET = 'AlphaWallet',\n STATUS = 'status',\n CIPHER = 'cipher',\n COINBASE = 'coinbase',\n MIST = 'mist',\n PARITY = 'parity',\n INFURA = 'infura'\n}\n\nexport const getProviderInfo = (eProvider: EProvider): ProviderInfo => {\n switch (eProvider) {\n case EProvider.METAMASK:\n return {\n name: 'MetaMask',\n eProvider,\n iconImg: metaMaskIconImg,\n }\n case EProvider.NIFTY:\n return {\n name: 'Nifty',\n eProvider,\n iconImg: niftyIconImg,\n }\n case EProvider.LEDGER:\n return {\n name: 'Ledger',\n eProvider,\n }\n case EProvider.TREZOR:\n return {\n name: 'Trezor',\n eProvider,\n }\n case EProvider.TRUST:\n return {\n name: 'Trust',\n eProvider,\n }\n case EProvider.GO_WALLET:\n return {\n name: 'Go Wallet',\n eProvider,\n }\n case EProvider.ALPHA_WALLET:\n return {\n name: 'Alpha Wallet',\n eProvider,\n }\n case EProvider.STATUS:\n return {\n name: 'Status',\n eProvider,\n }\n case EProvider.COINBASE:\n return {\n name: 'Coinbase',\n eProvider,\n }\n case EProvider.MIST:\n return {\n name: 'Mist',\n eProvider,\n }\n case EProvider.PARITY:\n return {\n name: 'Parity',\n eProvider,\n }\n case EProvider.INFURA:\n return {\n name: 'Infura',\n eProvider,\n }\n case EProvider.LOCAL:\n return {\n name: 'Localhost',\n eProvider,\n }\n default: {\n throw new Error(\n `EProvider not implemented or unknown. Chosen provider ${eProvider}`,\n )\n }\n }\n}\n","import React, { FC } from 'react'\nimport { makeStyles, Theme, Tooltip } from '@material-ui/core'\nimport Button from './Button'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport { niftyIconImg } from '../../assets/images'\n\nexport interface LoginOptionProps {\n className?: string\n onClick?: () => void\n providerInfo?: ProviderInfo\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n padding: 5,\n margin: 5,\n width: '100%',\n },\n content: {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n maxHeight: theme.spacing(5),\n justifyContent: 'center',\n },\n imageWrapper: {\n maxHeight: theme.spacing(4),\n marginRight: theme.spacing(2),\n },\n}))\n\n/**\n * If not providerInfo is received, we assume there's no provider available and so suggest to install Nifty wallet\n * Same happens when no onClick is provided. We open the Nifty page on a new tab\n */\nconst LoginOption: FC = ({\n className = '',\n onClick,\n providerInfo,\n ...rest\n}) => {\n const classes = useStyles()\n\n const providerContent = (\n
\n {\n providerInfo?.iconImg\n && (\n \n )\n }\n {providerInfo?.name}\n
\n )\n\n const handleOnClick = () => {\n if (onClick) {\n return onClick()\n }\n return window.open('https://www.poa.network/for-users/nifty-wallet/getting-started', '_blank')\n }\n\n return (\n \n {/* only with Nifty we display the Tooltip because atm we can't check if MetaMask is also enabled */}\n {!!providerInfo && providerInfo.eProvider === EProvider.NIFTY\n && (\n \n {providerContent}\n \n )}\n {!!providerInfo && providerInfo.eProvider !== EProvider.NIFTY\n && providerContent}\n {!providerInfo\n && (\n
\n \n Install Nifty wallet\n
\n )}\n \n )\n}\n\nexport default LoginOption\n","import React, { FC } from 'react'\nimport { logoFullWhite } from '../../assets/images'\n\nconst Logo: FC> = (\n { alt = 'RIF OS logo', ...rest },\n) => {alt}\n\nexport default Logo\n","import React, { FC } from 'react'\nimport { logoFullWhite } from '../../assets/images'\n\ninterface LogoProps extends React.Props {\n alt?: string\n height?: string | number\n style?: React.CSSProperties\n}\n\nconst LogoNavbar: FC = ({ alt = 'navbar logo', height = '44px', ...rest }) => (\n \n)\nexport default LogoNavbar\n","import React, { FC } from 'react'\nimport { Theme, makeStyles } from '@material-ui/core/styles'\nimport Tab from '@material-ui/core/Tab'\nimport { NavLink } from 'react-router-dom'\nimport { colors } from '../../theme'\n\nexport interface StyledNavTabProps {\n label: string\n to: string\n value: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n textTransform: 'none',\n color: colors.gray5,\n fontWeight: theme.typography.fontWeightRegular,\n fontSize: theme.typography.pxToRem(15),\n marginRight: theme.spacing(1),\n '&:focus': {\n opacity: 1,\n },\n },\n selected: {\n fontWeight: theme.typography.fontWeightMedium,\n borderBottom: '2px solid #000000',\n },\n}))\n\nconst StyledNavTab: FC = (props: StyledNavTabProps) => {\n const classes = useStyles()\n return \n}\n\nexport default StyledNavTab\n","import React, { FC } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport CheckCircleOutlineOutlinedIcon from '@material-ui/icons/CheckCircleOutlineOutlined'\nimport ErrorIcon from '@material-ui/icons/Error'\nimport WarningIcon from '@material-ui/icons/Warning'\nimport { green, yellow } from '@material-ui/core/colors'\n\nexport interface NetworkIndicatorProps {\n iconClassName?: string\n currentNetworkId?: number\n requiredNetworkId?: number\n onCorrectNetworkMessage?: string\n onNetworkMismatchMessage?: string\n noNetworkMessage?: string\n}\n\nconst defaultonCorrectNetworkMessage = 'You are on the right network'\nconst deaulftonNetworkMismatchMessage = 'You are on the wrong network'\nconst defaultNoNetworkMessage = 'You are not connected to any network'\n\nexport enum NetworkStatus {\n NO_NETWORK = 1,\n NETWORK_MISSMATCH = 2,\n CORRECT_NETWORK = 3\n}\n\nconst getNetworkStatus = (currentNetworkId, requiredNetworkId): NetworkStatus => {\n if (!currentNetworkId) return NetworkStatus.NO_NETWORK\n\n if (currentNetworkId === requiredNetworkId) return NetworkStatus.CORRECT_NETWORK\n return NetworkStatus.NETWORK_MISSMATCH\n}\n\nconst NetworkIndicator: FC = ({\n iconClassName = '',\n currentNetworkId, requiredNetworkId, onCorrectNetworkMessage,\n onNetworkMismatchMessage, noNetworkMessage,\n}) => {\n const networkStatus = getNetworkStatus(currentNetworkId, requiredNetworkId)\n\n const iconPerNetworkStatus = new Map()\n iconPerNetworkStatus.set(NetworkStatus.NO_NETWORK, (\n \n \n \n ))\n iconPerNetworkStatus.set(NetworkStatus.NETWORK_MISSMATCH, (\n \n \n \n ))\n iconPerNetworkStatus.set(NetworkStatus.CORRECT_NETWORK, (\n \n \n \n ))\n\n return (\n iconPerNetworkStatus.get(networkStatus)\n )\n}\n\nexport default NetworkIndicator\n","import React, { FC } from 'react'\nimport { Modal as MUIModal, ModalProps as MUIModalProps } from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport type ModalProps = MUIModalProps;\n\nconst useStyles = makeStyles((theme: Theme) => ({\n paper: {\n backgroundColor: theme.palette.background.paper,\n border: `2px solid ${colors.primary}`,\n boxShadow: theme.shadows[5],\n left: '50%',\n minWidth: 400,\n padding: theme.spacing(2, 4, 3),\n position: 'absolute',\n top: '50%',\n transform: 'translate(-50%, -50%)',\n },\n}))\n\nconst Modal: FC = ({ children, ...rest }) => {\n const classes = useStyles()\n\n return (\n \n
\n {children}\n
\n
\n )\n}\n\nexport default Modal\n","import React, { FC } from 'react'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport interface ModalHeaderProps {\n className?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n borderBottom: `1px solid ${colors.gray2}`,\n color: colors.primary,\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n },\n}))\n\nconst ModalHeader: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalHeader\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\n\nexport interface ModalTitleProps {\n className?: string\n}\n\nconst ModalTitle: FC = ({ children, ...rest }) => (\n \n {children}\n \n)\n\nexport default ModalTitle\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport interface ModalFooterProps {\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n borderTop: `1px solid ${colors.gray2}`,\n display: 'flex',\n justifyContent: 'center',\n paddingTop: theme.spacing(1),\n width: '100%',\n },\n}))\n\nconst ModalFooter: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalFooter\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\n\nexport interface ModalBodyProps {\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n padding: theme.spacing(3, 0),\n width: '100%',\n },\n}))\n\nconst ModalBody: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalBody\n","import React from 'react'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { logoBlueIcon } from '../../assets/images'\n\nconst useStyles = makeStyles(() => ({\n '@keyframes spin': {\n '0%': { transform: 'rotate(0deg)' },\n '100%': { transform: 'rotate(360deg)' },\n },\n root: {\n position: 'relative',\n },\n overlay: {\n position: 'absolute',\n zIndex: 2,\n height: '100%',\n width: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n background: '#FFFFFF55',\n },\n spinner: {\n display: 'inline-block',\n zIndex: 3,\n width: '50px',\n height: '50px',\n border: 'none',\n animation: '$spin 2s ease-in-out infinite',\n },\n}))\n\nconst WithSpinner = (WrappedComponent: React.ElementType) => {\n const Spinner = ({ isLoading, ...props }) => {\n const classes = useStyles()\n\n return (\n
\n {\n isLoading\n && (\n
\n \"logo\"\n
\n )\n }\n \n
\n )\n }\n return Spinner\n}\n\nexport default WithSpinner\n","import React, { FC, useState } from 'react'\nimport { Accordion as MUIAccordion, AccordionProps as MUIAccordionProps } from '@material-ui/core'\nimport Typography from '@material-ui/core/Typography'\nimport AccordionDetails from '@material-ui/core/AccordionDetails'\nimport AccordionSummary from '@material-ui/core/AccordionSummary'\nimport { makeStyles, Theme, createStyles } from '@material-ui/core/styles'\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore'\nimport { colors } from '../../theme'\n\ninterface AccordionProps extends MUIAccordionProps {\n id: string\n title?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n root: {\n boxShadow: 'none',\n color: colors.gray4,\n width: '100%',\n },\n heading: {\n color: colors.gray4,\n fontSize: theme.typography.pxToRem(15),\n fontWeight: theme.typography.fontWeightRegular,\n width: '100%',\n },\n accordionSummary: {\n borderBottom: `1px solid ${colors.gray2}`,\n },\n}))\n\nconst Accordion: FC = ({\n children, expanded, id, title,\n}) => {\n const classes = useStyles()\n const [isExpanded, setIsExpanded] = useState(!!expanded)\n\n const onChange = (): void => setIsExpanded(!isExpanded)\n\n return (\n \n }\n aria-controls={`panel-${id}-content`}\n id={id}\n >\n {title}\n \n \n {children}\n \n \n )\n}\n\nexport default Accordion\n","import React, { FC } from 'react'\nimport Web3 from 'web3'\nimport {\n Button, LoginOption, Modal, ModalBody, ModalFooter, ModalHeader, ModalTitle,\n} from '../atoms'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport NetworkInfo from '../../models/NetworkInfo'\n\nexport interface AccountModalProps {\n web3?: Web3\n networkInfo?: NetworkInfo\n setProvider?: (provider: EProvider, onProviderSet?:\n (account?: string) => void) => Promise\n availableProviders?: ProviderInfo[]\n onClose?: () => void\n onProviderSet?: (account) => void\n open: boolean\n}\n\nconst AccountModal: FC = ({\n setProvider,\n availableProviders,\n open,\n onClose,\n onProviderSet,\n}) => (\n \n \n \n Connect a wallet to get started\n \n \n {\n availableProviders && availableProviders.length && availableProviders.map(\n (providerInfo) => (\n => {\n if (setProvider) await setProvider(providerInfo.eProvider, onProviderSet)\n }}\n />\n ),\n )\n }\n {!availableProviders\n && (\n // TODO: Create LoginOptionTemplate to extract this\n // empty LoginOption means suggest to install Nifty wallet\n \n )}\n \n \n \n Close\n \n \n \n \n)\n\nexport default AccountModal\n","import React, { FC, useState } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport { makeStyles } from '@material-ui/core/styles'\nimport FileCopyIcon from '@material-ui/icons/FileCopy'\nimport Typography from '@material-ui/core/Typography'\n\nexport interface CopyTextTooltipProps {\n displayElement: React.ReactElement\n fullText: string\n}\n\nconst useStyles = makeStyles(() => ({\n tooltipTitle: {\n display: 'flex',\n alignItems: 'center',\n },\n}))\n\nconst CopyTextTooltip: FC = ({ displayElement, fullText }) => {\n const [isCopied, setIsCopied] = useState(false)\n\n const classes = useStyles()\n\n const tooltipContent = (\n
\n \n \n {fullText}\n \n
\n )\n\n return (\n Copied! : tooltipContent}\n onClick={() => {\n navigator.clipboard.writeText(fullText)\n .then(() => { setIsCopied(true) })\n }}\n onClose={() => {\n setIsCopied(false)\n }}\n >\n {displayElement}\n \n )\n}\n\nexport default CopyTextTooltip\n","import React, { FC, useState } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Accordion from '@material-ui/core/Accordion'\nimport AccordionDetails from '@material-ui/core/AccordionDetails'\nimport AccordionSummary from '@material-ui/core/AccordionSummary'\nimport Typography from '@material-ui/core/Typography'\nimport AddIcon from '@material-ui/icons/Add'\nimport RemoveIcon from '@material-ui/icons/Remove'\nimport { colors, fonts } from '../../theme'\n\nexport interface FAQSectionProps {\n answer: string\n initiallyExpanded?: boolean\n question: string\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n boxShadow: 'none',\n color: colors.gray4,\n width: '100%',\n },\n heading: {\n display: 'flex',\n justifyContent: 'center',\n color: colors.gray5,\n fontSize: fonts.size.subtitleSmall,\n width: '100%',\n },\n headingExpanded: {\n color: colors.primary,\n },\n headingCollapsed: {\n fontWeight: fonts.weight.regular,\n },\n panelDetails: {\n display: 'flex',\n justifyContent: 'center',\n },\n answerContainer: {\n [theme.breakpoints.up('md')]: {\n maxWidth: '80%',\n },\n },\n answerText: {\n color: colors.gray5,\n },\n}))\n\nconst FAQSection: FC = ({\n className = '', initiallyExpanded, question, answer,\n}) => {\n const classes = useStyles()\n const [isExpanded, setIsExpanded] = useState(!!initiallyExpanded)\n\n const onChange = (): void => setIsExpanded(!isExpanded)\n\n return (\n \n : }\n >\n {question}\n \n \n
\n {answer}\n
\n
\n
\n )\n}\n\nexport default FAQSection\n","import React, { FC } from 'react'\nimport { FormControlLabel } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Checkbox, { CheckboxProps } from '../atoms/Checkbox'\nimport { colors } from '../../theme'\n\nexport interface LabeledCheckboxProps extends CheckboxProps {\n labelText: string\n labelClassName?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n color: colors.gray4,\n width: '100%',\n },\n}))\n\nconst LabeledCheckbox: FC = ({ labelText, labelClassName = '', ...rest }) => {\n const classes = useStyles()\n return (\n \n }\n />\n\n )\n}\n\nexport default LabeledCheckbox\n","import React, { FC } from 'react'\nimport LabeledCheckbox, { LabeledCheckboxProps } from './LabeledCheckbox'\n\nexport interface FilterCheckboxCardProps {\n className?: string\n items: LabeledCheckboxProps[]\n onClick?: (event: React.MouseEvent) => void\n}\n\nconst FilterCheckboxCard: FC = ({ className = '', onClick, items }) => (\n
\n {items.map((item: LabeledCheckboxProps, i) => (\n \n ))}\n
\n)\n\nexport default FilterCheckboxCard\n","const shortenString = (\n str: string,\n largerThan = 16,\n charsShownCount = 6,\n): string => (str.length > largerThan\n ? `${str.substr(0, charsShownCount)}...${str.substr(str.length - 4)}`\n : str)\n\nconst removeEmptySpaces = (str: string): string => str.replace(/\\s/g, '')\n\nconst maxSupportedNumber = 99999999999999\nconst minSupportedNumber = 0.000001\n\nconst validatedNumber = (num: number): number => {\n if (num > 0) {\n if (num > maxSupportedNumber) return maxSupportedNumber\n\n if (num < minSupportedNumber) return minSupportedNumber\n }\n\n if (num < 0) {\n if (num < -maxSupportedNumber) return -maxSupportedNumber\n\n if (num > -minSupportedNumber) return -minSupportedNumber\n }\n return num\n}\n\nexport {\n shortenString,\n removeEmptySpaces,\n maxSupportedNumber,\n minSupportedNumber,\n validatedNumber,\n}\n","import React, { FC } from 'react'\nimport { NavLinkProps, NavLink } from 'react-router-dom'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../theme'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FooterColumnProps {\n className?: string\n links: FooterLinkProps[]\n title: string\n}\n\nexport interface FooterLinkProps extends NavLinkProps {\n isExternal?: boolean\n title: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n },\n footerLink: {\n color: colors.gray4,\n fontWeight: fonts.weight.light,\n textDecoration: 'none',\n '&:hover': {\n fontWeight: fonts.weight.regular,\n },\n },\n footerTitle: {\n fontSize: fonts.size.subtitleBig,\n textAlign: 'center',\n },\n}))\n\nconst FooterColumn: FC = ({ title, links, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {title}\n {\n links.map((link: FooterLinkProps) => {\n const key = removeEmptySpaces(link.title)\n\n if (link.isExternal) {\n const href = (link.to || '#').toString()\n return (\n \n {link.title}\n \n )\n }\n return (\n \n {link.title}\n \n )\n })\n }\n
\n )\n}\n\nexport default FooterColumn\n","import React, { FC } from 'react'\nimport {\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n ModalTitle,\n} from '../atoms'\nimport { ModalProps } from '../atoms/modal/Modal'\n\nexport interface ModalDialogueProps extends ModalProps {\n title: string\n footer?: React.ReactElement\n}\n\nconst ModalDialogue: FC = ({\n title,\n footer,\n children,\n ...props\n}) => (\n \n \n \n {title}\n \n {children}\n {footer}\n \n \n)\n\nexport default ModalDialogue\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Input, { InputProps } from '@material-ui/core/Input'\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../theme'\n\nexport interface UnitsInputProps extends InputProps {\n handleOnChange: (event: React.ChangeEvent) => void\n handleOnBlur?: () => void\n maxValue?: number\n minValue?: number\n step?: number\n units?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n color: colors.gray4,\n display: 'flex',\n },\n input: {\n color: colors.gray4,\n paddingLeft: theme.spacing(0.1),\n textAlign: 'center',\n '&::before': {\n borderBottom: `1px solid ${colors.gray4}`,\n },\n },\n inputContainer: {\n paddingRight: '0 !important',\n },\n units: {\n color: colors.gray4,\n display: 'flex',\n fontSize: fonts.size.tiny,\n },\n unitsContainer: {\n alignSelf: 'center',\n color: colors.gray4,\n display: 'flex',\n fontSize: fonts.size.normal,\n paddingLeft: '0 !important',\n },\n}))\n\nconst UnitsInput: FC = ({\n maxValue,\n minValue,\n units,\n value,\n step = 1,\n handleOnBlur,\n handleOnChange,\n ...rest\n}) => {\n const classes = useStyles()\n\n return (\n \n \n \n \n \n \n \n {units}\n \n \n \n \n )\n}\n\nexport default UnitsInput\n","import Slider, { SliderProps } from '@material-ui/core/Slider'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport UnitsInput from './UnitsInput'\nimport { validatedNumber } from '../../utils'\nimport { fonts } from '../../theme'\n\nexport interface RangeSliderWithInputsProps extends SliderProps {\n values: {\n start: number\n end: number\n }\n unit?: string\n handleChange: ({ min, max }) => void\n className?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n width: '100%',\n },\n inputsContainer: {\n alignSelf: 'center',\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n },\n toContainer: {\n alignSelf: 'center',\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n fontWeight: fonts.weight.regular,\n },\n}))\n\nconst RangeSliderWithInputs: FC = ({\n values: {\n start: startValue, end: endValue,\n }, unit, handleChange, className, ...rest\n}) => {\n const classes = useStyles()\n\n const maxValue = rest.max || endValue\n const minValue = rest.min || startValue\n const step = rest.step || 1\n\n const handleStartInputChange = (\n event: React.ChangeEvent,\n ): void => {\n const newStartValue = validatedNumber(Number(event.target.value)) || minValue\n handleChange({ min: newStartValue, max: endValue })\n }\n\n const handleEndInputChange = (\n event: React.ChangeEvent,\n ): void => {\n const newEndValue = validatedNumber(Number(event.target.value)) || endValue\n handleChange({ min: startValue, max: newEndValue })\n }\n\n const handleSliderChange = (\n _: React.ChangeEvent<{}>, newSliderValue: number | number[],\n ): void => {\n handleChange({ min: newSliderValue[0], max: newSliderValue[1] })\n }\n\n const handleStartValueBlur = (): void => {\n if (startValue < minValue) {\n handleChange({ min: minValue, max: endValue })\n } else if (startValue > endValue) {\n handleChange({ min: endValue, max: endValue })\n }\n }\n\n const handleEndValueBlur = (): void => {\n if (endValue < startValue) {\n handleChange({ min: minValue, max: startValue })\n } else if (endValue > maxValue) {\n handleChange({ min: minValue, max: maxValue })\n }\n }\n\n const getCommonInputValues = (): {} => ({\n maxValue,\n minValue,\n step,\n units: unit,\n })\n\n return (\n
\n \n
\n \n \n to\n \n \n
\n
\n )\n}\n\nexport default RangeSliderWithInputs\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport CopyTextTooltip from './CopyTextTooltip'\nimport { shortenString } from '../../utils'\n\nexport interface ShortenTextTooltipProps {\n value: string\n maxLength?: number\n charsShownCount?: number\n}\n\nconst ShortenTextTooltip: FC = ({ value, maxLength = 20, charsShownCount }) => (\n \n {\n value.length > maxLength\n && (\n {shortenString(value, maxLength, charsShownCount || maxLength - 5)}}\n fullText={value}\n />\n )\n }\n {\n value.length <= maxLength\n && value\n }\n \n)\n\nexport default ShortenTextTooltip\n","import React, { FC } from 'react'\nimport Tabs, { TabsProps } from '@material-ui/core/Tabs'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { colors } from '../../theme'\n\nexport interface StyledTabsProps {\n value: string\n onChange: (event: React.ChangeEvent<{}>, newValue: string) => void\n}\n\nconst useStyles = makeStyles({\n indicator: {\n display: 'flex',\n justifyContent: 'center',\n backgroundColor: 'transparent',\n },\n root: {\n borderBottom: `1px solid ${colors.gray3}`,\n },\n})\n\nconst StyledTabs: FC = (props: TabsProps) => {\n const { children } = props\n const classes = useStyles()\n return (\n \n {children}\n \n )\n}\n\nexport default StyledTabs\n","import { Tab as MUITab, Tabs as MUITabs } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React, { FC } from 'react'\nimport { colors, fonts } from '../../theme'\n\nexport interface SwitchTabsProps {\n label1: string\n label2: string\n value?: 0 | 1\n onChange: (event: React.ChangeEvent<{}>, value: number) => void\n}\n\nconst a11yProps = (index: number): {} => ({\n id: `full-width-tab-${index}`,\n 'aria-controls': `full-width-tabpanel-${index}`,\n})\n\nconst useStyles = makeStyles(() => ({\n root: {\n backgroundColor: colors.white,\n minHeight: 20,\n width: '100%',\n border: `${colors.primary} solid 1px`,\n borderRadius: 50,\n overflow: 'hidden',\n },\n tabContainer: {\n minHeight: 20,\n width: '100%',\n },\n tab: {\n '&:hover': {\n color: colors.primary,\n },\n borderRadius: 50,\n color: colors.gray3,\n fontWeight: fonts.weight.light,\n maxWidth: '50%',\n minHeight: '100%',\n minWidth: '50%',\n outlineStyle: 'none',\n padding: 0,\n textTransform: 'capitalize',\n zIndex: 1,\n '&:focus': {\n outlineStyle: 'none',\n },\n },\n // shows the transition between tabs\n tabIndicator: {\n backgroundColor: colors.primary,\n borderRadius: 50,\n height: '100%',\n },\n tabSelected: {\n // the '!important' overrides the on hover functionality when it's active\n backgroundColor: `${colors.primary} !important`,\n color: `${colors.white} !important`,\n },\n}))\n\nconst SwitchTabs: FC = ({\n label1, label2, value: controlledValue, onChange,\n}) => {\n const classes = useStyles()\n\n const handleChange = (\n event: React.ChangeEvent<{}>, newValue: number,\n ): void => {\n onChange(event, newValue)\n }\n\n return (\n
\n \n \n \n \n
\n )\n}\n\nexport default SwitchTabs\n","import React, { FC } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport IconButton, { IconButtonProps } from '@material-ui/core/IconButton'\n\nexport interface TooltipIconButtonProps {\n tooltipTitle: string\n iconButtonProps: IconButtonProps\n icon: React.ReactNode\n}\n\nconst TooltipIconButton: FC = ({\n tooltipTitle,\n iconButtonProps,\n icon,\n}) => (\n \n \n \n {icon}\n \n \n\n \n)\n\nexport default TooltipIconButton\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport Box from '@material-ui/core/Box'\nimport Grid from '@material-ui/core/Grid'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../theme'\nimport ModalDialogue from './ModalDialogue'\n\nexport interface WrongNetworkModalProps {\n open: boolean\n currentNetworkName?: string\n requiredNetworkName: string\n onClose: () => void\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n boxContainer: {\n border: `1px solid ${colors.primary}`,\n padding: theme.spacing(5),\n marginTop: theme.spacing(3),\n },\n loaderContainer: {\n display: 'flex',\n justifyContent: 'center',\n },\n}))\n\nconst WrongNetworkModal: FC = ({\n open, currentNetworkName = 'Private network', requiredNetworkName, onClose,\n}) => {\n const classes = useStyles()\n return (\n \n \n \n This dApp only works on the\n {' '}\n {requiredNetworkName}\n .\n You are currently on\n {' '}\n {currentNetworkName}\n .\n \n \n \n \n \n \n Waiting for the right network...\n \n Switch networks on your wallet\n \n \n \n \n \n )\n}\nexport default WrongNetworkModal\n","import React, { FC, HTMLAttributes } from 'react'\nimport { Grid } from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport FooterColumn, { FooterColumnProps } from '../molecules/FooterColumn'\nimport { colors, fonts } from '../../theme'\nimport { logoBlackAndBlue } from '../../assets/images'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FooterProps extends HTMLAttributes {\n className?: string\n copyrightText: string\n linksColumns: FooterColumnProps[]\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n copyright: {\n display: 'flex',\n justifyContent: 'center',\n },\n copyrightContent: {\n color: colors.gray4,\n fontSize: fonts.size.tiny,\n },\n footerContainer: {\n backgroundColor: colors.gray2,\n display: 'flex',\n justifyContent: 'center',\n paddingBottom: theme.spacing(2),\n width: '100%',\n },\n footerContent: {\n marginTop: theme.spacing(2),\n maxWidth: '80%',\n width: '100%',\n },\n linksColumn: {\n marginBottom: theme.spacing(1),\n },\n logoColumn: {\n display: 'flex',\n justifyContent: 'center',\n padding: theme.spacing(5),\n },\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n paddingTop: theme.spacing(4),\n width: '100%',\n },\n tongue: {\n backgroundColor: colors.gray2,\n borderTopLeftRadius: '50% 80%',\n borderTopRightRadius: '50% 80%',\n height: theme.spacing(10),\n width: '100%',\n },\n}))\n\nconst Footer: FC = ({\n className = '', copyrightText, linksColumns, ...rest\n}) => {\n const classes = useStyles()\n\n return (\n
\n
\n
\n
\n \n \n \"logo\"\n \n {\n linksColumns.map((linkColumn: FooterColumnProps) => (\n \n \n \n ))\n }\n \n
\n \n {copyrightText}\n \n
\n
\n
\n
\n )\n}\n\nexport default Footer\n","export enum ConnectionStatus {\n LoggedIn = 0,\n LoggedOut = 1,\n WalletLocked = 2,\n WrongNetwork = 3\n}\n\nexport default ConnectionStatus\n","import Web3 from 'web3'\nimport NetworkInfo from '../models/NetworkInfo'\nimport networksData from '../data/networks.json'\nimport ProviderInfo, {\n EProvider,\n getProviderInfo,\n} from '../models/ProviderInfo'\nimport ConnectionStatus from '../models/Enums'\n\ndeclare global {\n interface Window {\n ethereum: any // FIXME: This should be properly typed as per metamask\n web3: Web3\n }\n}\n\nexport function getWeb3(\n provider: EProvider = EProvider.METAMASK,\n): Promise {\n return new Promise((resolve, reject) => {\n switch (provider) {\n // Injected Web3 wallet like MetaMask or Nifty\n case EProvider.NIFTY:\n case EProvider.METAMASK: {\n // New MetaMask\n if (window.ethereum) {\n const web3 = new Web3(window.ethereum)\n window.ethereum\n .enable()\n .then(() => resolve(web3))\n .catch(reject)\n } else if (window.web3) {\n // Older versions of MetaMask or other\n resolve(new Web3(window.web3.currentProvider))\n } else reject(new Error('No injected web3 found'))\n break\n }\n\n // Localhost\n case EProvider.LOCAL: {\n const localhostProvider = new Web3.providers.HttpProvider(\n \"'http://127.0.0.1:4444'\",\n )\n resolve(new Web3(localhostProvider))\n break\n }\n\n // Unknown & not implemented\n default: {\n reject(\n new Error(\n `Provider not implemented or unknown. Chosen provider ${provider}`,\n ),\n )\n break\n }\n }\n })\n}\n\nexport const getNetworkInfo = (\n networkId: number,\n chainId?: number,\n): NetworkInfo | undefined => networksData.find((n) => (chainId\n ? n.networkId === networkId && n.chainId === chainId\n : n.networkId === networkId)) as NetworkInfo\n\nexport const getNetworkInfoFromWeb3 = async (\n web3: Web3,\n): Promise => {\n // set networkId and chainId\n let networkId: number | undefined\n let chainId: number | undefined\n try {\n networkId = await web3.eth.net.getId()\n\n if (networkId) {\n chainId = await web3.eth.getChainId()\n }\n } catch (error) {}\n let networkInfo: NetworkInfo | undefined\n\n if (networkId) {\n try {\n networkInfo = getNetworkInfo(networkId, chainId)\n } catch (error) {}\n }\n return networkInfo\n}\n\nconst getWeb3Provider = (): any => {\n // New Metamask\n if (window.ethereum) return window.ethereum\n\n // Older versions of Metamask or other\n if (window.web3) return window.web3.currentProvider\n return undefined\n}\n\n/* eslint-disable complexity */\nexport const getAvailableProviders = (): ProviderInfo[] | undefined => {\n const result: ProviderInfo[] = []\n\n const currentProvider = getWeb3Provider()\n\n if (!currentProvider) return undefined\n\n if (currentProvider.isMetaMask) {\n // Nifty is also MetaMask\n result.push(\n currentProvider.isNiftyWallet\n ? getProviderInfo(EProvider.NIFTY)\n : getProviderInfo(EProvider.METAMASK),\n )\n }\n\n if (currentProvider.isTrust) result.push(getProviderInfo(EProvider.TRUST))\n\n if (currentProvider.isGoWallet) result.push(getProviderInfo(EProvider.GO_WALLET))\n\n if (currentProvider.isAlphaWallet) result.push(getProviderInfo(EProvider.ALPHA_WALLET))\n\n if (currentProvider.isStatus) result.push(getProviderInfo(EProvider.STATUS))\n\n if (currentProvider.isToshi) result.push(getProviderInfo(EProvider.COINBASE))\n\n // eslint-disable-next-line no-underscore-dangle\n if (typeof (window as any).__CIPHER__ !== 'undefined') result.push(getProviderInfo(EProvider.CIPHER))\n\n if (currentProvider.constructor.name === 'EthereumProvider') result.push(getProviderInfo(EProvider.MIST))\n\n if (currentProvider.constructor.name === 'Web3FrameProvider') result.push(getProviderInfo(EProvider.PARITY))\n\n if (currentProvider.host && currentProvider.host.indexOf('infura') !== -1) result.push(getProviderInfo(EProvider.INFURA))\n\n if (currentProvider.host && currentProvider.host.indexOf('localhost') !== -1) result.push(getProviderInfo(EProvider.LOCAL))\n\n return result\n}\n\nexport const getConnectionStatus = (\n web3?: Web3,\n requiredNetworkId?: number,\n currentNetworkId?: number,\n account?: string,\n): ConnectionStatus => {\n if (!web3) return ConnectionStatus.LoggedOut\n\n if (currentNetworkId !== requiredNetworkId) {\n return ConnectionStatus.WrongNetwork\n }\n\n if (account) {\n return ConnectionStatus.LoggedIn\n }\n return ConnectionStatus.WalletLocked\n}\n","import React, { FC, useState, useEffect } from 'react'\nimport Web3 from 'web3'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Popover from '@material-ui/core/Popover'\nimport Typography from '@material-ui/core/Typography'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport { shortenString } from '../../utils'\nimport { Button, NetworkIndicator } from '../atoms'\nimport { colors, fonts } from '../../theme'\nimport { AccountModal, WrongNetworkModal } from '../molecules'\nimport ConnectionStatus from '../../models/Enums'\nimport { getConnectionStatus } from '../../services/Web3Service'\nimport NetworkInfo from '../../models/NetworkInfo'\n\nexport interface AccountProps {\n requiredNetworkName: string\n setProvider?: (provider: EProvider) => Promise\n web3?: Web3\n networkInfo?: NetworkInfo\n account?: string\n availableProviders?: ProviderInfo[]\n requiredNetworkId?: number\n onCorrectNetworkMessage?: string\n onNetworkMismatchMessage?: string\n noNetworkMessage?: string\n modalInitiallyOpened?: boolean\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n accountText: {\n fontSize: fonts.size.tiny,\n textAlign: 'center',\n },\n button: {\n border: `1px solid ${colors.white}`,\n '&:hover': {\n border: `1px solid ${colors.transparent}`,\n },\n },\n networkIndicator: {\n marginRight: theme.spacing(1),\n },\n rightNetwork: {\n padding: theme.spacing(2),\n },\n}))\n\nconst Account: FC = (props) => {\n const {\n web3,\n networkInfo,\n account,\n setProvider,\n availableProviders,\n requiredNetworkId,\n onCorrectNetworkMessage,\n onNetworkMismatchMessage,\n noNetworkMessage,\n requiredNetworkName,\n modalInitiallyOpened = false,\n } = props\n const classes = useStyles()\n\n const [accountModalOpen, setAccountModalOpen] = useState(modalInitiallyOpened)\n const handleAccountModalClose = (): void => setAccountModalOpen(false)\n const handleAccountModalOpen = (): void => setAccountModalOpen(true)\n const [wrongNetModalOpen, setWrongNetModalOpen] = useState(false)\n const openWrongNetModal = (): void => setWrongNetModalOpen(true)\n const closeWrongNetModal = (): void => setWrongNetModalOpen(false)\n const connectionStatus: ConnectionStatus = getConnectionStatus(web3, requiredNetworkId, networkInfo?.networkId, account)\n\n // TODO: extract popover functionallity into new component\n const [anchorEl, setAnchorEl] = React.useState(null)\n\n const popoverOpen = Boolean(anchorEl)\n const id = popoverOpen ? 'right-net-popover' : undefined\n\n const handlePopoverClose = () => {\n setAnchorEl(null)\n }\n\n useEffect(() => {\n if (connectionStatus === ConnectionStatus.WrongNetwork) {\n openWrongNetModal()\n } else {\n closeWrongNetModal()\n handlePopoverClose()\n }\n }, [connectionStatus])\n\n const accountText = (): string => {\n if (connectionStatus === ConnectionStatus.LoggedOut) return 'Connect wallet'\n\n if (connectionStatus === ConnectionStatus.WrongNetwork) return 'Wrong Network'\n\n if (account) {\n // means connectionStatus === ConnectionStatus.LoggedIn\n return shortenString(account)\n }\n return 'Unlock your wallet'\n }\n\n const onAccountClicked = (event: React.MouseEvent): void | null => {\n if (connectionStatus === ConnectionStatus.WrongNetwork) return openWrongNetModal()\n\n if (connectionStatus === ConnectionStatus.LoggedOut) return handleAccountModalOpen()\n\n if (connectionStatus === ConnectionStatus.LoggedIn) return setAnchorEl(event.currentTarget)\n return null\n }\n\n return (\n \n \n {/* TODO: extract molecule */}\n \n \n {`You are successfully connected to ${networkInfo?.name}.`}\n \n \n \n \n \n )\n}\n\nexport default Account\n","import React, { FC } from 'react'\nimport {\n AppBar, Grid, ListItemIcon, Toolbar,\n} from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { NavLink } from 'react-router-dom'\nimport Typography from '@material-ui/core/Typography'\nimport { ActionHeaderItemProps, HeaderProps, NavItemProps } from './HeaderProps'\nimport { LogoNavbar } from '../../atoms'\nimport { colors, fonts, globalConstants } from '../../../theme'\nimport { removeEmptySpaces } from '../../../utils'\n\nconst useStyles = makeStyles((theme: Theme) => ({\n activeNavlink: {\n color: `${colors.white} !important`,\n fontWeight: fonts.weight.medium,\n },\n navLink: {\n alignItems: 'center',\n color: colors.white,\n display: 'flex',\n paddingLeft: theme.spacing(5),\n paddingRight: theme.spacing(5),\n textAlign: 'center',\n textDecoration: 'none',\n '&:hover': {\n color: colors.gray5,\n textDecoration: 'none',\n },\n },\n navLinkContainer: {\n display: 'flex',\n },\n root: {\n boxShadow: 'none',\n // this height needs to be equal to the marginTop of PageTemplate\n height: theme.spacing(globalConstants.headerHeight),\n },\n}))\n\nconst HeaderDesktop: FC = ({\n hreflogo, itemsStart, itemsEnd, login,\n}) => {\n const classes = useStyles()\n const Login = login\n\n return (\n \n \n \n \n \n \n \n \n \n {\n !!itemsStart?.length\n && itemsStart.map((navItem: NavItemProps) => (\n \n \n {navItem.title}\n \n \n ))\n }\n \n \n {\n !!itemsEnd?.length\n && itemsEnd.map(({ icon, ...rest }: ActionHeaderItemProps) => (\n \n {icon}\n \n ))\n }\n \n \n
\n \n
\n \n \n
\n
\n )\n}\n\nexport default HeaderDesktop\n","import React, { FC, useState } from 'react'\nimport {\n AppBar,\n Divider,\n Drawer, Toolbar,\n IconButton, List, ListItem,\n ListItemText, ListItemIcon, Grid,\n} from '@material-ui/core'\nimport { NavLink } from 'react-router-dom'\nimport MenuIcon from '@material-ui/icons/Menu'\nimport ChevronLeftIcon from '@material-ui/icons/ChevronLeft'\nimport { Theme, createStyles, makeStyles } from '@material-ui/core/styles'\nimport { ActionHeaderItemProps, HeaderProps, NavItemProps } from './HeaderProps'\nimport { colors, globalConstants } from '../../../theme'\nimport { LogoNavbar } from '../../atoms'\nimport { removeEmptySpaces } from '../../../utils'\n\nconst drawerWidth = 240\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n drawerHeader: {\n display: 'flex',\n alignItems: 'center',\n padding: theme.spacing(0, 1),\n // necessary for content to be below app bar\n ...theme.mixins.toolbar,\n justifyContent: 'flex-end',\n },\n drawerPaper: {\n width: drawerWidth,\n },\n mobileAppBar: {\n boxShadow: 'none',\n // this height needs to be equal to the marginTop of PageTemplate\n height: theme.spacing(globalConstants.headerHeight),\n transition: theme.transitions.create(['margin', 'width'], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n },\n mobileAppBarShift: {\n width: `calc(100% - ${drawerWidth}px)`,\n marginLeft: drawerWidth,\n transition: theme.transitions.create(['margin', 'width'], {\n easing: theme.transitions.easing.easeOut,\n duration: theme.transitions.duration.enteringScreen,\n }),\n },\n mobileNavLink: {\n alignItems: 'center',\n color: colors.gray4,\n display: 'flex',\n textDecoration: 'none',\n width: '100%',\n '&:hover': {\n color: colors.gray5,\n textDecoration: 'none',\n },\n },\n mobileNavLinkActive: {\n color: `${colors.primary} !important`,\n },\n}))\n\nconst HeaderMobile: FC = ({\n hreflogo, itemsStart, itemsEnd, login: Login,\n}) => {\n const classes = useStyles()\n const [open, setOpen] = useState(false)\n\n const toggleDrawer = (isOpen: boolean) => (\n event: React.KeyboardEvent | React.MouseEvent,\n ): void => {\n if (\n event.type === 'keydown'\n && ((event as React.KeyboardEvent).key === 'Tab'\n || (event as React.KeyboardEvent).key === 'Shift')\n ) {\n return\n }\n setOpen(isOpen)\n }\n\n return (\n \n \n \n {!open && (\n \n \n \n \n \n \n \n \n \n \n \n \n {\n !!itemsEnd?.length\n && itemsEnd.map(({ icon, ...rest }: ActionHeaderItemProps) => (\n \n {icon}\n \n ))\n }\n \n \n
\n \n
\n
\n \n )}\n
\n \n \n
\n \n \n \n
\n \n \n {\n !!itemsStart?.length\n && itemsStart.map((headerItem: NavItemProps) => (\n \n \n \n {headerItem.icon}\n \n \n \n \n ))\n }\n \n \n \n\n )\n}\n\nexport default HeaderMobile\n","import React, { FC } from 'react'\nimport Hidden from '@material-ui/core/Hidden'\nimport { HeaderProps } from './HeaderProps'\nimport HeaderDesktop from './HeaderDesktop'\nimport HeaderMobile from './HeaderMobile'\n\nconst Header: FC = (props) => (\n \n \n \n \n \n \n \n \n)\n\nexport default Header\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../../theme'\nimport { headerTongueImg } from '../../../assets/images'\n\nexport interface HeaderTongueProps {\n description: string\n titleLine1: string\n titleLine2: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n textContainer: {\n alignItems: 'center',\n backgroundColor: colors.primary,\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n },\n textContent: {\n color: colors.white,\n display: 'flex',\n flexDirection: 'column',\n textAlign: 'center',\n [theme.breakpoints.down('sm')]: {\n maxWidth: '90%',\n },\n [theme.breakpoints.up('md')]: {\n maxWidth: '65%',\n },\n [theme.breakpoints.up('xl')]: {\n maxWidth: '55%',\n },\n },\n titleContent: {\n marginBottom: theme.spacing(1),\n fontSize: theme.spacing(5),\n fontWeight: fonts.weight.regular,\n },\n tongueImg: {\n width: '100%',\n },\n}))\n\nconst HeaderTongue: FC = (\n { description, titleLine1, titleLine2 },\n) => {\n const classes = useStyles()\n\n return (\n \n
\n
\n \n {titleLine1}\n
\n {' '}\n {titleLine2}\n \n {description}\n
\n
\n \n
\n )\n}\n\nexport default HeaderTongue\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport FAQSection, { FAQSectionProps } from '../molecules/FAQSection'\nimport { colors } from '../../theme'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FAQPageTemplateProps {\n className?: string\n mainTitle: string\n questionsAndAnswers: FAQSectionProps[]\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n marginTop: theme.spacing(3),\n },\n container: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n [theme.breakpoints.up('md')]: {\n maxWidth: '80%',\n },\n },\n grayBackground: {\n backgroundColor: colors.gray1,\n },\n mainTitle: {\n fontSize: theme.typography.pxToRem(50),\n margin: theme.spacing(2, 0),\n },\n questionsSection: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n marginTop: theme.spacing(2),\n },\n}))\n\nconst FAQPageTemplate: FC = ({ className = '', mainTitle, questionsAndAnswers }) => {\n const classes = useStyles()\n return (\n
\n
\n {mainTitle}\n
\n {\n questionsAndAnswers.map((qAndA: FAQSectionProps, i) => (\n \n ))\n }\n
\n
\n
\n )\n}\n\nexport default FAQPageTemplate\n","import React, { FC, HTMLAttributes } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { globalConstants } from '../../theme'\n\nexport type PageTemplateProps = HTMLAttributes;\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n // as the header has fixed position, we need to match its height\n marginTop: theme.spacing(globalConstants.headerHeight),\n width: '100%',\n },\n}))\n\nconst PageTemplate: FC = ({ children, className = '', ...props }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default PageTemplate\n","import React, {\n Component, createContext, ReactNode,\n} from 'react'\nimport Web3 from 'web3'\nimport {\n getWeb3, getNetworkInfoFromWeb3, getAvailableProviders,\n} from '../services/Web3Service'\nimport NetworkInfo from '../models/NetworkInfo'\nimport ProviderInfo, { EProvider } from '../models/ProviderInfo'\n\nexport interface Web3ProviderProps {\n state: {\n provider?: EProvider\n web3?: Web3\n account?: string\n networkInfo?: NetworkInfo\n requiredNetworkId?: number\n }\n actions: {\n setProvider?: (\n provider: EProvider,\n onStateChanged?: (account?: string) => void\n ) => Promise\n onConnectedNetworkChange?: () => void\n onConnectedAccountChange?: () => void\n }\n requiredNetworkId?: number\n requiredChainId?: number\n availableProviders?: ProviderInfo[]\n}\n\nexport const defaultWeb3State: Web3ProviderState = {\n provider: undefined,\n web3: undefined,\n account: undefined,\n networkInfo: undefined,\n}\n\nexport const Web3Store = createContext({\n state: defaultWeb3State,\n actions: {\n setProvider: (): Promise => Promise.resolve(),\n onConnectedNetworkChange: (): any => 0,\n onConnectedAccountChange: (): any => 0,\n },\n requiredNetworkId: undefined,\n requiredChainId: undefined,\n})\n\ninterface Web3ProviderState {\n provider?: EProvider\n web3?: Web3\n account?: string\n networkInfo?: NetworkInfo\n}\n\nconst getAccountFromEthAccounts = (accounts: string[] | string): string | undefined => {\n let account: string\n\n if (Array.isArray(accounts)) [account] = accounts\n else account = accounts\n return account\n}\n\n/**\n * The provider will not read the account when a requiredNetworkId was provided\n * and it does not match the networkId of current networkInfo, same applies to\n * chainId. Nothing happens if the requiredNetworkId was not specified\n * @param requiredNetworkId given on the props of the provider\n * @param requiredChainId given on the props of the provider\n * @param networkInfo obtained from the wallet\n */\nconst shouldReadAccount = (\n requiredNetworkId?: number,\n requiredChainId?: number,\n networkInfo?: NetworkInfo,\n): boolean => {\n // the consumer did not provide enough information to validate the network, so we do not check\n if (!requiredNetworkId) return true\n\n if (requiredNetworkId === networkInfo?.networkId) {\n // only when chainId is provided we compare it\n if (requiredChainId) return requiredChainId === networkInfo?.chainId\n return true\n }\n return false\n}\n\nclass Web3Provider extends Component {\n private readonly requiredNetworkId?: number\n\n private readonly requiredChainId?: number\n\n private availableProviders?: ProviderInfo[]\n\n constructor(props: Web3ProviderProps) {\n super(props)\n this.state = defaultWeb3State\n this.requiredNetworkId = props.requiredNetworkId\n this.requiredChainId = props.requiredChainId\n this.onConnectedNetworkChange = props.actions.onConnectedNetworkChange\n this.onConnectedAccountChange = props.actions.onConnectedAccountChange\n this.setProvider = this.setProvider.bind(this)\n this.initialize()\n }\n\n private readonly onConnectedNetworkChange?: () => void\n\n private readonly onConnectedAccountChange?: () => void\n\n public async setProvider(provider: EProvider,\n onStateChanged?: (account?: string) => void): Promise {\n const web3 = await getWeb3(provider)\n const accounts = await web3.eth.getAccounts()\n const networkInfo = await getNetworkInfoFromWeb3(web3)\n // only validate requiredNetworkId and requiredChainId when are provided\n const shouldSetAccount = shouldReadAccount(this.requiredNetworkId, this.requiredChainId, networkInfo)\n\n const account = shouldSetAccount\n ? getAccountFromEthAccounts(accounts)\n : undefined\n\n this.setState(\n {\n web3,\n provider,\n account,\n networkInfo,\n },\n () => (onStateChanged && onStateChanged(account)),\n )\n }\n\n private initialize(): void {\n if (!window.ethereum) {\n return\n }\n this.availableProviders = getAvailableProviders()\n\n window.ethereum.autoRefreshOnNetworkChange = false\n // handle on networkChange\n window.ethereum.on('networkChanged', async (_netId) => {\n const { networkInfo } = this.state\n\n if (!networkInfo) return // wallet is not connected\n const { provider } = this.state\n const web3 = await getWeb3(provider)\n const accounts = await web3.eth.getAccounts()\n const newNetworkInfo = await getNetworkInfoFromWeb3(web3)\n\n // we do not want to set the account if we know it is the wrong network\n const shouldSetAccount = shouldReadAccount(\n this.requiredNetworkId,\n this.requiredChainId,\n newNetworkInfo,\n )\n const account = shouldSetAccount\n ? getAccountFromEthAccounts(accounts)\n : undefined\n\n this.setState(\n {\n networkInfo: newNetworkInfo,\n account,\n },\n () => this.onConnectedNetworkChange && this.onConnectedNetworkChange(),\n )\n })\n // handle on accountsChanged\n window.ethereum.on('accountsChanged', (accounts: string | string[]) => {\n const { networkInfo } = this.state\n\n if (!networkInfo) return // wallet is not connected\n // we only care about this change if it is on the right network\n // or if we can not validate the required network\n const shouldSetAccount = shouldReadAccount(\n this.requiredNetworkId, this.requiredChainId, networkInfo,\n )\n\n if (shouldSetAccount) {\n const account = getAccountFromEthAccounts(accounts)\n\n if (account) {\n this.setState({\n account,\n },\n () => this.onConnectedAccountChange\n && this.onConnectedAccountChange())\n }\n }\n })\n }\n\n public render(): ReactNode {\n const {\n provider,\n web3,\n account,\n networkInfo,\n } = this.state\n const {\n setProvider,\n onConnectedNetworkChange,\n onConnectedAccountChange,\n availableProviders,\n } = this\n\n const { children } = this.props\n\n return (\n \n {children}\n \n )\n }\n}\n\nexport default { Consumer: Web3Store.Consumer, Provider: Web3Provider }\n"],"names":["useStyles","makeStyles","block","width","noShadow","boxShadow","rounded","borderRadius","Button","className","shadow","children","rest","classes","React","MUIButton","trim","colors","black","primary","darkBlue","gray1","gray2","gray3","gray4","gray5","gray6","transparent","white","fonts","family","size","tiny","small","normal","medium","subtitleSmall","subtitleBig","weight","light","regular","bold","globalConstants","headerHeight","theme","createMuiTheme","palette","main","secondary","typography","fontFamily","button","textTransform","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","body1","fontWeight","props","overrides","MuiButton","root","MuiFormControlLabel","color","MuiSlider","rail","height","opacity","track","thumb","marginLeft","MuiTextField","createStyles","unCheckedIcon","checkedIcon","Checkbox","checked","isChecked","setIsChecked","useState","handleChange","event","newChecked","onChange","MUICheckbox","CheckBoxSharp","icon","CheckBoxOutlineBlankSharp","require","EProvider","getProviderInfo","eProvider","METAMASK","name","iconImg","metaMaskIconImg","NIFTY","niftyIconImg","LEDGER","TREZOR","TRUST","GO_WALLET","ALPHA_WALLET","STATUS","COINBASE","MIST","PARITY","INFURA","LOCAL","Error","padding","margin","content","display","alignItems","maxHeight","spacing","justifyContent","imageWrapper","marginRight","LoginOption","onClick","providerInfo","providerContent","src","alt","handleOnClick","window","open","variant","Tooltip","arrow","title","Logo","logoFullWhite","LogoNavbar","fontSize","pxToRem","selected","borderBottom","StyledNavTab","Tab","component","NavLink","disableRipple","defaultonCorrectNetworkMessage","deaulftonNetworkMismatchMessage","defaultNoNetworkMessage","NetworkStatus","getNetworkStatus","currentNetworkId","requiredNetworkId","NO_NETWORK","CORRECT_NETWORK","NETWORK_MISSMATCH","NetworkIndicator","iconClassName","onCorrectNetworkMessage","onNetworkMismatchMessage","noNetworkMessage","networkStatus","iconPerNetworkStatus","Map","set","WarningIcon","style","yellow","ErrorIcon","CheckCircleOutlineOutlinedIcon","green","get","paper","backgroundColor","background","border","shadows","left","minWidth","position","top","transform","Modal","MUIModal","ModalHeader","ModalTitle","Typography","borderTop","paddingTop","ModalFooter","ModalBody","overlay","zIndex","spinner","animation","WithSpinner","WrappedComponent","Spinner","isLoading","logoBlueIcon","heading","accordionSummary","Accordion","expanded","id","isExpanded","setIsExpanded","MUIAccordion","AccordionSummary","expandIcon","ExpandMoreIcon","AccordionDetails","AccountModal","setProvider","availableProviders","onClose","onProviderSet","Fragment","length","map","key","tooltipTitle","CopyTextTooltip","displayElement","fullText","isCopied","setIsCopied","tooltipContent","FileCopyIcon","interactive","navigator","clipboard","writeText","then","headingExpanded","headingCollapsed","panelDetails","answerContainer","breakpoints","up","maxWidth","answerText","FAQSection","initiallyExpanded","question","answer","RemoveIcon","AddIcon","LabeledCheckbox","labelText","labelClassName","FormControlLabel","label","control","FilterCheckboxCard","items","item","i","shortenString","str","largerThan","charsShownCount","substr","removeEmptySpaces","replace","maxSupportedNumber","minSupportedNumber","validatedNumber","num","flexDirection","footerLink","textDecoration","footerTitle","textAlign","FooterColumn","links","link","isExternal","href","to","toString","target","ModalDialogue","footer","input","paddingLeft","inputContainer","paddingRight","units","unitsContainer","alignSelf","UnitsInput","maxValue","minValue","value","step","handleOnBlur","handleOnChange","Grid","container","xs","Input","onBlur","type","fullWidth","inputProps","min","max","inputsContainer","toContainer","RangeSliderWithInputs","values","start","startValue","end","endValue","unit","handleStartInputChange","newStartValue","Number","handleEndInputChange","newEndValue","handleSliderChange","_","newSliderValue","handleStartValueBlur","handleEndValueBlur","getCommonInputValues","Slider","ShortenTextTooltip","maxLength","indicator","StyledTabs","Tabs","a11yProps","index","minHeight","overflow","tabContainer","tab","outlineStyle","tabIndicator","tabSelected","SwitchTabs","label1","label2","controlledValue","newValue","MUITabs","TabIndicatorProps","MUITab","TooltipIconButton","iconButtonProps","IconButton","boxContainer","marginTop","loaderContainer","WrongNetworkModal","currentNetworkName","requiredNetworkName","gutterBottom","align","Box","sm","CircularProgress","copyright","copyrightContent","footerContainer","paddingBottom","footerContent","linksColumn","marginBottom","logoColumn","tongue","borderTopLeftRadius","borderTopRightRadius","Footer","copyrightText","linksColumns","direction","md","lg","logoBlackAndBlue","linkColumn","ConnectionStatus","getWeb3","provider","Promise","resolve","reject","ethereum","web3","Web3","enable","catch","currentProvider","localhostProvider","providers","HttpProvider","getNetworkInfo","networkId","chainId","networksData","find","n","getNetworkInfoFromWeb3","eth","net","getId","getChainId","error","networkInfo","getWeb3Provider","undefined","getAvailableProviders","result","isMetaMask","push","isNiftyWallet","isTrust","isGoWallet","isAlphaWallet","isStatus","isToshi","__CIPHER__","CIPHER","constructor","host","indexOf","getConnectionStatus","account","LoggedOut","WrongNetwork","LoggedIn","WalletLocked","accountText","networkIndicator","rightNetwork","Account","modalInitiallyOpened","accountModalOpen","setAccountModalOpen","handleAccountModalClose","handleAccountModalOpen","wrongNetModalOpen","setWrongNetModalOpen","openWrongNetModal","closeWrongNetModal","connectionStatus","anchorEl","setAnchorEl","popoverOpen","Boolean","handlePopoverClose","useEffect","onAccountClicked","currentTarget","Popover","anchorOrigin","vertical","horizontal","transformOrigin","activeNavlink","navLink","navLinkContainer","HeaderDesktop","hreflogo","itemsStart","itemsEnd","login","Login","AppBar","Toolbar","xl","justify","navItem","activeClassName","alignContent","ListItemIcon","drawerWidth","drawerHeader","mixins","toolbar","drawerPaper","mobileAppBar","transition","transitions","create","easing","sharp","duration","leavingScreen","mobileAppBarShift","easeOut","enteringScreen","mobileNavLink","mobileNavLinkActive","HeaderMobile","setOpen","toggleDrawer","isOpen","role","onKeyDown","MenuIcon","Drawer","anchor","ChevronLeftIcon","Divider","List","headerItem","ListItem","ListItemText","Header","Hidden","smDown","mdUp","textContainer","textContent","down","titleContent","tongueImg","HeaderTongue","description","titleLine1","titleLine2","headerTongueImg","grayBackground","mainTitle","questionsSection","FAQPageTemplate","questionsAndAnswers","qAndA","PageTemplate","defaultWeb3State","Web3Store","createContext","state","actions","onConnectedNetworkChange","onConnectedAccountChange","requiredChainId","getAccountFromEthAccounts","accounts","Array","isArray","shouldReadAccount","Web3Provider","Component","bind","initialize","onStateChanged","getAccounts","shouldSetAccount","setState","autoRefreshOnNetworkChange","on","_netId","newNetworkInfo","render","Provider","Consumer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,MAAMA,SAAS,GAAGC,UAAU,CAAC,OAAO;AAClCC,EAAAA,KAAK,EAAE;AACLC,IAAAA,KAAK,EAAE;AADF,GAD2B;AAIlCC,EAAAA,QAAQ,EAAE;AACRC,IAAAA,SAAS,EAAE;AADH,GAJwB;AAOlCC,EAAAA,OAAO,EAAE;AACPC,IAAAA,YAAY,EAAE;AADP;AAPyB,CAAP,CAAD,CAA5B;;AAYA,MAAMC,MAAM,GAAoB,CAAC;AAC/BC,EAAAA,SAAS,EAATA,UAAS,GAAG,EADmB;AACfP,EAAAA,KADe;AACRQ,EAAAA,MADQ;AACAJ,EAAAA,OADA;AACSK,EAAAA,QADT;AACmB,KAAGC;AADtB,CAAD;AAG9B,QAAMC,OAAO,GAAGb,SAAS,EAAzB;AAEA,SACEc,4BAAA,CAACC,QAAD;AACEN,IAAAA,SAAS,KACJH,OAAO,GAAGO,OAAO,CAACP,OAAX,GAAqB;UAC7BI,MAAM,GAAG,EAAH,GAAQG,OAAO,CAACT;UACtBF,KAAK,GAAGW,OAAO,CAACX,KAAX,GAAmB,MAAMO,YAFhC,CAE4CO,IAF5C;KAIEJ,KANN,EAQGD,QARH,CADF;AAYD,CAjBD;;MCnBaM,MAAM,GAAG;AACpBC,EAAAA,KAAK,EAAE,SADa;AAEpBC,EAAAA,OAAO,EAAE,SAFW;AAGpBC,EAAAA,QAAQ,EAAE,SAHU;AAIpBC,EAAAA,KAAK,EAAE,SAJa;AAKpBC,EAAAA,KAAK,EAAE,SALa;AAMpBC,EAAAA,KAAK,EAAE,SANa;AAOpBC,EAAAA,KAAK,EAAE,SAPa;AAQpBC,EAAAA,KAAK,EAAE,SARa;AASpBC,EAAAA,KAAK,EAAE,SATa;AAUpBC,EAAAA,WAAW,EAAE,WAVO;AAWpBC,EAAAA,KAAK,EAAE;AAXa,CAAf;AAcP,MAAaC,KAAK,GAAG;AACnBC,EAAAA,MAAM,EAAE,OADW;AAEnBC,EAAAA,IAAI,EAAE;AACJC,IAAAA,IAAI,EAAE,EADF;AAEJC,IAAAA,KAAK,EAAE,EAFH;AAGJC,IAAAA,MAAM,EAAE,EAHJ;AAIJC,IAAAA,MAAM,EAAE,EAJJ;AAKJC,IAAAA,aAAa,EAAE,EALX;AAMJC,IAAAA,WAAW,EAAE;AANT,GAFa;AAUnBC,EAAAA,MAAM,EAAE;AACNC,IAAAA,KAAK,EAAE,GADD;AAENC,IAAAA,OAAO,EAAE,GAFH;AAGNL,IAAAA,MAAM,EAAE,GAHF;AAINM,IAAAA,IAAI,EAAE;AAJA;AAVW,CAAd;AAkBP,MAAaC,eAAe,GAAG;AAC7BC,EAAAA,YAAY,EAAE;AADe,CAAxB;AAIP,MAAMC,KAAK,GAAGC,cAAc,CAAC;AAC3BC,EAAAA,OAAO,EAAE;AACP3B,IAAAA,OAAO,EAAE;AACP4B,MAAAA,IAAI,EAAE9B,MAAM,CAACE;AADN,KADF;AAIP6B,IAAAA,SAAS,EAAE;AACTD,MAAAA,IAAI,EAAE9B,MAAM,CAACO;AADJ;AAJJ,GADkB;AAS3ByB,EAAAA,UAAU,EAAE;AACVC,IAAAA,UAAU,EAAErB,KAAK,CAACC,MADR;AAEVqB,IAAAA,MAAM,EAAE;AACNC,MAAAA,aAAa,EAAE;AADT,KAFE;AAKVC,IAAAA,eAAe,EAAExB,KAAK,CAACS,MAAN,CAAaC,KALpB;AAMVe,IAAAA,iBAAiB,EAAEzB,KAAK,CAACS,MAAN,CAAaE,OANtB;AAOVe,IAAAA,gBAAgB,EAAE1B,KAAK,CAACS,MAAN,CAAaH,MAPrB;AAQVqB,IAAAA,cAAc,EAAE3B,KAAK,CAACS,MAAN,CAAaG,IARnB;AASVgB,IAAAA,KAAK,EAAE;AACLC,MAAAA,UAAU,EAAE7B,KAAK,CAACS,MAAN,CAAaC;AADpB;AATG,GATe;AAsB3BoB,EAAAA,KAAK,EAAE,EAtBoB;AAuB3BC,EAAAA,SAAS,EAAE;AACTC,IAAAA,SAAS,EAAE;AACTC,MAAAA,IAAI,EAAE;AACJJ,QAAAA,UAAU,EAAE7B,KAAK,CAACS,MAAN,CAAaC;AADrB;AADG,KADF;AAMTwB,IAAAA,mBAAmB,EAAE;AACnBD,MAAAA,IAAI,EAAE;AACJE,QAAAA,KAAK,EAAE/C,MAAM,CAACM;AADV;AADa,KANZ;AAWT0C,IAAAA,SAAS,EAAE;AACTC,MAAAA,IAAI,EAAE;AACJF,QAAAA,KAAK,EAAE/C,MAAM,CAACM,KADV;AAEJ4C,QAAAA,MAAM,EAAE,CAFJ;AAGJC,QAAAA,OAAO,EAAE;AAHL,OADG;AAMTN,MAAAA,IAAI,EAAE;AACJ3D,QAAAA,KAAK,EAAE,MADH;AAEJ6D,QAAAA,KAAK,EAAE/C,MAAM,CAACE,OAFV;AAGJgD,QAAAA,MAAM,EAAE;AAHJ,OANG;AAWTE,MAAAA,KAAK,EAAE;AACLF,QAAAA,MAAM,EAAE;AADH,OAXE;AAcTG,MAAAA,KAAK,EAAE;AACLC,QAAAA,UAAU,EAAE,CAAC,CADR;AAELJ,QAAAA,MAAM,EAAE,EAFH;AAGLhE,QAAAA,KAAK,EAAE;AAHF;AAdE,KAXF;AA+BTqE,IAAAA,YAAY,EAAE;AACZV,MAAAA,IAAI,EAAE;AACJE,QAAAA,KAAK,EAAE/C,MAAM,CAACM,KADV;AAEJ,mBAAW;AACTyC,UAAAA,KAAK,EAAE/C,MAAM,CAACK;AADL;AAFP;AADM;AA/BL;AAvBgB,CAAD,CAA5B;;AC3BA,MAAMtB,WAAS,GAAGC,YAAU,CAAC,MAAMwE,YAAY,CAAC;AAC9CC,EAAAA,aAAa,EAAE;AACbV,IAAAA,KAAK,EAAE/C,MAAM,CAACO;AADD,GAD+B;AAI9CmD,EAAAA,WAAW,EAAE;AACXX,IAAAA,KAAK,EAAE/C,MAAM,CAACE;AADH;AAJiC,CAAD,CAAnB,CAA5B;;AASA,MAAMyD,QAAQ,GAAuBjB,KAAD;AAClC,QAAM9C,OAAO,GAAGb,WAAS,EAAzB;AACA,QAAM;AAAE6E,IAAAA;AAAF,MAAclB,KAApB;AACA,QAAM,CAACmB,SAAD,EAAYC,YAAZ,IAA4BC,QAAQ,CAAC,CAAC,CAACH,OAAH,CAA1C;;AAEA,QAAMI,YAAY,GAAG,CAACC,KAAD,EACnBC,UADmB;AAEnBJ,IAAAA,YAAY,CAACI,UAAD,CAAZ;AACA,UAAM;AAAEC,MAAAA;AAAF,QAAezB,KAArB;AAEA,QAAIyB,QAAJ,EAAcA,QAAQ,CAACF,KAAD,EAAQC,UAAR,CAAR;AACf,GAND;;AAQA,SACErE,4BAAA,CAACuE,UAAD;AACEV,IAAAA,WAAW,EACT7D,4BAAA,CAACwE,aAAD;AAAe7E,MAAAA,SAAS,EAAEI,OAAO,CAAC8D;KAAlC;AAEFY,IAAAA,IAAI,EACFzE,4BAAA,CAAC0E,yBAAD;AAA2B/E,MAAAA,SAAS,EAAEI,OAAO,CAAC6D;KAA9C;KAEEf;AACJkB,IAAAA,OAAO,EAAEC;AACTM,IAAAA,QAAQ,EAAEH;IATZ,CADF;AAaD,CA1BD;;;;;;;;;;;;;;ACpBA,mBAAeQ,OAAO,CAAC,sBAAD,CAAtB;;ACAA,aAAeA,OAAO,CAAC,uBAAD,CAAtB;;ACAA,aAAeA,OAAO,CAAC,uBAAD,CAAtB;;ACAA,aAAeA,OAAO,CAAC,uBAAD,CAAtB;;ACAA,aAAeA,OAAO,CAAC,uBAAD,CAAtB;;ACAA,aAAeA,OAAO,CAAC,uBAAD,CAAtB;;ACAA,aAAeA,OAAO,CAAC,uBAAD,CAAtB;;;;;;;;;;;;ACOA,IAAYC,SAAZ;;AAAA,WAAYA;AACVA,EAAAA,qBAAA,aAAA;AACAA,EAAAA,kBAAA,UAAA;AACAA,EAAAA,mBAAA,WAAA;AACAA,EAAAA,mBAAA,WAAA;AACAA,EAAAA,kBAAA,UAAA;AACAA,EAAAA,kBAAA,cAAA;AACAA,EAAAA,sBAAA,aAAA;AACAA,EAAAA,yBAAA,gBAAA;AACAA,EAAAA,mBAAA,WAAA;AACAA,EAAAA,mBAAA,WAAA;AACAA,EAAAA,qBAAA,aAAA;AACAA,EAAAA,iBAAA,SAAA;AACAA,EAAAA,mBAAA,WAAA;AACAA,EAAAA,mBAAA,WAAA;AACD,CAfD,EAAYA,SAAS,KAATA,SAAS,KAAA,CAArB;;AAiBA,AAAO,MAAMC,eAAe,GAAIC,SAAD;AAC7B,UAAQA,SAAR;AACE,SAAKF,SAAS,CAACG,QAAf;AACE,aAAO;AACLC,QAAAA,IAAI,EAAE,UADD;AAELF,QAAAA,SAFK;AAGLG,QAAAA,OAAO,EAAEC;AAHJ,OAAP;;AAKF,SAAKN,SAAS,CAACO,KAAf;AACE,aAAO;AACLH,QAAAA,IAAI,EAAE,OADD;AAELF,QAAAA,SAFK;AAGLG,QAAAA,OAAO,EAAEG;AAHJ,OAAP;;AAKF,SAAKR,SAAS,CAACS,MAAf;AACE,aAAO;AACLL,QAAAA,IAAI,EAAE,QADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACU,MAAf;AACE,aAAO;AACLN,QAAAA,IAAI,EAAE,QADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACW,KAAf;AACE,aAAO;AACLP,QAAAA,IAAI,EAAE,OADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACY,SAAf;AACE,aAAO;AACLR,QAAAA,IAAI,EAAE,WADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACa,YAAf;AACE,aAAO;AACLT,QAAAA,IAAI,EAAE,cADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACc,MAAf;AACE,aAAO;AACLV,QAAAA,IAAI,EAAE,QADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACe,QAAf;AACE,aAAO;AACLX,QAAAA,IAAI,EAAE,UADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACgB,IAAf;AACE,aAAO;AACLZ,QAAAA,IAAI,EAAE,MADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACiB,MAAf;AACE,aAAO;AACLb,QAAAA,IAAI,EAAE,QADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACkB,MAAf;AACE,aAAO;AACLd,QAAAA,IAAI,EAAE,QADD;AAELF,QAAAA;AAFK,OAAP;;AAIF,SAAKF,SAAS,CAACmB,KAAf;AACE,aAAO;AACLf,QAAAA,IAAI,EAAE,WADD;AAELF,QAAAA;AAFK,OAAP;;AAIF;AAAS;AACP,cAAM,IAAIkB,KAAJ,0DACqDlB,WADrD,CAAN;AAGD;AAxEH;AA0ED,CA3EM;;ACbP,MAAM5F,WAAS,GAAGC,YAAU,CAAE2C,KAAD,KAAmB;AAC9CkB,EAAAA,IAAI,EAAE;AACJiD,IAAAA,OAAO,EAAE,CADL;AAEJC,IAAAA,MAAM,EAAE,CAFJ;AAGJ7G,IAAAA,KAAK,EAAE;AAHH,GADwC;AAM9C8G,EAAAA,OAAO,EAAE;AACPC,IAAAA,OAAO,EAAE,MADF;AAEPC,IAAAA,UAAU,EAAE,QAFL;AAGPhH,IAAAA,KAAK,EAAE,MAHA;AAIPiH,IAAAA,SAAS,EAAExE,KAAK,CAACyE,OAAN,CAAc,CAAd,CAJJ;AAKPC,IAAAA,cAAc,EAAE;AALT,GANqC;AAa9CC,EAAAA,YAAY,EAAE;AACZH,IAAAA,SAAS,EAAExE,KAAK,CAACyE,OAAN,CAAc,CAAd,CADC;AAEZG,IAAAA,WAAW,EAAE5E,KAAK,CAACyE,OAAN,CAAc,CAAd;AAFD;AAbgC,CAAnB,CAAD,CAA5B;;AAuBA,MAAMI,WAAW,GAAyB,CAAC;AACzChH,EAAAA,SAAS,EAATA,UAAS,GAAG,EAD6B;AAEzCiH,EAAAA,OAFyC;AAGzCC,EAAAA,YAHyC;AAIzC,KAAG/G;AAJsC,CAAD;AAMxC,QAAMC,OAAO,GAAGb,WAAS,EAAzB;AAEA,QAAM4H,eAAe,GACnB9G,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACoG;GAAxB,EAEI,CAAAU,YAAY,SAAZ,IAAAA,YAAY,WAAZ,YAAAA,YAAY,CAAE5B,OAAd,KAEEjF,4BAAA,MAAA;AACEL,IAAAA,SAAS,EAAEI,OAAO,CAAC0G;AACnBM,IAAAA,GAAG,EAAEF,YAAF,aAAEA,YAAF,uBAAEA,YAAY,CAAE5B;AACnB+B,IAAAA,GAAG,KAAKH,YAAH,aAAGA,YAAH,uBAAGA,YAAY,CAAE7B;GAHxB,CAJN,EAWG6B,YAXH,aAWGA,YAXH,uBAWGA,YAAY,CAAE7B,IAXjB,CADF;;AAgBA,QAAMiC,aAAa,GAAG;AACpB,QAAIL,OAAJ,EAAa;AACX,aAAOA,OAAO,EAAd;AACD;;AACD,WAAOM,MAAM,CAACC,IAAP,CAAY,gEAAZ,EAA8E,QAA9E,CAAP;AACD,GALD;;AAOA,SACEnH,4BAAA,CAACN,MAAD;AACEC,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD;AAC9BP,IAAAA,KAAK;AACLI,IAAAA,OAAO;AACP4H,IAAAA,OAAO,EAAC;AACRlE,IAAAA,KAAK,EAAC;AACN0D,IAAAA,OAAO,EAAEK;KACLnH,KAPN,EAUG,CAAC,CAAC+G,YAAF,IAAkBA,YAAY,CAAC/B,SAAb,KAA2BF,SAAS,CAACO,KAAvD,IAECnF,4BAAA,CAACqH,OAAD;AAASC,IAAAA,KAAK;AAACC,IAAAA,KAAK,EAAC;GAArB,EACGT,eADH,CAZJ,EAgBG,CAAC,CAACD,YAAF,IAAkBA,YAAY,CAAC/B,SAAb,KAA2BF,SAAS,CAACO,KAAvD,IACI2B,eAjBP,EAkBG,CAACD,YAAD,IAEC7G,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACoG;GAAxB,EACEnG,4BAAA,MAAA;AACEL,IAAAA,SAAS,EAAEI,OAAO,CAAC0G;AACnBM,IAAAA,GAAG,EAAE3B;AACL4B,IAAAA,GAAG,EAAC;GAHN,CADF,wBAAA,CApBJ,CADF;AAgCD,CA/DD;;AChCA,MAAMQ,IAAI,GAAkD,CAC1D;AAAER,EAAAA,GAAG,EAAHA,IAAG,GAAG,aAAR;AAAuB,KAAGlH;AAA1B,CAD0D,KAEvDE,4BAAA,MAAA;AAAK+G,EAAAA,GAAG,EAAEU;AAAeT,EAAAA,GAAG,EAAEA;GAASlH,KAAvC,CAFL;;ACMA,MAAM4H,UAAU,GAAkB,CAAC;AAAEV,EAAAA,GAAG,EAAHA,IAAG,GAAG,aAAR;AAAuB3D,EAAAA,MAAM,EAANA,OAAM,GAAG,MAAhC;AAAwC,KAAGvD;AAA3C,CAAD,KAChCE,4BAAA,MAAA;AACE+G,EAAAA,GAAG,EAAEU;AACLT,EAAAA,GAAG,EAAEA;AACL3D,EAAAA,MAAM,EAAEA;GACJvD,KAJN,CADF;;ACGA,MAAMZ,WAAS,GAAGC,UAAU,CAAE2C,KAAD,KAAmB;AAC9CkB,EAAAA,IAAI,EAAE;AACJV,IAAAA,aAAa,EAAE,MADX;AAEJY,IAAAA,KAAK,EAAE/C,MAAM,CAACQ,KAFV;AAGJiC,IAAAA,UAAU,EAAEd,KAAK,CAACK,UAAN,CAAiBK,iBAHzB;AAIJmF,IAAAA,QAAQ,EAAE7F,KAAK,CAACK,UAAN,CAAiByF,OAAjB,CAAyB,EAAzB,CAJN;AAKJlB,IAAAA,WAAW,EAAE5E,KAAK,CAACyE,OAAN,CAAc,CAAd,CALT;AAMJ,eAAW;AACTjD,MAAAA,OAAO,EAAE;AADA;AANP,GADwC;AAW9CuE,EAAAA,QAAQ,EAAE;AACRjF,IAAAA,UAAU,EAAEd,KAAK,CAACK,UAAN,CAAiBM,gBADrB;AAERqF,IAAAA,YAAY,EAAE;AAFN;AAXoC,CAAnB,CAAD,CAA5B;;AAiBA,MAAMC,YAAY,GAA2BlF,KAAD;AAC1C,QAAM9C,OAAO,GAAGb,WAAS,EAAzB;AACA,SAAOc,4BAAA,CAACgI,GAAD;AAAKjI,IAAAA,OAAO,EAAEA;AAASkI,IAAAA,SAAS,EAAEC;AAASC,IAAAA,aAAa;KAAKtF,MAA7D,CAAP;AACD,CAHD;;ACbA,MAAMuF,8BAA8B,GAAG,8BAAvC;AACA,MAAMC,+BAA+B,GAAG,8BAAxC;AACA,MAAMC,uBAAuB,GAAG,sCAAhC;AAEA,AAAA,IAAYC,aAAZ;;AAAA,WAAYA;AACVA,EAAAA,8CAAA,eAAA;AACAA,EAAAA,qDAAA,sBAAA;AACAA,EAAAA,mDAAA,oBAAA;AACD,CAJD,EAAYA,aAAa,KAAbA,aAAa,KAAA,CAAzB;;AAMA,MAAMC,gBAAgB,GAAG,CAACC,gBAAD,EAAmBC,iBAAnB;AACvB,MAAI,CAACD,gBAAL,EAAuB,OAAOF,aAAa,CAACI,UAArB;AAEvB,MAAIF,gBAAgB,KAAKC,iBAAzB,EAA4C,OAAOH,aAAa,CAACK,eAArB;AAC5C,SAAOL,aAAa,CAACM,iBAArB;AACD,CALD;;AAOA,MAAMC,gBAAgB,GAA8B,CAAC;AACnDC,EAAAA,aAAa,EAAbA,cAAa,GAAG,EADmC;AAEnDN,EAAAA,gBAFmD;AAEjCC,EAAAA,iBAFiC;AAEdM,EAAAA,uBAFc;AAGnDC,EAAAA,wBAHmD;AAGzBC,EAAAA;AAHyB,CAAD;AAKlD,QAAMC,aAAa,GAAGX,gBAAgB,CAACC,gBAAD,EAAmBC,iBAAnB,CAAtC;AAEA,QAAMU,oBAAoB,GAAG,IAAIC,GAAJ,EAA7B;AACAD,EAAAA,oBAAoB,CAACE,GAArB,CAAyBf,aAAa,CAACI,UAAvC,EACE3I,4BAAA,CAACqH,SAAD;AAASE,IAAAA,KAAK,EAAE2B,gBAAgB,IAAIZ;GAApC,EACEtI,4BAAA,CAACuJ,WAAD;AAAa5J,IAAAA,SAAS,EAAEoJ;AAAeS,IAAAA,KAAK,EAAE;AAAEtG,MAAAA,KAAK,EAAEuG,MAAM,CAAC,GAAD;AAAf;GAA9C,CADF,CADF;AAKAL,EAAAA,oBAAoB,CAACE,GAArB,CAAyBf,aAAa,CAACM,iBAAvC,EACE7I,4BAAA,CAACqH,SAAD;AAASE,IAAAA,KAAK,EAAE0B,wBAAwB,IAAIZ;GAA5C,EACErI,4BAAA,CAAC0J,SAAD;AAAW/J,IAAAA,SAAS,EAAEoJ;AAAe7F,IAAAA,KAAK,EAAC;GAA3C,CADF,CADF;AAKAkG,EAAAA,oBAAoB,CAACE,GAArB,CAAyBf,aAAa,CAACK,eAAvC,EACE5I,4BAAA,CAACqH,SAAD;AAASE,IAAAA,KAAK,EAAEyB,uBAAuB,IAAIZ;GAA3C,EACEpI,4BAAA,CAAC2J,8BAAD;AACEhK,IAAAA,SAAS,EAAEoJ;AACXS,IAAAA,KAAK,EAAE;AAAEtG,MAAAA,KAAK,EAAE0G,KAAK,CAAC,GAAD;AAAd;GAFT,CADF,CADF;AASA,SACER,oBAAoB,CAACS,GAArB,CAAyBV,aAAzB,CADF;AAGD,CA9BD;;AC1BA,MAAMjK,WAAS,GAAGC,UAAU,CAAE2C,KAAD,KAAmB;AAC9CgI,EAAAA,KAAK,EAAE;AACLC,IAAAA,eAAe,EAAEjI,KAAK,CAACE,OAAN,CAAcgI,UAAd,CAAyBF,KADrC;AAELG,IAAAA,MAAM,eAAe9J,MAAM,CAACE,SAFvB;AAGLd,IAAAA,SAAS,EAAEuC,KAAK,CAACoI,OAAN,CAAc,CAAd,CAHN;AAILC,IAAAA,IAAI,EAAE,KAJD;AAKLC,IAAAA,QAAQ,EAAE,GALL;AAMLnE,IAAAA,OAAO,EAAEnE,KAAK,CAACyE,OAAN,CAAc,CAAd,EAAiB,CAAjB,EAAoB,CAApB,CANJ;AAOL8D,IAAAA,QAAQ,EAAE,UAPL;AAQLC,IAAAA,GAAG,EAAE,KARA;AASLC,IAAAA,SAAS,EAAE;AATN;AADuC,CAAnB,CAAD,CAA5B;;AAcA,MAAMC,KAAK,GAAmB,CAAC;AAAE3K,EAAAA,QAAF;AAAY,KAAGC;AAAf,CAAD;AAC5B,QAAMC,OAAO,GAAGb,WAAS,EAAzB;AAEA,SACEc,4BAAA,CAACyK,OAAD,oBAAc3K,KAAd,EACEE,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAAC+J;GAAxB,EACGjK,QADH,CADF,CADF;AAOD,CAVD;;ACbA,MAAMX,WAAS,GAAGC,UAAU,CAAC,OAAO;AAClC6D,EAAAA,IAAI,EAAE;AACJ8E,IAAAA,YAAY,eAAe3H,MAAM,CAACK,OAD9B;AAEJ0C,IAAAA,KAAK,EAAE/C,MAAM,CAACE,OAFV;AAGJ+F,IAAAA,OAAO,EAAE,MAHL;AAIJI,IAAAA,cAAc,EAAE,QAJZ;AAKJnH,IAAAA,KAAK,EAAE;AALH;AAD4B,CAAP,CAAD,CAA5B;;AAUA,MAAMqL,WAAW,GAAyB,CAAC;AAAE7K,EAAAA,QAAF;AAAYF,EAAAA,SAAS,EAATA,UAAS,GAAG;AAAxB,CAAD;AACxC,QAAMI,OAAO,GAAGb,WAAS,EAAzB;AAEA,SACEc,4BAAA,MAAA;AAAKL,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD,YAAnB,CAA+BO,IAA/B;GAAhB,EACGL,QADH,CADF;AAKD,CARD;;ACXA,MAAM8K,UAAU,GAAwB,CAAC;AAAE9K,EAAAA,QAAF;AAAY,KAAGC;AAAf,CAAD,KACtCE,4BAAA,CAAC4K,UAAD;AAAYxD,EAAAA,OAAO,EAAC;GAAStH,KAA7B,EACGD,QADH,CADF;;ACCA,MAAMX,WAAS,GAAGC,UAAU,CAAE2C,KAAD,KAAmB;AAC9CkB,EAAAA,IAAI,EAAE;AACJ6H,IAAAA,SAAS,eAAe1K,MAAM,CAACK,OAD3B;AAEJ4F,IAAAA,OAAO,EAAE,MAFL;AAGJI,IAAAA,cAAc,EAAE,QAHZ;AAIJsE,IAAAA,UAAU,EAAEhJ,KAAK,CAACyE,OAAN,CAAc,CAAd,CAJR;AAKJlH,IAAAA,KAAK,EAAE;AALH;AADwC,CAAnB,CAAD,CAA5B;;AAUA,MAAM0L,WAAW,GAAyB,CAAC;AAAElL,EAAAA,QAAF;AAAYF,EAAAA,SAAS,EAATA,UAAS,GAAG;AAAxB,CAAD;AACxC,QAAMI,OAAO,GAAGb,WAAS,EAAzB;AAEA,SACEc,4BAAA,MAAA;AAAKL,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD,YAAnB,CAA+BO,IAA/B;GAAhB,EACGL,QADH,CADF;AAKD,CARD;;ACXA,MAAMX,WAAS,GAAGC,UAAU,CAAE2C,KAAD,KAAmB;AAC9CkB,EAAAA,IAAI,EAAE;AACJiD,IAAAA,OAAO,EAAEnE,KAAK,CAACyE,OAAN,CAAc,CAAd,EAAiB,CAAjB,CADL;AAEJlH,IAAAA,KAAK,EAAE;AAFH;AADwC,CAAnB,CAAD,CAA5B;;AAOA,MAAM2L,SAAS,GAAuB,CAAC;AAAEnL,EAAAA,QAAF;AAAYF,EAAAA,SAAS,EAATA,UAAS,GAAG;AAAxB,CAAD;AACpC,QAAMI,OAAO,GAAGb,WAAS,EAAzB;AAEA,SACEc,4BAAA,MAAA;AAAKL,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD,YAAnB,CAA+BO,IAA/B;GAAhB,EACGL,QADH,CADF;AAKD,CARD;;ACVA,MAAMX,WAAS,GAAGC,UAAU,CAAC,OAAO;AAClC,qBAAmB;AACjB,UAAM;AAAEoL,MAAAA,SAAS,EAAE;AAAb,KADW;AAEjB,YAAQ;AAAEA,MAAAA,SAAS,EAAE;AAAb;AAFS,GADe;AAKlCvH,EAAAA,IAAI,EAAE;AACJqH,IAAAA,QAAQ,EAAE;AADN,GAL4B;AAQlCY,EAAAA,OAAO,EAAE;AACPZ,IAAAA,QAAQ,EAAE,UADH;AAEPa,IAAAA,MAAM,EAAE,CAFD;AAGP7H,IAAAA,MAAM,EAAE,MAHD;AAIPhE,IAAAA,KAAK,EAAE,MAJA;AAKP+G,IAAAA,OAAO,EAAE,MALF;AAMPI,IAAAA,cAAc,EAAE,QANT;AAOPH,IAAAA,UAAU,EAAE,QAPL;AAQP2D,IAAAA,UAAU,EAAE;AARL,GARyB;AAkBlCmB,EAAAA,OAAO,EAAE;AACP/E,IAAAA,OAAO,EAAE,cADF;AAEP8E,IAAAA,MAAM,EAAE,CAFD;AAGP7L,IAAAA,KAAK,EAAE,MAHA;AAIPgE,IAAAA,MAAM,EAAE,MAJD;AAKP4G,IAAAA,MAAM,EAAE,MALD;AAMPmB,IAAAA,SAAS,EAAE;AANJ;AAlByB,CAAP,CAAD,CAA5B;;AA4BA,MAAMC,WAAW,GAAIC,gBAAD;AAClB,QAAMC,OAAO,GAAG,CAAC;AAAEC,IAAAA,SAAF;AAAa,OAAG3I;AAAhB,GAAD;AACd,UAAM9C,OAAO,GAAGb,WAAS,EAAzB;AAEA,WACEc,4BAAA,MAAA;AAAKL,MAAAA,SAAS,EAAEI,OAAO,CAACiD;KAAxB,EAEIwI,SAAS,IAEPxL,4BAAA,MAAA;AAAKL,MAAAA,SAAS,EAAEI,OAAO,CAACkL;KAAxB,EACEjL,4BAAA,MAAA;AAAKL,MAAAA,SAAS,EAAEI,OAAO,CAACoL;AAASpE,MAAAA,GAAG,EAAE0E;AAAczE,MAAAA,GAAG,EAAC;KAAxD,CADF,CAJN,EASEhH,4BAAA,CAACsL,gBAAD,oBAAsBzI,MAAtB,CATF,CADF;AAaD,GAhBD;;AAiBA,SAAO0I,OAAP;AACD,CAnBD;;AClBA,MAAMrM,WAAS,GAAGC,UAAU,CAAE2C,KAAD,IAAkB6B,cAAY,CAAC;AAC1DX,EAAAA,IAAI,EAAE;AACJzD,IAAAA,SAAS,EAAE,MADP;AAEJ2D,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KAFV;AAGJrB,IAAAA,KAAK,EAAE;AAHH,GADoD;AAM1DqM,EAAAA,OAAO,EAAE;AACPxI,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KADP;AAEPiH,IAAAA,QAAQ,EAAE7F,KAAK,CAACK,UAAN,CAAiByF,OAAjB,CAAyB,EAAzB,CAFH;AAGPhF,IAAAA,UAAU,EAAEd,KAAK,CAACK,UAAN,CAAiBK,iBAHtB;AAIPnD,IAAAA,KAAK,EAAE;AAJA,GANiD;AAY1DsM,EAAAA,gBAAgB,EAAE;AAChB7D,IAAAA,YAAY,eAAe3H,MAAM,CAACK;AADlB;AAZwC,CAAD,CAA/B,CAA5B;;AAiBA,MAAMoL,SAAS,GAAuB,CAAC;AACrC/L,EAAAA,QADqC;AAC3BgM,EAAAA,QAD2B;AACjBC,EAAAA,EADiB;AACbvE,EAAAA;AADa,CAAD;AAGpC,QAAMxH,OAAO,GAAGb,WAAS,EAAzB;AACA,QAAM,CAAC6M,UAAD,EAAaC,aAAb,IAA8B9H,QAAQ,CAAU,CAAC,CAAC2H,QAAZ,CAA5C;;AAEA,QAAMvH,QAAQ,GAAG,MAAY0H,aAAa,CAAC,CAACD,UAAF,CAA1C;;AAEA,SACE/L,4BAAA,CAACiM,WAAD;AACEtM,IAAAA,SAAS,EAAEI,OAAO,CAACiD;AACnB6I,IAAAA,QAAQ,EAAEE;AACVzH,IAAAA,QAAQ,EAAEA;GAHZ,EAKEtE,4BAAA,CAACkM,gBAAD;AACEvM,IAAAA,SAAS,EAAEI,OAAO,CAAC4L;AACnBQ,IAAAA,UAAU,EAAEnM,4BAAA,CAACoM,cAAD,MAAA;8BACYN;AACxBA,IAAAA,EAAE,EAAEA;GAJN,EAME9L,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,EAAEI,OAAO,CAAC2L;GAA/B,EAAyCnE,KAAzC,CANF,CALF,EAaEvH,4BAAA,CAACqM,gBAAD,MAAA,EACGxM,QADH,CAbF,CADF;AAmBD,CA3BD;;ACZA,MAAMyM,YAAY,GAA0B,CAAC;AAC3CC,EAAAA,WAD2C;AAE3CC,EAAAA,kBAF2C;AAG3CrF,EAAAA,IAH2C;AAI3CsF,EAAAA,OAJ2C;AAK3CC,EAAAA;AAL2C,CAAD,KAO1C1M,4BAAA,CAACwK,KAAD;AACErD,EAAAA,IAAI,EAAEA;AACNsF,EAAAA,OAAO,EAAEA;qBACO;sBACC;CAJnB,EAMEzM,4BAAA,CAACA,cAAK,CAAC2M,QAAP,MAAA,EACE3M,4BAAA,CAAC0K,WAAD,MAAA,EACE1K,4BAAA,CAAC2K,UAAD,MAAA,mCAAA,CADF,CADF,EAIE3K,4BAAA,CAACgL,SAAD,MAAA,EAEMwB,kBAAkB,IAAIA,kBAAkB,CAACI,MAAzC,IAAmDJ,kBAAkB,CAACK,GAAnB,CAChDhG,YAAD,IACE7G,4BAAA,CAAC2G,WAAD;AACEE,EAAAA,YAAY,EAAEA;AACdiG,EAAAA,GAAG,EAAEjG,YAAY,CAAC/B;AAClB8B,EAAAA,OAAO,EAAE;AACP,QAAI2F,WAAJ,EAAiB,MAAMA,WAAW,CAAC1F,YAAY,CAAC/B,SAAd,EAAyB4H,aAAzB,CAAjB;AAClB;CALH,CAF+C,CAFzD,EAcG,CAACF,kBAAD,IAIKxM,4BAAA,CAAC2G,WAAD,MAAA,CAlBR,CAJF,EAyBE3G,4BAAA,CAAC+K,WAAD,MAAA,EACE/K,4BAAA,CAACN,MAAD;AACE0H,EAAAA,OAAO,EAAC;AACRlE,EAAAA,KAAK,EAAC;AACN9D,EAAAA,KAAK;AACLwH,EAAAA,OAAO,EAAE6F;CAJX,SAAA,CADF,CAzBF,CANF,CAPF;;ACRA,MAAMvN,WAAS,GAAGC,UAAU,CAAC,OAAO;AAClC4N,EAAAA,YAAY,EAAE;AACZ3G,IAAAA,OAAO,EAAE,MADG;AAEZC,IAAAA,UAAU,EAAE;AAFA;AADoB,CAAP,CAAD,CAA5B;;AAOA,MAAM2G,eAAe,GAA6B,CAAC;AAAEC,EAAAA,cAAF;AAAkBC,EAAAA;AAAlB,CAAD;AAChD,QAAM,CAACC,QAAD,EAAWC,WAAX,IAA0BlJ,QAAQ,CAAC,KAAD,CAAxC;AAEA,QAAMnE,OAAO,GAAGb,WAAS,EAAzB;AAEA,QAAMmO,cAAc,GAClBrN,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACgN;GAAxB,EACE/M,4BAAA,CAACsN,YAAD,MAAA,CADF,EAEEtN,4BAAA,CAAC4K,UAAD;AAAYxD,IAAAA,OAAO,EAAC;GAApB,EACG8F,QADH,CAFF,CADF;AASA,SACElN,4BAAA,CAACqH,SAAD;AACEkG,IAAAA,WAAW;AACXhG,IAAAA,KAAK,EAAE4F,QAAQ,GAAGnN,4BAAA,CAAC4K,UAAD;AAAYxD,MAAAA,OAAO,EAAC;KAApB,WAAA,CAAH,GAAsDiG;AACrEzG,IAAAA,OAAO,EAAE;AACP4G,MAAAA,SAAS,CAACC,SAAV,CAAoBC,SAApB,CAA8BR,QAA9B,EACGS,IADH,CACQ;AAAQP,QAAAA,WAAW,CAAC,IAAD,CAAX;AAAmB,OADnC;AAED;AACDX,IAAAA,OAAO,EAAE;AACPW,MAAAA,WAAW,CAAC,KAAD,CAAX;AACD;GATH,EAWGH,cAXH,CADF;AAeD,CA7BD;;ACDA,MAAM/N,WAAS,GAAGC,UAAU,CAAE2C,KAAD,KAAmB;AAC9CkB,EAAAA,IAAI,EAAE;AACJzD,IAAAA,SAAS,EAAE,MADP;AAEJ2D,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KAFV;AAGJrB,IAAAA,KAAK,EAAE;AAHH,GADwC;AAM9CqM,EAAAA,OAAO,EAAE;AACPtF,IAAAA,OAAO,EAAE,MADF;AAEPI,IAAAA,cAAc,EAAE,QAFT;AAGPtD,IAAAA,KAAK,EAAE/C,MAAM,CAACQ,KAHP;AAIPgH,IAAAA,QAAQ,EAAE5G,KAAK,CAACE,IAAN,CAAWK,aAJd;AAKPjC,IAAAA,KAAK,EAAE;AALA,GANqC;AAa9CuO,EAAAA,eAAe,EAAE;AACf1K,IAAAA,KAAK,EAAE/C,MAAM,CAACE;AADC,GAb6B;AAgB9CwN,EAAAA,gBAAgB,EAAE;AAChBjL,IAAAA,UAAU,EAAE7B,KAAK,CAACS,MAAN,CAAaE;AADT,GAhB4B;AAmB9CoM,EAAAA,YAAY,EAAE;AACZ1H,IAAAA,OAAO,EAAE,MADG;AAEZI,IAAAA,cAAc,EAAE;AAFJ,GAnBgC;AAuB9CuH,EAAAA,eAAe,EAAE;AACf,KAACjM,KAAK,CAACkM,WAAN,CAAkBC,EAAlB,CAAqB,IAArB,CAAD,GAA8B;AAC5BC,MAAAA,QAAQ,EAAE;AADkB;AADf,GAvB6B;AA4B9CC,EAAAA,UAAU,EAAE;AACVjL,IAAAA,KAAK,EAAE/C,MAAM,CAACQ;AADJ;AA5BkC,CAAnB,CAAD,CAA5B;;AAiCA,MAAMyN,UAAU,GAAwB,CAAC;AACvCzO,EAAAA,SAAS,EAATA,UAAS,GAAG,EAD2B;AACvB0O,EAAAA,iBADuB;AACJC,EAAAA,QADI;AACMC,EAAAA;AADN,CAAD;AAGtC,QAAMxO,OAAO,GAAGb,WAAS,EAAzB;AACA,QAAM,CAAC6M,UAAD,EAAaC,aAAb,IAA8B9H,QAAQ,CAAC,CAAC,CAACmK,iBAAH,CAA5C;;AAEA,QAAM/J,QAAQ,GAAG,MAAY0H,aAAa,CAAC,CAACD,UAAF,CAA1C;;AAEA,SACE/L,4BAAA,CAAC4L,WAAD;AAAWjM,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD,YAAnB,CAA+BO,IAA/B;AAAuC2L,IAAAA,QAAQ,EAAEE;AAAYzH,IAAAA,QAAQ,EAAEA;GAA7F,EACEtE,4BAAA,CAACkM,gBAAD;AACEC,IAAAA,UAAU,EAAEJ,UAAU,GAAG/L,4BAAA,CAACwO,UAAD,MAAA,CAAH,GAAoBxO,4BAAA,CAACyO,OAAD,MAAA;GAD5C,EAGEzO,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,KAAKI,OAAO,CAAC2L,WAAWK,UAAU,GAAGhM,OAAO,CAAC6N,eAAX,GAA6B7N,OAAO,CAAC8N,kBAArE,CAAwF3N,IAAxF;GAAvB,EAAwHoO,QAAxH,CAHF,CADF,EAMEtO,4BAAA,CAACqM,gBAAD;AAAkB1M,IAAAA,SAAS,EAAEI,OAAO,CAAC+N;GAArC,EACE9N,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACgO;GAAxB,EACE/N,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,EAAEI,OAAO,CAACoO;GAA/B,EAA4CI,MAA5C,CADF,CADF,CANF,CADF;AAcD,CAtBD;;ACvCA,MAAMrP,WAAS,GAAGC,UAAU,CAAC,OAAO;AAClC6D,EAAAA,IAAI,EAAE;AACJE,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KADV;AAEJrB,IAAAA,KAAK,EAAE;AAFH;AAD4B,CAAP,CAAD,CAA5B;;AAOA,MAAMqP,eAAe,GAA6B,CAAC;AAAEC,EAAAA,SAAF;AAAaC,EAAAA,cAAc,EAAdA,eAAc,GAAG,EAA9B;AAAkC,KAAG9O;AAArC,CAAD;AAChD,QAAMC,OAAO,GAAGb,WAAS,EAAzB;AACA,SACEc,4BAAA,CAAC6O,gBAAD;AACElP,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQ4L,eAAc,CAAC1O,IAAf;AAC9B4O,IAAAA,KAAK,EAAEH;AACPI,IAAAA,OAAO,EACL/O,4BAAA,CAAC8D,QAAD,oBAAchE,KAAd;GAJJ,CADF;AAUD,CAZD;;ACTA,MAAMkP,kBAAkB,GAAgC,CAAC;AAAErP,EAAAA,SAAS,EAATA,UAAS,GAAG,EAAd;AAAkBiH,EAAAA,OAAlB;AAA2BqI,EAAAA;AAA3B,CAAD,KACtDjP,4BAAA,MAAA;AAAKL,EAAAA,SAAS,EAAEA;CAAhB,EACGsP,KAAK,CAACpC,GAAN,CAAU,CAACqC,IAAD,EAA6BC,CAA7B,KACTnP,4BAAA,CAAC0O,eAAD;AACE9H,EAAAA,OAAO,EAAEA;AACTkG,EAAAA,GAAG,qBAAqBoC,IAAI,CAACpD,IAAxB,uBAAmDqD,KAAKxP,YAAxB,CAAoCO,IAApC;AACrC0O,EAAAA,cAAc,EAAEM,IAAI,CAACN;GACjBM,KAJN,CADD,CADH,CADF;;MCTME,aAAa,GAAG,CACpBC,GADoB,EAEpBC,UAAU,GAAG,EAFO,EAGpBC,eAAe,GAAG,CAHE,KAIRF,GAAG,CAACzC,MAAJ,GAAa0C,UAAb,MACPD,GAAG,CAACG,MAAJ,CAAW,CAAX,EAAcD,eAAd,OAAoCF,GAAG,CAACG,MAAJ,CAAWH,GAAG,CAACzC,MAAJ,GAAa,CAAxB,GAD7B,GAEVyC,GANJ;;AAQA,MAAMI,iBAAiB,GAAIJ,GAAD,IAAyBA,GAAG,CAACK,OAAJ,CAAY,KAAZ,EAAmB,EAAnB,CAAnD;;AAEA,MAAMC,kBAAkB,GAAG,cAA3B;AACA,MAAMC,kBAAkB,GAAG,QAA3B;;AAEA,MAAMC,eAAe,GAAIC,GAAD;AACtB,MAAIA,GAAG,GAAG,CAAV,EAAa;AACX,QAAIA,GAAG,GAAGH,kBAAV,EAA8B,OAAOA,kBAAP;AAE9B,QAAIG,GAAG,GAAGF,kBAAV,EAA8B,OAAOA,kBAAP;AAC/B;;AAED,MAAIE,GAAG,GAAG,CAAV,EAAa;AACX,QAAIA,GAAG,GAAG,CAACH,kBAAX,EAA+B,OAAO,CAACA,kBAAR;AAE/B,QAAIG,GAAG,GAAG,CAACF,kBAAX,EAA+B,OAAO,CAACA,kBAAR;AAChC;;AACD,SAAOE,GAAP;AACD,CAbD;;ACKA,MAAM5Q,WAAS,GAAGC,UAAU,CAAC,OAAO;AAClC6D,EAAAA,IAAI,EAAE;AACJqD,IAAAA,UAAU,EAAE,QADR;AAEJD,IAAAA,OAAO,EAAE,MAFL;AAGJ2J,IAAAA,aAAa,EAAE;AAHX,GAD4B;AAMlCC,EAAAA,UAAU,EAAE;AACV9M,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KADJ;AAEVkC,IAAAA,UAAU,EAAE7B,KAAK,CAACS,MAAN,CAAaC,KAFf;AAGVwO,IAAAA,cAAc,EAAE,MAHN;AAIV,eAAW;AACTrN,MAAAA,UAAU,EAAE7B,KAAK,CAACS,MAAN,CAAaE;AADhB;AAJD,GANsB;AAclCwO,EAAAA,WAAW,EAAE;AACXvI,IAAAA,QAAQ,EAAE5G,KAAK,CAACE,IAAN,CAAWM,WADV;AAEX4O,IAAAA,SAAS,EAAE;AAFA;AAdqB,CAAP,CAAD,CAA5B;;AAoBA,MAAMC,YAAY,GAA0B,CAAC;AAAE7I,EAAAA,KAAF;AAAS8I,EAAAA,KAAT;AAAgB1Q,EAAAA,SAAS,EAATA,UAAS,GAAG;AAA5B,CAAD;AAC1C,QAAMI,OAAO,GAAGb,WAAS,EAAzB;AAEA,SACEc,4BAAA,MAAA;AAAKL,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD,YAAnB,CAA+BO,IAA/B;GAAhB,EACEF,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,EAAEI,OAAO,CAACmQ;AAAa9I,IAAAA,OAAO,EAAC;AAAYlE,IAAAA,KAAK,EAAC;GAAtE,EAAiFqE,KAAjF,CADF,EAGI8I,KAAK,CAACxD,GAAN,CAAWyD,IAAD;AACR,UAAMxD,GAAG,GAAG2C,iBAAiB,CAACa,IAAI,CAAC/I,KAAN,CAA7B;;AAEA,QAAI+I,IAAI,CAACC,UAAT,EAAqB;AACnB,YAAMC,IAAI,GAAG,CAACF,IAAI,CAACG,EAAL,IAAW,GAAZ,EAAiBC,QAAjB,EAAb;AACA,aACE1Q,4BAAA,IAAA;AACEL,QAAAA,SAAS,EAAEI,OAAO,CAACiQ;AACnBW,QAAAA,MAAM,EAAEL,IAAI,CAACK;AACbzN,QAAAA,KAAK,EAAC;AACN4J,QAAAA,GAAG,EAAEA;AACL0D,QAAAA,IAAI,EAAEA;OALR,EAOGF,IAAI,CAAC/I,KAPR,CADF;AAWD;;AACD,WACEvH,4BAAA,CAACkI,OAAD;AACEvI,MAAAA,SAAS,EAAEI,OAAO,CAACiQ;AACnBW,MAAAA,MAAM,EAAEL,IAAI,CAACK;AACbzN,MAAAA,KAAK,EAAC;AACN4J,MAAAA,GAAG,EAAEA;AACL2D,MAAAA,EAAE,EAAEH,IAAI,CAACG;KALX,EAOGH,IAAI,CAAC/I,KAPR,CADF;AAWD,GA5BD,CAHJ,CADF;AAoCD,CAvCD;;ACvBA,MAAMqJ,aAAa,GAA2B,CAAC;AAC7CrJ,EAAAA,KAD6C;AAE7CsJ,EAAAA,MAF6C;AAG7ChR,EAAAA,QAH6C;AAI7C,KAAGgD;AAJ0C,CAAD,KAM5C7C,4BAAA,CAACwK,KAAD,oBAAW3H,MAAX,EACE7C,4BAAA,CAACA,cAAK,CAAC2M,QAAP,MAAA,EACE3M,4BAAA,CAAC0K,WAAD,MAAA,EACE1K,4BAAA,CAAC2K,UAAD,MAAA,EAAapD,KAAb,CADF,CADF,EAIEvH,4BAAA,CAACgL,SAAD,MAAA,EAAYnL,QAAZ,CAJF,EAKEG,4BAAA,CAAC+K,WAAD,MAAA,EAAc8F,MAAd,CALF,CADF,CANF;;ACCA,MAAM3R,WAAS,GAAGC,UAAU,CAAE2C,KAAD,KAAmB;AAC9CkB,EAAAA,IAAI,EAAE;AACJE,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KADV;AAEJ0F,IAAAA,OAAO,EAAE;AAFL,GADwC;AAK9C0K,EAAAA,KAAK,EAAE;AACL5N,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KADT;AAELqQ,IAAAA,WAAW,EAAEjP,KAAK,CAACyE,OAAN,CAAc,GAAd,CAFR;AAGL4J,IAAAA,SAAS,EAAE,QAHN;AAIL,iBAAa;AACXrI,MAAAA,YAAY,eAAe3H,MAAM,CAACO;AADvB;AAJR,GALuC;AAa9CsQ,EAAAA,cAAc,EAAE;AACdC,IAAAA,YAAY,EAAE;AADA,GAb8B;AAgB9CC,EAAAA,KAAK,EAAE;AACLhO,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KADT;AAEL0F,IAAAA,OAAO,EAAE,MAFJ;AAGLuB,IAAAA,QAAQ,EAAE5G,KAAK,CAACE,IAAN,CAAWC;AAHhB,GAhBuC;AAqB9CiQ,EAAAA,cAAc,EAAE;AACdC,IAAAA,SAAS,EAAE,QADG;AAEdlO,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KAFA;AAGd0F,IAAAA,OAAO,EAAE,MAHK;AAIduB,IAAAA,QAAQ,EAAE5G,KAAK,CAACE,IAAN,CAAWG,MAJP;AAKd2P,IAAAA,WAAW,EAAE;AALC;AArB8B,CAAnB,CAAD,CAA5B;;AA8BA,MAAMM,UAAU,GAAwB,CAAC;AACvCC,EAAAA,QADuC;AAEvCC,EAAAA,QAFuC;AAGvCL,EAAAA,KAHuC;AAIvCM,EAAAA,KAJuC;AAKvCC,EAAAA,IAAI,EAAJA,KAAI,GAAG,CALgC;AAMvCC,EAAAA,YANuC;AAOvCC,EAAAA,cAPuC;AAQvC,KAAG7R;AARoC,CAAD;AAUtC,QAAMC,OAAO,GAAGb,WAAS,EAAzB;AAEA,SACEc,4BAAA,CAACA,cAAK,CAAC2M,QAAP,MAAA,EACE3M,4BAAA,CAAC4R,IAAD;AAAMjS,IAAAA,SAAS,EAAEI,OAAO,CAACiD;AAAM6O,IAAAA,SAAS;AAACtL,IAAAA,OAAO,EAAE;GAAlD,EACEvG,4BAAA,CAAC4R,IAAD;AAAMjS,IAAAA,SAAS,EAAEI,OAAO,CAACiR;AAAgB9B,IAAAA,IAAI;AAAC4C,IAAAA,EAAE,EAAE;GAAlD,EACE9R,4BAAA,CAAC+R,KAAD;AACEpS,IAAAA,SAAS,EAAEI,OAAO,CAAC+Q;AACnB/Q,IAAAA,OAAO,EAAE;AAAE+Q,MAAAA,KAAK,EAAE/Q,OAAO,CAAC+Q;AAAjB;AACTU,IAAAA,KAAK,EAAEA;AACPlN,IAAAA,QAAQ,EAAEqN;AACVK,IAAAA,MAAM,EAAEN;AACRO,IAAAA,IAAI,EAAC;AACLC,IAAAA,SAAS;AACTC,IAAAA,UAAU,EAAE;AACVV,MAAAA,IAAI,EAAJA,KADU;AAEVW,MAAAA,GAAG,EAAEb,QAFK;AAGVc,MAAAA,GAAG,EAAEf,QAHK;AAIV,yBAAmB;AAJT;KAMRxR,KAdN,CADF,CADF,EAmBEE,4BAAA,CAAC4R,IAAD;AAAM1C,IAAAA,IAAI;AAAC4C,IAAAA,EAAE,EAAE;AAAGnS,IAAAA,SAAS,EAAEI,OAAO,CAACoR;GAArC,EACEnR,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,EAAEI,OAAO,CAACmR;GAA/B,EACGA,KADH,CADF,CAnBF,CADF,CADF;AA6BD,CAzCD;;AC5BA,MAAMhS,WAAS,GAAGC,UAAU,CAAC,OAAO;AAClC6D,EAAAA,IAAI,EAAE;AACJ3D,IAAAA,KAAK,EAAE;AADH,GAD4B;AAIlCiT,EAAAA,eAAe,EAAE;AACflB,IAAAA,SAAS,EAAE,QADI;AAEfhL,IAAAA,OAAO,EAAE,MAFM;AAGfI,IAAAA,cAAc,EAAE,eAHD;AAIfnH,IAAAA,KAAK,EAAE;AAJQ,GAJiB;AAUlCkT,EAAAA,WAAW,EAAE;AACXnB,IAAAA,SAAS,EAAE,QADA;AAEXhL,IAAAA,OAAO,EAAE,MAFE;AAGXI,IAAAA,cAAc,EAAE,QAHL;AAIXnH,IAAAA,KAAK,EAAE,MAJI;AAKXuD,IAAAA,UAAU,EAAE7B,KAAK,CAACS,MAAN,CAAaE;AALd;AAVqB,CAAP,CAAD,CAA5B;;AAmBA,MAAM8Q,qBAAqB,GAAmC,CAAC;AAC7DC,EAAAA,MAAM,EAAE;AACNC,IAAAA,KAAK,EAAEC,UADD;AACaC,IAAAA,GAAG,EAAEC;AADlB,GADqD;AAG1DC,EAAAA,IAH0D;AAGpD3O,EAAAA,YAHoD;AAGtCxE,EAAAA,SAHsC;AAG3B,KAAGG;AAHwB,CAAD;AAK5D,QAAMC,OAAO,GAAGb,WAAS,EAAzB;AAEA,QAAMoS,QAAQ,GAAGxR,IAAI,CAACuS,GAAL,IAAYQ,QAA7B;AACA,QAAMtB,QAAQ,GAAGzR,IAAI,CAACsS,GAAL,IAAYO,UAA7B;AACA,QAAMlB,IAAI,GAAG3R,IAAI,CAAC2R,IAAL,IAAa,CAA1B;;AAEA,QAAMsB,sBAAsB,GAC1B3O,KAD6B;AAG7B,UAAM4O,aAAa,GAAGnD,eAAe,CAACoD,MAAM,CAAC7O,KAAK,CAACuM,MAAN,CAAaa,KAAd,CAAP,CAAf,IAA+CD,QAArE;AACApN,IAAAA,YAAY,CAAC;AAAEiO,MAAAA,GAAG,EAAEY,aAAP;AAAsBX,MAAAA,GAAG,EAAEQ;AAA3B,KAAD,CAAZ;AACD,GALD;;AAOA,QAAMK,oBAAoB,GACxB9O,KAD2B;AAG3B,UAAM+O,WAAW,GAAGtD,eAAe,CAACoD,MAAM,CAAC7O,KAAK,CAACuM,MAAN,CAAaa,KAAd,CAAP,CAAf,IAA+CqB,QAAnE;AACA1O,IAAAA,YAAY,CAAC;AAAEiO,MAAAA,GAAG,EAAEO,UAAP;AAAmBN,MAAAA,GAAG,EAAEc;AAAxB,KAAD,CAAZ;AACD,GALD;;AAOA,QAAMC,kBAAkB,GAAG,CACzBC,CADyB,EACCC,cADD;AAGzBnP,IAAAA,YAAY,CAAC;AAAEiO,MAAAA,GAAG,EAAEkB,cAAc,CAAC,CAAD,CAArB;AAA0BjB,MAAAA,GAAG,EAAEiB,cAAc,CAAC,CAAD;AAA7C,KAAD,CAAZ;AACD,GAJD;;AAMA,QAAMC,oBAAoB,GAAG;AAC3B,QAAIZ,UAAU,GAAGpB,QAAjB,EAA2B;AACzBpN,MAAAA,YAAY,CAAC;AAAEiO,QAAAA,GAAG,EAAEb,QAAP;AAAiBc,QAAAA,GAAG,EAAEQ;AAAtB,OAAD,CAAZ;AACD,KAFD,MAEO,IAAIF,UAAU,GAAGE,QAAjB,EAA2B;AAChC1O,MAAAA,YAAY,CAAC;AAAEiO,QAAAA,GAAG,EAAES,QAAP;AAAiBR,QAAAA,GAAG,EAAEQ;AAAtB,OAAD,CAAZ;AACD;AACF,GAND;;AAQA,QAAMW,kBAAkB,GAAG;AACzB,QAAIX,QAAQ,GAAGF,UAAf,EAA2B;AACzBxO,MAAAA,YAAY,CAAC;AAAEiO,QAAAA,GAAG,EAAEb,QAAP;AAAiBc,QAAAA,GAAG,EAAEM;AAAtB,OAAD,CAAZ;AACD,KAFD,MAEO,IAAIE,QAAQ,GAAGvB,QAAf,EAAyB;AAC9BnN,MAAAA,YAAY,CAAC;AAAEiO,QAAAA,GAAG,EAAEb,QAAP;AAAiBc,QAAAA,GAAG,EAAEf;AAAtB,OAAD,CAAZ;AACD;AACF,GAND;;AAQA,QAAMmC,oBAAoB,GAAG,OAAW;AACtCnC,IAAAA,QADsC;AAEtCC,IAAAA,QAFsC;AAGtCE,IAAAA,IAHsC;AAItCP,IAAAA,KAAK,EAAE4B;AAJ+B,GAAX,CAA7B;;AAOA,SACE9S,4BAAA,MAAA;AAAKL,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD,WAAnB,CAA+BO,IAA/B;GAAhB,EACEF,4BAAA,CAAC0T,MAAD;AACElC,IAAAA,KAAK,EAAE,CAACmB,UAAD,EAAaE,QAAb;KACH/S;AACJwE,IAAAA,QAAQ,EAAE8O;IAHZ,CADF,EAMEpT,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACuS;GAAxB,EACEtS,4BAAA,CAACqR,UAAD;AACEK,IAAAA,YAAY,EAAE6B;AACd5B,IAAAA,cAAc,EAAEoB;KACZU,oBAAoB;AACxBjC,IAAAA,KAAK,EAAEmB;IAJT,CADF,EAOE3S,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,EAAEI,OAAO,CAACwS;GAA/B,MAAA,CAPF,EAUEvS,4BAAA,CAACqR,UAAD;AACEK,IAAAA,YAAY,EAAE8B;AACd7B,IAAAA,cAAc,EAAEuB;KACZO,oBAAoB;AACxBjC,IAAAA,KAAK,EAAEqB;IAJT,CAVF,CANF,CADF;AA0BD,CAhFD;;AC1BA,MAAMc,kBAAkB,GAAgC,CAAC;AAAEnC,EAAAA,KAAF;AAASoC,EAAAA,SAAS,EAATA,UAAS,GAAG,EAArB;AAAyBrE,EAAAA;AAAzB,CAAD,KACtDvP,4BAAA,CAACA,cAAK,CAAC2M,QAAP,MAAA,EAEI6E,KAAK,CAAC5E,MAAN,GAAegH,UAAf,IAEE5T,4BAAA,CAACgN,eAAD;AACEC,EAAAA,cAAc,EAAEjN,4BAAA,CAAC4K,UAAD;AAAYxD,IAAAA,OAAO,EAAC;GAApB,EAA6BgI,aAAa,CAACoC,KAAD,EAAQoC,UAAR,EAAmBrE,eAAe,IAAIqE,UAAS,GAAG,CAAlD,CAA1C;AAChB1G,EAAAA,QAAQ,EAAEsE;CAFZ,CAJN,EAWIA,KAAK,CAAC5E,MAAN,IAAgBgH,UAAhB,IACGpC,KAZP,CADF;;ACDA,MAAMtS,WAAS,GAAGC,UAAU,CAAC;AAC3B0U,EAAAA,SAAS,EAAE;AACTzN,IAAAA,OAAO,EAAE,MADA;AAETI,IAAAA,cAAc,EAAE,QAFP;AAGTuD,IAAAA,eAAe,EAAE;AAHR,GADgB;AAM3B/G,EAAAA,IAAI,EAAE;AACJ8E,IAAAA,YAAY,eAAe3H,MAAM,CAACM;AAD9B;AANqB,CAAD,CAA5B;;AAWA,MAAMqT,UAAU,GAAmBjR,KAAD;AAChC,QAAM;AAAEhD,IAAAA;AAAF,MAAegD,KAArB;AACA,QAAM9C,OAAO,GAAGb,WAAS,EAAzB;AACA,SACEc,4BAAA,CAAC+T,IAAD;AAAMhU,IAAAA,OAAO,EAAEA;KAAa8C,MAA5B,EACGhD,QADH,CADF;AAKD,CARD;;ACTA,MAAMmU,SAAS,GAAIC,KAAD,KAAwB;AACxCnI,EAAAA,EAAE,oBAAoBmI,OADkB;AAExC,0CAAwCA;AAFA,CAAxB,CAAlB;;AAKA,MAAM/U,WAAS,GAAGC,UAAU,CAAC,OAAO;AAClC6D,EAAAA,IAAI,EAAE;AACJ+G,IAAAA,eAAe,EAAE5J,MAAM,CAACW,KADpB;AAEJoT,IAAAA,SAAS,EAAE,EAFP;AAGJ7U,IAAAA,KAAK,EAAE,MAHH;AAIJ4K,IAAAA,MAAM,KAAK9J,MAAM,CAACE,mBAJd;AAKJZ,IAAAA,YAAY,EAAE,EALV;AAMJ0U,IAAAA,QAAQ,EAAE;AANN,GAD4B;AASlCC,EAAAA,YAAY,EAAE;AACZF,IAAAA,SAAS,EAAE,EADC;AAEZ7U,IAAAA,KAAK,EAAE;AAFK,GAToB;AAalCgV,EAAAA,GAAG,EAAE;AACH,eAAW;AACTnR,MAAAA,KAAK,EAAE/C,MAAM,CAACE;AADL,KADR;AAIHZ,IAAAA,YAAY,EAAE,EAJX;AAKHyD,IAAAA,KAAK,EAAE/C,MAAM,CAACM,KALX;AAMHmC,IAAAA,UAAU,EAAE7B,KAAK,CAACS,MAAN,CAAaC,KANtB;AAOHyM,IAAAA,QAAQ,EAAE,KAPP;AAQHgG,IAAAA,SAAS,EAAE,MARR;AASH9J,IAAAA,QAAQ,EAAE,KATP;AAUHkK,IAAAA,YAAY,EAAE,MAVX;AAWHrO,IAAAA,OAAO,EAAE,CAXN;AAYH3D,IAAAA,aAAa,EAAE,YAZZ;AAaH4I,IAAAA,MAAM,EAAE,CAbL;AAcH,eAAW;AACToJ,MAAAA,YAAY,EAAE;AADL;AAdR,GAb6B;AAgClCC,EAAAA,YAAY,EAAE;AACZxK,IAAAA,eAAe,EAAE5J,MAAM,CAACE,OADZ;AAEZZ,IAAAA,YAAY,EAAE,EAFF;AAGZ4D,IAAAA,MAAM,EAAE;AAHI,GAhCoB;AAqClCmR,EAAAA,WAAW,EAAE;AAEXzK,IAAAA,eAAe,KAAK5J,MAAM,CAACE,oBAFhB;AAGX6C,IAAAA,KAAK,KAAK/C,MAAM,CAACW;AAHN;AArCqB,CAAP,CAAD,CAA5B;;AA4CA,MAAM2T,UAAU,GAAwB,CAAC;AACvCC,EAAAA,MADuC;AAC/BC,EAAAA,MAD+B;AACvBnD,EAAAA,KAAK,EAAEoD,eADgB;AACCtQ,EAAAA;AADD,CAAD;AAGtC,QAAMvE,OAAO,GAAGb,WAAS,EAAzB;;AAEA,QAAMiF,YAAY,GAAG,CACnBC,KADmB,EACWyQ,QADX;AAGnBvQ,IAAAA,QAAQ,CAACF,KAAD,EAAQyQ,QAAR,CAAR;AACD,GAJD;;AAMA,SACE7U,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACiD;GAAxB,EACEhD,4BAAA,CAAC8U,MAAD;kBACa;AACXnV,IAAAA,SAAS,EAAEI,OAAO,CAACqU;AACnB9P,IAAAA,QAAQ,EAAEH;AACV4Q,IAAAA,iBAAiB,EAAE;AACjBpV,MAAAA,SAAS,EAAEI,OAAO,CAACwU;AADF;AAGnB/C,IAAAA,KAAK,EAAEoD;AACPxN,IAAAA,OAAO,EAAC;GARV,EAUEpH,4BAAA,CAACgV,KAAD,oBACMhB,SAAS,CAAC,CAAD;AACbjU,IAAAA,OAAO,EAAE;AAAE8H,MAAAA,QAAQ,EAAE9H,OAAO,CAACyU;AAApB;AACT7U,IAAAA,SAAS,EAAEI,OAAO,CAACsU;AACnBvF,IAAAA,KAAK,EAAE4F;IAJT,CAVF,EAgBE1U,4BAAA,CAACgV,KAAD,oBACMhB,SAAS,CAAC,CAAD;AACbjU,IAAAA,OAAO,EAAE;AAAE8H,MAAAA,QAAQ,EAAE9H,OAAO,CAACyU;AAApB;AACT7U,IAAAA,SAAS,EAAEI,OAAO,CAACsU;AACnBvF,IAAAA,KAAK,EAAE6F;IAJT,CAhBF,CADF,CADF;AA2BD,CAtCD;;ACnDA,MAAMM,iBAAiB,GAA+B,CAAC;AACrDlI,EAAAA,YADqD;AAErDmI,EAAAA,eAFqD;AAGrDzQ,EAAAA;AAHqD,CAAD,KAKpDzE,4BAAA,CAACqH,SAAD;AAASE,EAAAA,KAAK,EAAEwF;CAAhB,EACE/M,4BAAA,OAAA,MAAA,EACEA,4BAAA,CAACmV,UAAD;AAAYjS,EAAAA,KAAK,EAAC;GAAcgS,gBAAhC,EACGzQ,IADH,CADF,CADF,CALF;;ACMA,MAAMvF,WAAS,GAAGC,UAAU,CAAE2C,KAAD,KAAmB;AAC9CsT,EAAAA,YAAY,EAAE;AACZnL,IAAAA,MAAM,eAAe9J,MAAM,CAACE,SADhB;AAEZ4F,IAAAA,OAAO,EAAEnE,KAAK,CAACyE,OAAN,CAAc,CAAd,CAFG;AAGZ8O,IAAAA,SAAS,EAAEvT,KAAK,CAACyE,OAAN,CAAc,CAAd;AAHC,GADgC;AAM9C+O,EAAAA,eAAe,EAAE;AACflP,IAAAA,OAAO,EAAE,MADM;AAEfI,IAAAA,cAAc,EAAE;AAFD;AAN6B,CAAnB,CAAD,CAA5B;;AAYA,MAAM+O,iBAAiB,GAA+B,CAAC;AACrDpO,EAAAA,IADqD;AAC/CqO,EAAAA,kBAAkB,EAAlBA,mBAAkB,GAAG,iBAD0B;AACPC,EAAAA,mBADO;AACchJ,EAAAA;AADd,CAAD;AAGpD,QAAM1M,OAAO,GAAGb,WAAS,EAAzB;AACA,SACEc,4BAAA,CAAC4Q,aAAD;AACErJ,IAAAA,KAAK,mBAAmBkO;AACxBtO,IAAAA,IAAI,EAAEA;AACNsF,IAAAA,OAAO,EAAEA;GAHX,EAKEzM,4BAAA,CAACA,cAAK,CAAC2M,QAAP,MAAA,EACE3M,4BAAA,CAAC4K,UAAD;AAAY8K,IAAAA,YAAY;AAACC,IAAAA,KAAK,EAAC;AAASzS,IAAAA,KAAK,EAAC;AAAY+E,IAAAA,SAAS,EAAC;GAApE,+BAAA,EAEG,GAFH,EAGGwN,mBAHH,0BAAA,EAMG,GANH,EAOEzV,4BAAA,CAAC4V,GAAD;AAAKxP,IAAAA,OAAO,EAAC;AAASxD,IAAAA,UAAU,EAAC;GAAjC,EAAqD4S,mBAArD,CAPF,KAAA,CADF,EAWExV,4BAAA,CAAC4R,IAAD;AACEC,IAAAA,SAAS;AACTlS,IAAAA,SAAS,EAAEI,OAAO,CAACqV;AACnB/O,IAAAA,UAAU,EAAC;GAHb,EAKErG,4BAAA,CAAC4R,IAAD;AAAM1C,IAAAA,IAAI;AAAC2G,IAAAA,EAAE,EAAE;AAAGlW,IAAAA,SAAS,EAAEI,OAAO,CAACuV;GAArC,EACEtV,4BAAA,CAAC8V,gBAAD,MAAA,CADF,CALF,EAQE9V,4BAAA,CAAC4R,IAAD;AAAM1C,IAAAA,IAAI;AAAC2G,IAAAA,EAAE,EAAE;GAAf,EACE7V,4BAAA,CAAC4K,UAAD;AAAY8K,IAAAA,YAAY;AAACxS,IAAAA,KAAK,EAAC;GAA/B,oCAAA,CADF,EAEElD,4BAAA,CAAC4K,UAAD;AAAY1H,IAAAA,KAAK,EAAC;AAAU+E,IAAAA,SAAS,EAAC;GAAtC,EACEjI,4BAAA,CAAC4V,GAAD;AAAKhT,IAAAA,UAAU,EAAC;GAAhB,kCAAA,CADF,CAFF,CARF,CAXF,CALF,CADF;AAmCD,CAvCD;;ACbA,MAAM1D,WAAS,GAAGC,UAAU,CAAE2C,KAAD,KAAmB;AAC9CiU,EAAAA,SAAS,EAAE;AACT3P,IAAAA,OAAO,EAAE,MADA;AAETI,IAAAA,cAAc,EAAE;AAFP,GADmC;AAK9CwP,EAAAA,gBAAgB,EAAE;AAChB9S,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KADE;AAEhBiH,IAAAA,QAAQ,EAAE5G,KAAK,CAACE,IAAN,CAAWC;AAFL,GAL4B;AAS9C+U,EAAAA,eAAe,EAAE;AACflM,IAAAA,eAAe,EAAE5J,MAAM,CAACK,KADT;AAEf4F,IAAAA,OAAO,EAAE,MAFM;AAGfI,IAAAA,cAAc,EAAE,QAHD;AAIf0P,IAAAA,aAAa,EAAEpU,KAAK,CAACyE,OAAN,CAAc,CAAd,CAJA;AAKflH,IAAAA,KAAK,EAAE;AALQ,GAT6B;AAgB9C8W,EAAAA,aAAa,EAAE;AACbd,IAAAA,SAAS,EAAEvT,KAAK,CAACyE,OAAN,CAAc,CAAd,CADE;AAEb2H,IAAAA,QAAQ,EAAE,KAFG;AAGb7O,IAAAA,KAAK,EAAE;AAHM,GAhB+B;AAqB9C+W,EAAAA,WAAW,EAAE;AACXC,IAAAA,YAAY,EAAEvU,KAAK,CAACyE,OAAN,CAAc,CAAd;AADH,GArBiC;AAwB9C+P,EAAAA,UAAU,EAAE;AACVlQ,IAAAA,OAAO,EAAE,MADC;AAEVI,IAAAA,cAAc,EAAE,QAFN;AAGVP,IAAAA,OAAO,EAAEnE,KAAK,CAACyE,OAAN,CAAc,CAAd;AAHC,GAxBkC;AA6B9CvD,EAAAA,IAAI,EAAE;AACJqD,IAAAA,UAAU,EAAE,QADR;AAEJD,IAAAA,OAAO,EAAE,MAFL;AAGJ2J,IAAAA,aAAa,EAAE,QAHX;AAIJjF,IAAAA,UAAU,EAAEhJ,KAAK,CAACyE,OAAN,CAAc,CAAd,CAJR;AAKJlH,IAAAA,KAAK,EAAE;AALH,GA7BwC;AAoC9CkX,EAAAA,MAAM,EAAE;AACNxM,IAAAA,eAAe,EAAE5J,MAAM,CAACK,KADlB;AAENgW,IAAAA,mBAAmB,EAAE,SAFf;AAGNC,IAAAA,oBAAoB,EAAE,SAHhB;AAINpT,IAAAA,MAAM,EAAEvB,KAAK,CAACyE,OAAN,CAAc,EAAd,CAJF;AAKNlH,IAAAA,KAAK,EAAE;AALD;AApCsC,CAAnB,CAAD,CAA5B;;AA6CA,MAAMqX,MAAM,GAAoB,CAAC;AAC/B/W,EAAAA,SAAS,EAATA,UAAS,GAAG,EADmB;AACfgX,EAAAA,aADe;AACAC,EAAAA,YADA;AACc,KAAG9W;AADjB,CAAD;AAG9B,QAAMC,OAAO,GAAGb,WAAS,EAAzB;AAEA,SACEc,4BAAA,SAAA;AAAQL,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD,YAAnB,CAA+BO,IAA/B;KAA2CJ,KAA9D,EACEE,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACwW;GAAxB,CADF,EAEEvW,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACkW;GAAxB,EACEjW,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACoW;GAAxB,EACEnW,4BAAA,CAAC4R,MAAD;AAAMC,IAAAA,SAAS;AAACgF,IAAAA,SAAS,EAAC;GAA1B,EACE7W,4BAAA,CAAC4R,MAAD;AAAMjS,IAAAA,SAAS,EAAEI,OAAO,CAACuW;AAAYpH,IAAAA,IAAI;AAAC4C,IAAAA,EAAE,EAAE;AAAIgF,IAAAA,EAAE,EAAE;AAAGC,IAAAA,EAAE,EAAE;GAA7D,EACE/W,4BAAA,MAAA;AAAK+G,IAAAA,GAAG,EAAEiQ;AAAkB3T,IAAAA,MAAM,EAAC;AAAO2D,IAAAA,GAAG,EAAC;GAA9C,CADF,CADF,EAKI4P,YAAY,CAAC/J,GAAb,CAAkBoK,UAAD,IACfjX,4BAAA,CAAC4R,MAAD;AACE9E,IAAAA,GAAG,QAAQ2C,iBAAiB,CAACwH,UAAU,CAAC1P,KAAZ;AAC5B2H,IAAAA,IAAI;AACJ4C,IAAAA,EAAE,EAAE;AACJ+D,IAAAA,EAAE,EAAE;AACJiB,IAAAA,EAAE,EAAE;AACJC,IAAAA,EAAE,EAAE;GANN,EAQE/W,4BAAA,CAACoQ,YAAD;AACEzQ,IAAAA,SAAS,EAAEI,OAAO,CAACqW;KACfa,WAFN,CARF,CADF,CALJ,CADF,EAuBEjX,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACgW;GAAxB,EACE/V,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,EAAEI,OAAO,CAACiW;GAA/B,EACGW,aADH,CADF,CAvBF,CADF,CAFF,CADF;AAoCD,CAzCD;;AC5DA,IAAYO,gBAAZ;;AAAA,WAAYA;AACVA,EAAAA,kDAAA,aAAA;AACAA,EAAAA,mDAAA,cAAA;AACAA,EAAAA,sDAAA,iBAAA;AACAA,EAAAA,sDAAA,iBAAA;AACD,CALD,EAAYA,gBAAgB,KAAhBA,gBAAgB,KAAA,CAA5B;;AAOA,yBAAeA,gBAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SCSgBC,QACdC,WAAsBxS,SAAS,CAACG;AAEhC,SAAO,IAAIsS,OAAJ,CAAkB,CAACC,OAAD,EAAUC,MAAV;AACvB,YAAQH,QAAR;AAEE,WAAKxS,SAAS,CAACO,KAAf;AACA,WAAKP,SAAS,CAACG,QAAf;AAAyB;AAEvB,cAAImC,MAAM,CAACsQ,QAAX,EAAqB;AACnB,kBAAMC,IAAI,GAAG,IAAIC,IAAJ,CAASxQ,MAAM,CAACsQ,QAAhB,CAAb;AACAtQ,YAAAA,MAAM,CAACsQ,QAAP,CACGG,MADH,GAEGhK,IAFH,CAEQ,MAAM2J,OAAO,CAACG,IAAD,CAFrB,EAGGG,KAHH,CAGSL,MAHT;AAID,WAND,MAMO,IAAIrQ,MAAM,CAACuQ,IAAX,EAAiB;AAEtBH,YAAAA,OAAO,CAAC,IAAII,IAAJ,CAASxQ,MAAM,CAACuQ,IAAP,CAAYI,eAArB,CAAD,CAAP;AACD,WAHM,MAGAN,MAAM,CAAC,IAAIvR,KAAJ,CAAU,wBAAV,CAAD,CAAN;;AACP;AACD;;AAGD,WAAKpB,SAAS,CAACmB,KAAf;AAAsB;AACpB,gBAAM+R,iBAAiB,GAAG,IAAIJ,IAAI,CAACK,SAAL,CAAeC,YAAnB,CACxB,yBADwB,CAA1B;AAGAV,UAAAA,OAAO,CAAC,IAAII,IAAJ,CAASI,iBAAT,CAAD,CAAP;AACA;AACD;;AAGD;AAAS;AACPP,UAAAA,MAAM,CACJ,IAAIvR,KAAJ,yDAC0DoR,UAD1D,CADI,CAAN;AAKA;AACD;AAnCH;AAqCD,GAtCM,CAAP;AAuCD;AAED,AAAO,MAAMa,cAAc,GAAG,CAC5BC,SAD4B,EAE5BC,OAF4B,KAGAC,YAAY,CAACC,IAAb,CAAmBC,CAAD,IAAQH,OAAO,GAC3DG,CAAC,CAACJ,SAAF,KAAgBA,SAAhB,IAA6BI,CAAC,CAACH,OAAF,KAAcA,OADgB,GAE3DG,CAAC,CAACJ,SAAF,KAAgBA,SAFU,CAHvB;AAOP,AAAO,MAAMK,sBAAsB,GAAG,MACpCd,IADoC;AAIpC,MAAIS,SAAJ;AACA,MAAIC,OAAJ;;AACA,MAAI;AACFD,IAAAA,SAAS,GAAG,MAAMT,IAAI,CAACe,GAAL,CAASC,GAAT,CAAaC,KAAb,EAAlB;;AAEA,QAAIR,SAAJ,EAAe;AACbC,MAAAA,OAAO,GAAG,MAAMV,IAAI,CAACe,GAAL,CAASG,UAAT,EAAhB;AACD;AACF,GAND,CAME,OAAOC,KAAP,EAAc;;AAChB,MAAIC,WAAJ;;AAEA,MAAIX,SAAJ,EAAe;AACb,QAAI;AACFW,MAAAA,WAAW,GAAGZ,cAAc,CAACC,SAAD,EAAYC,OAAZ,CAA5B;AACD,KAFD,CAEE,OAAOS,KAAP,EAAc;AACjB;;AACD,SAAOC,WAAP;AACD,CArBM;;AAuBP,MAAMC,eAAe,GAAG;AAEtB,MAAI5R,MAAM,CAACsQ,QAAX,EAAqB,OAAOtQ,MAAM,CAACsQ,QAAd;AAGrB,MAAItQ,MAAM,CAACuQ,IAAX,EAAiB,OAAOvQ,MAAM,CAACuQ,IAAP,CAAYI,eAAnB;AACjB,SAAOkB,SAAP;AACD,CAPD;;AAUA,AAAO,MAAMC,qBAAqB,GAAG;AACnC,QAAMC,MAAM,GAAmB,EAA/B;AAEA,QAAMpB,eAAe,GAAGiB,eAAe,EAAvC;AAEA,MAAI,CAACjB,eAAL,EAAsB,OAAOkB,SAAP;;AAEtB,MAAIlB,eAAe,CAACqB,UAApB,EAAgC;AAE9BD,IAAAA,MAAM,CAACE,IAAP,CACEtB,eAAe,CAACuB,aAAhB,GACIvU,eAAe,CAACD,SAAS,CAACO,KAAX,CADnB,GAEIN,eAAe,CAACD,SAAS,CAACG,QAAX,CAHrB;AAKD;;AAED,MAAI8S,eAAe,CAACwB,OAApB,EAA6BJ,MAAM,CAACE,IAAP,CAAYtU,eAAe,CAACD,SAAS,CAACW,KAAX,CAA3B;AAE7B,MAAIsS,eAAe,CAACyB,UAApB,EAAgCL,MAAM,CAACE,IAAP,CAAYtU,eAAe,CAACD,SAAS,CAACY,SAAX,CAA3B;AAEhC,MAAIqS,eAAe,CAAC0B,aAApB,EAAmCN,MAAM,CAACE,IAAP,CAAYtU,eAAe,CAACD,SAAS,CAACa,YAAX,CAA3B;AAEnC,MAAIoS,eAAe,CAAC2B,QAApB,EAA8BP,MAAM,CAACE,IAAP,CAAYtU,eAAe,CAACD,SAAS,CAACc,MAAX,CAA3B;AAE9B,MAAImS,eAAe,CAAC4B,OAApB,EAA6BR,MAAM,CAACE,IAAP,CAAYtU,eAAe,CAACD,SAAS,CAACe,QAAX,CAA3B;AAG7B,MAAI,OAAQuB,MAAc,CAACwS,UAAvB,KAAsC,WAA1C,EAAuDT,MAAM,CAACE,IAAP,CAAYtU,eAAe,CAACD,SAAS,CAAC+U,MAAX,CAA3B;AAEvD,MAAI9B,eAAe,CAAC+B,WAAhB,CAA4B5U,IAA5B,KAAqC,kBAAzC,EAA6DiU,MAAM,CAACE,IAAP,CAAYtU,eAAe,CAACD,SAAS,CAACgB,IAAX,CAA3B;AAE7D,MAAIiS,eAAe,CAAC+B,WAAhB,CAA4B5U,IAA5B,KAAqC,mBAAzC,EAA8DiU,MAAM,CAACE,IAAP,CAAYtU,eAAe,CAACD,SAAS,CAACiB,MAAX,CAA3B;AAE9D,MAAIgS,eAAe,CAACgC,IAAhB,IAAwBhC,eAAe,CAACgC,IAAhB,CAAqBC,OAArB,CAA6B,QAA7B,MAA2C,CAAC,CAAxE,EAA2Eb,MAAM,CAACE,IAAP,CAAYtU,eAAe,CAACD,SAAS,CAACkB,MAAX,CAA3B;AAE3E,MAAI+R,eAAe,CAACgC,IAAhB,IAAwBhC,eAAe,CAACgC,IAAhB,CAAqBC,OAArB,CAA6B,WAA7B,MAA8C,CAAC,CAA3E,EAA8Eb,MAAM,CAACE,IAAP,CAAYtU,eAAe,CAACD,SAAS,CAACmB,KAAX,CAA3B;AAE9E,SAAOkT,MAAP;AACD,CAtCM;AAwCP,AAAO,MAAMc,mBAAmB,GAAG,CACjCtC,IADiC,EAEjC/O,iBAFiC,EAGjCD,gBAHiC,EAIjCuR,OAJiC;AAMjC,MAAI,CAACvC,IAAL,EAAW,OAAOP,kBAAgB,CAAC+C,SAAxB;;AAEX,MAAIxR,gBAAgB,KAAKC,iBAAzB,EAA4C;AAC1C,WAAOwO,kBAAgB,CAACgD,YAAxB;AACD;;AAED,MAAIF,OAAJ,EAAa;AACX,WAAO9C,kBAAgB,CAACiD,QAAxB;AACD;;AACD,SAAOjD,kBAAgB,CAACkD,YAAxB;AACD,CAhBM;;AChHP,MAAMlb,WAAS,GAAGC,UAAU,CAAE2C,KAAD,KAAmB;AAC9CuY,EAAAA,WAAW,EAAE;AACX1S,IAAAA,QAAQ,EAAE5G,KAAK,CAACE,IAAN,CAAWC,IADV;AAEXiP,IAAAA,SAAS,EAAE;AAFA,GADiC;AAK9C9N,EAAAA,MAAM,EAAE;AACN4H,IAAAA,MAAM,eAAe9J,MAAM,CAACW,OADtB;AAEN,eAAW;AACTmJ,MAAAA,MAAM,eAAe9J,MAAM,CAACU;AADnB;AAFL,GALsC;AAW9CyZ,EAAAA,gBAAgB,EAAE;AAChB5T,IAAAA,WAAW,EAAE5E,KAAK,CAACyE,OAAN,CAAc,CAAd;AADG,GAX4B;AAc9CgU,EAAAA,YAAY,EAAE;AACZtU,IAAAA,OAAO,EAAEnE,KAAK,CAACyE,OAAN,CAAc,CAAd;AADG;AAdgC,CAAnB,CAAD,CAA5B;;AAmBA,MAAMiU,OAAO,GAAsB3X,KAAD;AAChC,QAAM;AACJ4U,IAAAA,IADI;AAEJoB,IAAAA,WAFI;AAGJmB,IAAAA,OAHI;AAIJzN,IAAAA,WAJI;AAKJC,IAAAA,kBALI;AAMJ9D,IAAAA,iBANI;AAOJM,IAAAA,uBAPI;AAQJC,IAAAA,wBARI;AASJC,IAAAA,gBATI;AAUJuM,IAAAA,mBAVI;AAWJgF,IAAAA,oBAAoB,GAAG;AAXnB,MAYF5X,KAZJ;AAaA,QAAM9C,OAAO,GAAGb,WAAS,EAAzB;AAEA,QAAM,CAACwb,gBAAD,EAAmBC,mBAAnB,IAA0CzW,QAAQ,CAACuW,oBAAD,CAAxD;;AACA,QAAMG,uBAAuB,GAAG,MAAYD,mBAAmB,CAAC,KAAD,CAA/D;;AACA,QAAME,sBAAsB,GAAG,MAAYF,mBAAmB,CAAC,IAAD,CAA9D;;AACA,QAAM,CAACG,iBAAD,EAAoBC,oBAApB,IAA4C7W,QAAQ,CAAC,KAAD,CAA1D;;AACA,QAAM8W,iBAAiB,GAAG,MAAYD,oBAAoB,CAAC,IAAD,CAA1D;;AACA,QAAME,kBAAkB,GAAG,MAAYF,oBAAoB,CAAC,KAAD,CAA3D;;AACA,QAAMG,gBAAgB,GAAqBnB,mBAAmB,CAACtC,IAAD,EAAO/O,iBAAP,EAA0BmQ,WAA1B,aAA0BA,WAA1B,uBAA0BA,WAAW,CAAEX,SAAvC,EAAkD8B,OAAlD,CAA9D;AAGA,QAAM,CAACmB,QAAD,EAAWC,WAAX,IAA0Bpb,cAAK,CAACkE,QAAN,CAAyC,IAAzC,CAAhC;AAEA,QAAMmX,WAAW,GAAGC,OAAO,CAACH,QAAD,CAA3B;AACA,QAAMrP,EAAE,GAAGuP,WAAW,GAAG,mBAAH,GAAyBtC,SAA/C;;AAEA,QAAMwC,kBAAkB,GAAG;AACzBH,IAAAA,WAAW,CAAC,IAAD,CAAX;AACD,GAFD;;AAIAI,EAAAA,SAAS,CAAC;AACR,QAAIN,gBAAgB,KAAKhE,kBAAgB,CAACgD,YAA1C,EAAwD;AACtDc,MAAAA,iBAAiB;AAClB,KAFD,MAEO;AACLC,MAAAA,kBAAkB;AAClBM,MAAAA,kBAAkB;AACnB;AACF,GAPQ,EAON,CAACL,gBAAD,CAPM,CAAT;;AASA,QAAMb,WAAW,GAAG;AAClB,QAAIa,gBAAgB,KAAKhE,kBAAgB,CAAC+C,SAA1C,EAAqD,OAAO,gBAAP;AAErD,QAAIiB,gBAAgB,KAAKhE,kBAAgB,CAACgD,YAA1C,EAAwD,OAAO,eAAP;;AAExD,QAAIF,OAAJ,EAAa;AAEX,aAAO5K,aAAa,CAAC4K,OAAD,CAApB;AACD;;AACD,WAAO,oBAAP;AACD,GAVD;;AAYA,QAAMyB,gBAAgB,GAAIrX,KAAD;AACvB,QAAI8W,gBAAgB,KAAKhE,kBAAgB,CAACgD,YAA1C,EAAwD,OAAOc,iBAAiB,EAAxB;AAExD,QAAIE,gBAAgB,KAAKhE,kBAAgB,CAAC+C,SAA1C,EAAqD,OAAOY,sBAAsB,EAA7B;AAErD,QAAIK,gBAAgB,KAAKhE,kBAAgB,CAACiD,QAA1C,EAAoD,OAAOiB,WAAW,CAAChX,KAAK,CAACsX,aAAP,CAAlB;AACpD,WAAO,IAAP;AACD,GAPD;;AASA,SACE1b,4BAAA,CAACA,cAAK,CAAC2M,QAAP,MAAA,EACE3M,4BAAA,CAACN,MAAD;AAAQkH,IAAAA,OAAO,EAAE6U;AAAkB9b,IAAAA,SAAS,EAAEI,OAAO,CAACsC;AAAQ+E,IAAAA,OAAO,EAAC;AAAYlE,IAAAA,KAAK,EAAC;AAAU1D,IAAAA,OAAO;GAAzG,EAEI,CAAC,CAACkJ,iBAAF,IACE1I,4BAAA,CAAC8I,gBAAD;AACEC,IAAAA,aAAa,EAAEhJ,OAAO,CAACua;AACvB7R,IAAAA,gBAAgB,EAAEoQ,WAAF,aAAEA,WAAF,uBAAEA,WAAW,CAAEX;AAC/BxP,IAAAA,iBAAiB,EAAEA;AACnBM,IAAAA,uBAAuB,EAAEA;AACzBC,IAAAA,wBAAwB,EAAEA;AAC1BC,IAAAA,gBAAgB,EAAEA;GANpB,CAHN,EAaElJ,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,EAAEI,OAAO,CAACsa;GAA/B,EACGA,WAAW,EADd,CAbF,CADF,EAmBEra,4BAAA,CAAC2b,OAAD;AACE7P,IAAAA,EAAE,EAAEA;AACJ3E,IAAAA,IAAI,EAAEkU;AACNF,IAAAA,QAAQ,EAAEA;AACV1O,IAAAA,OAAO,EAAE8O;AACTK,IAAAA,YAAY,EAAE;AACZC,MAAAA,QAAQ,EAAE,QADE;AAEZC,MAAAA,UAAU,EAAE;AAFA;AAIdC,IAAAA,eAAe,EAAE;AACfF,MAAAA,QAAQ,EAAE,KADK;AAEfC,MAAAA,UAAU,EAAE;AAFG;GATnB,EAcE9b,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,EAAEI,OAAO,CAACwa;GAA/B,uCACwC1B,WAArC,aAAqCA,WAArC,uBAAqCA,WAAW,CAAE7T,OADrD,CAdF,CAnBF,EAqCEhF,4BAAA,CAACsM,YAAD;AACEnF,IAAAA,IAAI,EAAEuT;AACNjO,IAAAA,OAAO,EAAEmO;AACTnD,IAAAA,IAAI,EAAEA;AACN/K,IAAAA,aAAa,EAAEkO;AACfrO,IAAAA,WAAW,EAAEA;AACbC,IAAAA,kBAAkB,EAAEA;GANtB,CArCF,EA6CExM,4BAAA,CAACuV,iBAAD;AACEpO,IAAAA,IAAI,EAAE2T;AACNrO,IAAAA,OAAO,EAAEwO;AACTxF,IAAAA,mBAAmB,EAAEA;AACrBD,IAAAA,kBAAkB,EAAEqD,WAAF,aAAEA,WAAF,uBAAEA,WAAW,CAAE7T;GAJnC,CA7CF,CADF;AAsDD,CAtHD;;ACnCA,MAAM9F,WAAS,GAAGC,UAAU,CAAE2C,KAAD,KAAmB;AAC9Cka,EAAAA,aAAa,EAAE;AACb9Y,IAAAA,KAAK,KAAK/C,MAAM,CAACW,kBADJ;AAEb8B,IAAAA,UAAU,EAAE7B,KAAK,CAACS,MAAN,CAAaH;AAFZ,GAD+B;AAK9C4a,EAAAA,OAAO,EAAE;AACP5V,IAAAA,UAAU,EAAE,QADL;AAEPnD,IAAAA,KAAK,EAAE/C,MAAM,CAACW,KAFP;AAGPsF,IAAAA,OAAO,EAAE,MAHF;AAIP2K,IAAAA,WAAW,EAAEjP,KAAK,CAACyE,OAAN,CAAc,CAAd,CAJN;AAKP0K,IAAAA,YAAY,EAAEnP,KAAK,CAACyE,OAAN,CAAc,CAAd,CALP;AAMP4J,IAAAA,SAAS,EAAE,QANJ;AAOPF,IAAAA,cAAc,EAAE,MAPT;AAQP,eAAW;AACT/M,MAAAA,KAAK,EAAE/C,MAAM,CAACQ,KADL;AAETsP,MAAAA,cAAc,EAAE;AAFP;AARJ,GALqC;AAkB9CiM,EAAAA,gBAAgB,EAAE;AAChB9V,IAAAA,OAAO,EAAE;AADO,GAlB4B;AAqB9CpD,EAAAA,IAAI,EAAE;AACJzD,IAAAA,SAAS,EAAE,MADP;AAGJ8D,IAAAA,MAAM,EAAEvB,KAAK,CAACyE,OAAN,CAAc3E,eAAe,CAACC,YAA9B;AAHJ;AArBwC,CAAnB,CAAD,CAA5B;;AA4BA,MAAMsa,aAAa,GAAoB,CAAC;AACtCC,EAAAA,QADsC;AAC5BC,EAAAA,UAD4B;AAChBC,EAAAA,QADgB;AACNC,EAAAA;AADM,CAAD;AAGrC,QAAMxc,OAAO,GAAGb,WAAS,EAAzB;AACA,QAAMsd,KAAK,GAAGD,KAAd;AAEA,SACEvc,4BAAA,CAACyc,MAAD;AAAQpS,IAAAA,QAAQ,EAAC;AAAQ1K,IAAAA,SAAS,EAAEI,OAAO,CAACiD;GAA5C,EACEhD,4BAAA,CAAC0c,OAAD,MAAA,EACE1c,4BAAA,CAAC4R,MAAD;AACEC,IAAAA,SAAS;GADX,EAGE7R,4BAAA,CAAC4R,MAAD;AAAM1C,IAAAA,IAAI;AAAC4C,IAAAA,EAAE,EAAE;GAAf,EACE9R,4BAAA,CAACkI,OAAD;AAASuI,IAAAA,EAAE,EAAE2L;GAAb,EACEpc,4BAAA,CAAC0H,UAAD,MAAA,CADF,CADF,CAHF,EAQE1H,4BAAA,CAAC4R,MAAD;AACE1C,IAAAA,IAAI;AACJ4C,IAAAA,EAAE,EAAE;AACJ6K,IAAAA,EAAE,EAAE;AACJ9K,IAAAA,SAAS;AACT+K,IAAAA,OAAO,EAAC;GALV,EAQI,CAAC,EAACP,UAAD,aAACA,UAAD,uBAACA,UAAU,CAAEzP,MAAb,CAAD,IACGyP,UAAU,CAACxP,GAAX,CAAgBgQ,OAAD,IAChB7c,4BAAA,CAAC4K,UAAD;AACEjL,IAAAA,SAAS,EAAEI,OAAO,CAACmc;AACnBpP,IAAAA,GAAG,QAAQ2C,iBAAiB,CAACoN,OAAO,CAACtV,KAAT;GAF9B,EAIEvH,4BAAA,CAACkI,OAAD;AACEvI,IAAAA,SAAS,EAAEI,OAAO,CAACkc;AACnBa,IAAAA,eAAe,EAAE/c,OAAO,CAACic;KACrBa,QAHN,EAKGA,OAAO,CAACtV,KALX,CAJF,CADC,CATP,CARF,EAiCEvH,4BAAA,CAAC4R,MAAD;AACE1C,IAAAA,IAAI;AACJ4C,IAAAA,EAAE,EAAE;AACJ6K,IAAAA,EAAE,EAAE;AACJ9K,IAAAA,SAAS;AACT+K,IAAAA,OAAO,EAAC;AACRG,IAAAA,YAAY,EAAC;GANf,EASI,CAAC,EAACT,QAAD,aAACA,QAAD,uBAACA,QAAQ,CAAE1P,MAAX,CAAD,IACG0P,QAAQ,CAACzP,GAAT,CAAa,CAAC;AAAEpI,IAAAA,IAAF;AAAQ,OAAG3E;AAAX,GAAD,KACdE,4BAAA,CAACgd,YAAD;AAAclQ,IAAAA,GAAG,EAAErI,IAAI,CAACqI;KAAShN,KAAjC,EACG2E,IADH,CADC,CAVP,CAjCF,EAkDEzE,4BAAA,CAAC4R,MAAD;AACE1C,IAAAA,IAAI;AACJ2C,IAAAA,SAAS;AACTC,IAAAA,EAAE,EAAE;AACJ6K,IAAAA,EAAE,EAAE;AACJC,IAAAA,OAAO,EAAC;AACRG,IAAAA,YAAY,EAAC;GANf,EAQE/c,4BAAA,MAAA,MAAA,EACEA,4BAAA,CAACwc,KAAD,MAAA,CADF,CARF,CAlDF,CADF,CADF,CADF;AAqED,CA3ED;;ACvBA,MAAMS,WAAW,GAAG,GAApB;AAEA,MAAM/d,WAAS,GAAGC,UAAU,CAAE2C,KAAD,IAAkB6B,cAAY,CAAC;AAC1DuZ,EAAAA,YAAY,EAAE;AACZ9W,IAAAA,OAAO,EAAE,MADG;AAEZC,IAAAA,UAAU,EAAE,QAFA;AAGZJ,IAAAA,OAAO,EAAEnE,KAAK,CAACyE,OAAN,CAAc,CAAd,EAAiB,CAAjB,CAHG;AAKZ,OAAGzE,KAAK,CAACqb,MAAN,CAAaC,OALJ;AAMZ5W,IAAAA,cAAc,EAAE;AANJ,GAD4C;AAS1D6W,EAAAA,WAAW,EAAE;AACXhe,IAAAA,KAAK,EAAE4d;AADI,GAT6C;AAY1DK,EAAAA,YAAY,EAAE;AACZ/d,IAAAA,SAAS,EAAE,MADC;AAGZ8D,IAAAA,MAAM,EAAEvB,KAAK,CAACyE,OAAN,CAAc3E,eAAe,CAACC,YAA9B,CAHI;AAIZ0b,IAAAA,UAAU,EAAEzb,KAAK,CAAC0b,WAAN,CAAkBC,MAAlB,CAAyB,CAAC,QAAD,EAAW,OAAX,CAAzB,EAA8C;AACxDC,MAAAA,MAAM,EAAE5b,KAAK,CAAC0b,WAAN,CAAkBE,MAAlB,CAAyBC,KADuB;AAExDC,MAAAA,QAAQ,EAAE9b,KAAK,CAAC0b,WAAN,CAAkBI,QAAlB,CAA2BC;AAFmB,KAA9C;AAJA,GAZ4C;AAqB1DC,EAAAA,iBAAiB,EAAE;AACjBze,IAAAA,KAAK,iBAAiB4d,gBADL;AAEjBxZ,IAAAA,UAAU,EAAEwZ,WAFK;AAGjBM,IAAAA,UAAU,EAAEzb,KAAK,CAAC0b,WAAN,CAAkBC,MAAlB,CAAyB,CAAC,QAAD,EAAW,OAAX,CAAzB,EAA8C;AACxDC,MAAAA,MAAM,EAAE5b,KAAK,CAAC0b,WAAN,CAAkBE,MAAlB,CAAyBK,OADuB;AAExDH,MAAAA,QAAQ,EAAE9b,KAAK,CAAC0b,WAAN,CAAkBI,QAAlB,CAA2BI;AAFmB,KAA9C;AAHK,GArBuC;AA6B1DC,EAAAA,aAAa,EAAE;AACb5X,IAAAA,UAAU,EAAE,QADC;AAEbnD,IAAAA,KAAK,EAAE/C,MAAM,CAACO,KAFD;AAGb0F,IAAAA,OAAO,EAAE,MAHI;AAIb6J,IAAAA,cAAc,EAAE,MAJH;AAKb5Q,IAAAA,KAAK,EAAE,MALM;AAMb,eAAW;AACT6D,MAAAA,KAAK,EAAE/C,MAAM,CAACQ,KADL;AAETsP,MAAAA,cAAc,EAAE;AAFP;AANE,GA7B2C;AAwC1DiO,EAAAA,mBAAmB,EAAE;AACnBhb,IAAAA,KAAK,KAAK/C,MAAM,CAACE;AADE;AAxCqC,CAAD,CAA/B,CAA5B;;AA6CA,MAAM8d,YAAY,GAAoB,CAAC;AACrC/B,EAAAA,QADqC;AAC3BC,EAAAA,UAD2B;AACfC,EAAAA,QADe;AACLC,EAAAA,KAAK,EAAEC;AADF,CAAD;AAGpC,QAAMzc,OAAO,GAAGb,WAAS,EAAzB;AACA,QAAM,CAACiI,IAAD,EAAOiX,OAAP,IAAkBla,QAAQ,CAAC,KAAD,CAAhC;;AAEA,QAAMma,YAAY,GAAIC,MAAD,IACnBla,KADwC;AAGxC,QACEA,KAAK,CAAC6N,IAAN,KAAe,SAAf,KACK7N,KAA6B,CAAC0I,GAA9B,KAAsC,KAAtC,IACC1I,KAA6B,CAAC0I,GAA9B,KAAsC,OAF5C,CADF,EAIE;AACA;AACD;;AACDsR,IAAAA,OAAO,CAACE,MAAD,CAAP;AACD,GAXD;;AAaA,SACEte,4BAAA,MAAA;AACEue,IAAAA,IAAI,EAAC;AACLC,IAAAA,SAAS,EAAEH,YAAY,CAAC,KAAD;GAFzB,EAIEre,4BAAA,CAACyc,MAAD;AACEpS,IAAAA,QAAQ,EAAC;AACT1K,IAAAA,SAAS,KACJI,OAAO,CAACud,gBAAgBnW,IAAI,GAAGpH,OAAO,CAAC+d,iBAAX,GAA+B,IAA9D,CAAmE5d,IAAnE;GAHJ,EAMEF,4BAAA,CAAC0c,OAAD,MAAA,EACG,CAACvV,IAAD,IACCnH,4BAAA,CAAC4R,MAAD;AAAMC,IAAAA,SAAS;GAAf,EACE7R,4BAAA,CAAC4R,MAAD;AAAM1C,IAAAA,IAAI;AAAC4C,IAAAA,EAAE,EAAE;GAAf,EACE9R,4BAAA,CAACmV,YAAD;AACEjS,IAAAA,KAAK,EAAC;kBACK;AACX0D,IAAAA,OAAO,EAAEyX,YAAY,CAAC,IAAD;GAHvB,EAKEre,4BAAA,CAACye,QAAD,MAAA,CALF,CADF,CADF,EAUEze,4BAAA,CAAC4R,MAAD;AAAM1C,IAAAA,IAAI;AAAC4C,IAAAA,EAAE,EAAE;GAAf,EACE9R,4BAAA,CAACkI,OAAD;AAASuI,IAAAA,EAAE,EAAE2L;GAAb,EACEpc,4BAAA,CAAC0H,UAAD,MAAA,CADF,CADF,CAVF,EAeE1H,4BAAA,CAAC4R,MAAD;AACE1C,IAAAA,IAAI;AACJ4H,IAAAA,EAAE,EAAE;AACJjB,IAAAA,EAAE,EAAE;AACJ/D,IAAAA,EAAE,EAAE;AACJD,IAAAA,SAAS;AACT+K,IAAAA,OAAO,EAAC;AACRG,IAAAA,YAAY,EAAC;GAPf,EAUI,CAAC,EAACT,QAAD,aAACA,QAAD,uBAACA,QAAQ,CAAE1P,MAAX,CAAD,IACG0P,QAAQ,CAACzP,GAAT,CAAa,CAAC;AAAEpI,IAAAA,IAAF;AAAQ,OAAG3E;AAAX,GAAD,KACdE,4BAAA,CAACgd,YAAD;AAAclQ,IAAAA,GAAG,EAAErI,IAAI,CAACqI;KAAShN,KAAjC,EACG2E,IADH,CADC,CAXP,CAfF,EAiCEzE,4BAAA,CAAC4R,MAAD;AAAM1C,IAAAA,IAAI;AAAC4H,IAAAA,EAAE,EAAE;AAAGjB,IAAAA,EAAE,EAAE;AAAG/D,IAAAA,EAAE,EAAE;AAAGD,IAAAA,SAAS;AAAC+K,IAAAA,OAAO,EAAC;AAAWG,IAAAA,YAAY,EAAC;GAA1E,EACE/c,4BAAA,MAAA,MAAA,EACEA,4BAAA,CAACwc,KAAD,MAAA,CADF,CADF,CAjCF,CAFJ,CANF,CAJF,EAsDExc,4BAAA,CAAC0e,MAAD;AACEC,IAAAA,MAAM,EAAC;AACPxX,IAAAA,IAAI,EAAEA;AACNsF,IAAAA,OAAO,EAAE4R,YAAY,CAAC,KAAD;AACrBte,IAAAA,OAAO,EAAE;AACP+J,MAAAA,KAAK,EAAE/J,OAAO,CAACsd;AADR;AAGTzW,IAAAA,OAAO,EAAEyX,YAAY,CAAC,KAAD;GAPvB,EASEre,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACmd;GAAxB,EACEld,4BAAA,CAACmV,YAAD;AAAYvO,IAAAA,OAAO,EAAEyX,YAAY,CAAC,KAAD;GAAjC,EACEre,4BAAA,CAAC4e,eAAD,MAAA,CADF,CADF,CATF,EAcE5e,4BAAA,CAAC6e,OAAD,MAAA,CAdF,EAeE7e,4BAAA,CAAC8e,IAAD,MAAA,EAEI,CAAC,EAACzC,UAAD,aAACA,UAAD,uBAACA,UAAU,CAAEzP,MAAb,CAAD,IACGyP,UAAU,CAACxP,GAAX,CAAgBkS,UAAD,IAChB/e,4BAAA,CAACgf,QAAD;AACE3c,IAAAA,MAAM;AACNyK,IAAAA,GAAG,SAAS2C,iBAAiB,CAACsP,UAAU,CAACxX,KAAZ;GAF/B,EAIEvH,4BAAA,CAACkI,OAAD;AACEuI,IAAAA,EAAE,EAAEsO,UAAU,CAACtO;AACf9Q,IAAAA,SAAS,EAAEI,OAAO,CAACke;AACnBnB,IAAAA,eAAe,EAAE/c,OAAO,CAACme;GAH3B,EAKEle,4BAAA,CAACgd,YAAD,MAAA,EACG+B,UAAU,CAACta,IADd,CALF,EAQEzE,4BAAA,CAACif,YAAD;AAAc5e,IAAAA,OAAO,EAAE0e,UAAU,CAACxX;GAAlC,CARF,CAJF,CADC,CAHP,CAfF,CAtDF,CADF;AAgGD,CAnHD;;AC1DA,MAAM2X,MAAM,GAAqBrc,KAAD,IAC9B7C,4BAAA,CAACA,cAAK,CAAC2M,QAAP,MAAA,EACE3M,4BAAA,CAACmf,MAAD;AAAQC,EAAAA,MAAM;CAAd,EACEpf,4BAAA,CAACmc,aAAD,oBAAmBtZ,MAAnB,CADF,CADF,EAIE7C,4BAAA,CAACmf,MAAD;AAAQE,EAAAA,IAAI;CAAZ,EACErf,4BAAA,CAACme,YAAD,oBAAkBtb,MAAlB,CADF,CAJF,CADF;;ACMA,MAAM3D,WAAS,GAAGC,UAAU,CAAE2C,KAAD,KAAmB;AAC9Cwd,EAAAA,aAAa,EAAE;AACbjZ,IAAAA,UAAU,EAAE,QADC;AAEb0D,IAAAA,eAAe,EAAE5J,MAAM,CAACE,OAFX;AAGb+F,IAAAA,OAAO,EAAE,MAHI;AAIbI,IAAAA,cAAc,EAAE,QAJH;AAKbnH,IAAAA,KAAK,EAAE;AALM,GAD+B;AAQ9CkgB,EAAAA,WAAW,EAAE;AACXrc,IAAAA,KAAK,EAAE/C,MAAM,CAACW,KADH;AAEXsF,IAAAA,OAAO,EAAE,MAFE;AAGX2J,IAAAA,aAAa,EAAE,QAHJ;AAIXI,IAAAA,SAAS,EAAE,QAJA;AAKX,KAACrO,KAAK,CAACkM,WAAN,CAAkBwR,IAAlB,CAAuB,IAAvB,CAAD,GAAgC;AAC9BtR,MAAAA,QAAQ,EAAE;AADoB,KALrB;AAQX,KAACpM,KAAK,CAACkM,WAAN,CAAkBC,EAAlB,CAAqB,IAArB,CAAD,GAA8B;AAC5BC,MAAAA,QAAQ,EAAE;AADkB,KARnB;AAWX,KAACpM,KAAK,CAACkM,WAAN,CAAkBC,EAAlB,CAAqB,IAArB,CAAD,GAA8B;AAC5BC,MAAAA,QAAQ,EAAE;AADkB;AAXnB,GARiC;AAuB9CuR,EAAAA,YAAY,EAAE;AACZpJ,IAAAA,YAAY,EAAEvU,KAAK,CAACyE,OAAN,CAAc,CAAd,CADF;AAEZoB,IAAAA,QAAQ,EAAE7F,KAAK,CAACyE,OAAN,CAAc,CAAd,CAFE;AAGZ3D,IAAAA,UAAU,EAAE7B,KAAK,CAACS,MAAN,CAAaE;AAHb,GAvBgC;AA4B9Cge,EAAAA,SAAS,EAAE;AACTrgB,IAAAA,KAAK,EAAE;AADE;AA5BmC,CAAnB,CAAD,CAA5B;;AAiCA,MAAMsgB,YAAY,GAA0B,CAC1C;AAAEC,EAAAA,WAAF;AAAeC,EAAAA,UAAf;AAA2BC,EAAAA;AAA3B,CAD0C;AAG1C,QAAM/f,OAAO,GAAGb,WAAS,EAAzB;AAEA,SACEc,4BAAA,CAACA,cAAK,CAAC2M,QAAP,MAAA,EACE3M,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACuf;GAAxB,EACEtf,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACwf;GAAxB,EACEvf,4BAAA,CAAC4K,UAAD;AACEjL,IAAAA,SAAS,EAAEI,OAAO,CAAC0f;AACnBrY,IAAAA,OAAO,EAAC;GAFV,EAIGyY,UAJH,EAKE7f,4BAAA,KAAA,MAAA,CALF,EAMG,GANH,EAOG8f,UAPH,CADF,EAUE9f,4BAAA,CAAC4K,UAAD;AAAYxD,IAAAA,OAAO,EAAC;GAApB,EAAiCwY,WAAjC,CAVF,CADF,CADF,EAeE5f,4BAAA,MAAA;AACEL,IAAAA,SAAS,EAAEI,OAAO,CAAC2f;AACnB3Y,IAAAA,GAAG,EAAEgZ;AACL/Y,IAAAA,GAAG,EAAC;GAHN,CAfF,CADF;AAuBD,CA5BD;;AChCA,MAAM9H,WAAS,GAAGC,UAAU,CAAE2C,KAAD,KAAmB;AAC9CkB,EAAAA,IAAI,EAAE;AACJqD,IAAAA,UAAU,EAAE,QADR;AAEJD,IAAAA,OAAO,EAAE,MAFL;AAGJ2J,IAAAA,aAAa,EAAE,QAHX;AAIJsF,IAAAA,SAAS,EAAEvT,KAAK,CAACyE,OAAN,CAAc,CAAd;AAJP,GADwC;AAO9CsL,EAAAA,SAAS,EAAE;AACTxL,IAAAA,UAAU,EAAE,QADH;AAETD,IAAAA,OAAO,EAAE,MAFA;AAGT2J,IAAAA,aAAa,EAAE,QAHN;AAIT,KAACjO,KAAK,CAACkM,WAAN,CAAkBC,EAAlB,CAAqB,IAArB,CAAD,GAA8B;AAC5BC,MAAAA,QAAQ,EAAE;AADkB;AAJrB,GAPmC;AAe9C8R,EAAAA,cAAc,EAAE;AACdjW,IAAAA,eAAe,EAAE5J,MAAM,CAACI;AADV,GAf8B;AAkB9C0f,EAAAA,SAAS,EAAE;AACTtY,IAAAA,QAAQ,EAAE7F,KAAK,CAACK,UAAN,CAAiByF,OAAjB,CAAyB,EAAzB,CADD;AAET1B,IAAAA,MAAM,EAAEpE,KAAK,CAACyE,OAAN,CAAc,CAAd,EAAiB,CAAjB;AAFC,GAlBmC;AAsB9C2Z,EAAAA,gBAAgB,EAAE;AAChB7Z,IAAAA,UAAU,EAAE,QADI;AAEhBD,IAAAA,OAAO,EAAE,MAFO;AAGhB2J,IAAAA,aAAa,EAAE,QAHC;AAIhBsF,IAAAA,SAAS,EAAEvT,KAAK,CAACyE,OAAN,CAAc,CAAd;AAJK;AAtB4B,CAAnB,CAAD,CAA5B;;AA8BA,MAAM4Z,eAAe,GAA6B,CAAC;AAAExgB,EAAAA,SAAS,EAATA,UAAS,GAAG,EAAd;AAAkBsgB,EAAAA,SAAlB;AAA6BG,EAAAA;AAA7B,CAAD;AAChD,QAAMrgB,OAAO,GAAGb,WAAS,EAAzB;AACA,SACEc,4BAAA,MAAA;AAAKL,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD,YAAnB,CAA+BO,IAA/B;GAAhB,EACEF,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAAC8R;GAAxB,EACE7R,4BAAA,CAAC4K,UAAD;AAAYjL,IAAAA,SAAS,EAAEI,OAAO,CAACkgB;AAAW7Y,IAAAA,OAAO,EAAC;AAAKlE,IAAAA,KAAK,EAAC;GAA7D,EAAwE+c,SAAxE,CADF,EAEEjgB,4BAAA,MAAA;AAAKL,IAAAA,SAAS,EAAEI,OAAO,CAACmgB;GAAxB,EAEIE,mBAAmB,CAACvT,GAApB,CAAwB,CAACwT,KAAD,EAAyBlR,CAAzB,KACtBnP,4BAAA,CAACoO,UAAD;AAAYzO,IAAAA,SAAS,KAAKwP,CAAC,GAAG,CAAJ,KAAU,CAAV,GAAcpP,OAAO,CAACigB,cAAtB,GAAuC;AAAMlT,IAAAA,GAAG,SAAS2C,iBAAiB,CAAC4Q,KAAK,CAAC/R,QAAP;KAAwB+R,MAA5H,CADF,CAFJ,CAFF,CADF,CADF;AAcD,CAhBD;;ACrCA,MAAMnhB,WAAS,GAAGC,UAAU,CAAE2C,KAAD,KAAmB;AAC9CkB,EAAAA,IAAI,EAAE;AAEJqS,IAAAA,SAAS,EAAEvT,KAAK,CAACyE,OAAN,CAAc3E,eAAe,CAACC,YAA9B,CAFP;AAGJxC,IAAAA,KAAK,EAAE;AAHH;AADwC,CAAnB,CAAD,CAA5B;;AAQA,MAAMihB,YAAY,GAA0B,CAAC;AAAEzgB,EAAAA,QAAF;AAAYF,EAAAA,SAAS,EAATA,UAAS,GAAG,EAAxB;AAA4B,KAAGkD;AAA/B,CAAD;AAC1C,QAAM9C,OAAO,GAAGb,WAAS,EAAzB;AAEA,SACEc,4BAAA,MAAA;AAAKL,IAAAA,SAAS,KAAKI,OAAO,CAACiD,QAAQrD,YAAnB,CAA+BO,IAA/B;KAA2C2C,MAA3D,EACGhD,QADH,CADF;AAKD,CARD;;MCiBa0gB,gBAAgB,GAAsB;AACjDnJ,EAAAA,QAAQ,EAAE2B,SADuC;AAEjDtB,EAAAA,IAAI,EAAEsB,SAF2C;AAGjDiB,EAAAA,OAAO,EAAEjB,SAHwC;AAIjDF,EAAAA,WAAW,EAAEE;AAJoC,CAA5C;AAOP,MAAayH,SAAS,GAAGC,aAAa,CAAoB;AACxDC,EAAAA,KAAK,EAAEH,gBADiD;AAExDI,EAAAA,OAAO,EAAE;AACPpU,IAAAA,WAAW,EAAE,MAAqB8K,OAAO,CAACC,OAAR,EAD3B;AAEPsJ,IAAAA,wBAAwB,EAAE,MAAW,CAF9B;AAGPC,IAAAA,wBAAwB,EAAE,MAAW;AAH9B,GAF+C;AAOxDnY,EAAAA,iBAAiB,EAAEqQ,SAPqC;AAQxD+H,EAAAA,eAAe,EAAE/H;AARuC,CAApB,CAA/B;;AAkBP,MAAMgI,yBAAyB,GAAIC,QAAD;AAChC,MAAIhH,OAAJ;AAEA,MAAIiH,KAAK,CAACC,OAAN,CAAcF,QAAd,CAAJ,EAA6B,CAAChH,OAAD,IAAYgH,QAAZ,CAA7B,KACKhH,OAAO,GAAGgH,QAAV;AACL,SAAOhH,OAAP;AACD,CAND;;AAgBA,MAAMmH,iBAAiB,GAAG,CACxBzY,iBADwB,EAExBoY,eAFwB,EAGxBjI,WAHwB;AAMxB,MAAI,CAACnQ,iBAAL,EAAwB,OAAO,IAAP;;AAExB,MAAIA,iBAAiB,MAAKmQ,WAAL,aAAKA,WAAL,uBAAKA,WAAW,CAAEX,SAAlB,CAArB,EAAkD;AAEhD,QAAI4I,eAAJ,EAAqB,OAAOA,eAAe,MAAKjI,WAAL,aAAKA,WAAL,uBAAKA,WAAW,CAAEV,OAAlB,CAAtB;AACrB,WAAO,IAAP;AACD;;AACD,SAAO,KAAP;AACD,CAdD;;AAgBA,MAAMiJ,YAAN,SAA2BC,SAA3B;AAOEzH,EAAAA,YAAY/W;AACV,UAAMA,KAAN;AACA,SAAK6d,KAAL,GAAaH,gBAAb;AACA,SAAK7X,iBAAL,GAAyB7F,KAAK,CAAC6F,iBAA/B;AACA,SAAKoY,eAAL,GAAuBje,KAAK,CAACie,eAA7B;AACA,SAAKF,wBAAL,GAAgC/d,KAAK,CAAC8d,OAAN,CAAcC,wBAA9C;AACA,SAAKC,wBAAL,GAAgChe,KAAK,CAAC8d,OAAN,CAAcE,wBAA9C;AACA,SAAKtU,WAAL,GAAmB,KAAKA,WAAL,CAAiB+U,IAAjB,CAAsB,IAAtB,CAAnB;AACA,SAAKC,UAAL;AACD;;AAMM,QAAMhV,WAAN,CAAkB6K,QAAlB,EACLoK,cADK;AAEL,UAAM/J,IAAI,GAAG,MAAMN,OAAO,CAACC,QAAD,CAA1B;AACA,UAAM4J,QAAQ,GAAG,MAAMvJ,IAAI,CAACe,GAAL,CAASiJ,WAAT,EAAvB;AACA,UAAM5I,WAAW,GAAG,MAAMN,sBAAsB,CAACd,IAAD,CAAhD;AAEA,UAAMiK,gBAAgB,GAAGP,iBAAiB,CAAC,KAAKzY,iBAAN,EAAyB,KAAKoY,eAA9B,EAA+CjI,WAA/C,CAA1C;AAEA,UAAMmB,OAAO,GAAG0H,gBAAgB,GAC5BX,yBAAyB,CAACC,QAAD,CADG,GAE5BjI,SAFJ;AAIA,SAAK4I,QAAL,CACE;AACElK,MAAAA,IADF;AAEEL,MAAAA,QAFF;AAGE4C,MAAAA,OAHF;AAIEnB,MAAAA;AAJF,KADF,EAOE,MAAO2I,cAAc,IAAIA,cAAc,CAACxH,OAAD,CAPzC;AASD;;AAEOuH,EAAAA,UAAU;;;AAChB,QAAI,CAACra,MAAM,CAACsQ,QAAZ,EAAsB;AACpB;AACD;;AACD,SAAKhL,kBAAL,GAA0BwM,qBAAqB,EAA/C;AAEA9R,IAAAA,MAAM,CAACsQ,QAAP,CAAgBoK,0BAAhB,GAA6C,KAA7C;AAEA1a,IAAAA,MAAM,CAACsQ,QAAP,CAAgBqK,EAAhB,CAAmB,gBAAnB,EAAqC,gBAAOC,MAAP;AACnC,YAAM;AAAEjJ,QAAAA;AAAF,UAAkB,KAAI,CAAC6H,KAA7B;AAEA,UAAI,CAAC7H,WAAL,EAAkB;AAClB,YAAM;AAAEzB,QAAAA;AAAF,UAAe,KAAI,CAACsJ,KAA1B;AACA,YAAMjJ,IAAI,GAAG,MAAMN,OAAO,CAACC,QAAD,CAA1B;AACA,YAAM4J,QAAQ,GAAG,MAAMvJ,IAAI,CAACe,GAAL,CAASiJ,WAAT,EAAvB;AACA,YAAMM,cAAc,GAAG,MAAMxJ,sBAAsB,CAACd,IAAD,CAAnD;AAGA,YAAMiK,gBAAgB,GAAGP,iBAAiB,CACxC,KAAI,CAACzY,iBADmC,EAExC,KAAI,CAACoY,eAFmC,EAGxCiB,cAHwC,CAA1C;AAKA,YAAM/H,OAAO,GAAG0H,gBAAgB,GAC5BX,yBAAyB,CAACC,QAAD,CADG,GAE5BjI,SAFJ;;AAIA,MAAA,KAAI,CAAC4I,QAAL,CACE;AACE9I,QAAAA,WAAW,EAAEkJ,cADf;AAEE/H,QAAAA;AAFF,OADF,EAKE,MAAM,KAAI,CAAC4G,wBAAL,IAAiC,KAAI,CAACA,wBAAL,EALzC;AAOD,KA1BD;AA4BA1Z,IAAAA,MAAM,CAACsQ,QAAP,CAAgBqK,EAAhB,CAAmB,iBAAnB,EAAuCb,QAAD;AACpC,YAAM;AAAEnI,QAAAA;AAAF,UAAkB,KAAK6H,KAA7B;AAEA,UAAI,CAAC7H,WAAL,EAAkB;AAGlB,YAAM6I,gBAAgB,GAAGP,iBAAiB,CACxC,KAAKzY,iBADmC,EAChB,KAAKoY,eADW,EACMjI,WADN,CAA1C;;AAIA,UAAI6I,gBAAJ,EAAsB;AACpB,cAAM1H,OAAO,GAAG+G,yBAAyB,CAACC,QAAD,CAAzC;;AAEA,YAAIhH,OAAJ,EAAa;AACX,eAAK2H,QAAL,CAAc;AACZ3H,YAAAA;AADY,WAAd,EAGA,MAAM,KAAK6G,wBAAL,IACC,KAAKA,wBAAL,EAJP;AAKD;AACF;AACF,KArBD;AAsBD;;AAEMmB,EAAAA,MAAM;AACX,UAAM;AACJ5K,MAAAA,QADI;AAEJK,MAAAA,IAFI;AAGJuC,MAAAA,OAHI;AAIJnB,MAAAA;AAJI,QAKF,KAAK6H,KALT;AAMA,UAAM;AACJnU,MAAAA,WADI;AAEJqU,MAAAA,wBAFI;AAGJC,MAAAA,wBAHI;AAIJrU,MAAAA;AAJI,QAKF,IALJ;AAOA,UAAM;AAAE3M,MAAAA;AAAF,QAAe,KAAKgD,KAA1B;AAEA,WACE7C,4BAAA,CAACwgB,SAAS,CAACyB,QAAX;AACEzQ,MAAAA,KAAK,EAAE;AACLmP,QAAAA,OAAO,EAAE;AACPpU,UAAAA,WADO;AAEPqU,UAAAA,wBAFO;AAGPC,UAAAA;AAHO,SADJ;AAMLH,QAAAA,KAAK,EAAE;AACLtJ,UAAAA,QADK;AAELK,UAAAA,IAFK;AAGLuC,UAAAA,OAHK;AAILnB,UAAAA;AAJK,SANF;AAYLrM,QAAAA;AAZK;KADT,EAgBG3M,QAhBH,CADF;AAoBD;;;;AAGH,qBAAe;AAAEqiB,EAAAA,QAAQ,EAAE1B,SAAS,CAAC0B,QAAtB;AAAgCD,EAAAA,QAAQ,EAAEb;AAA1C,CAAf;;;;"} \ No newline at end of file diff --git a/example/src/App.js b/example/src/App.js index 8c6c60f3..1b8fe999 100644 --- a/example/src/App.js +++ b/example/src/App.js @@ -3,9 +3,11 @@ import { BrowserRouter } from 'react-router-dom'; import LiveHelpIcon from '@material-ui/icons/LiveHelp'; import { ThemeProvider } from '@material-ui/core/styles'; +import NotificationsNoneIcon from '@material-ui/icons/NotificationsNone' import { Account, + colors, Footer, Header, PageTemplate, @@ -29,6 +31,11 @@ const App = () => { icon: }, ], + itemsEnd: [ + { + icon: + } + ], login: () => ( {({ state: { web3, account, networkInfo }, actions: { setProvider }, availableProviders }) => ( diff --git a/src/components/organisms/Header/HeaderDesktop.tsx b/src/components/organisms/Header/HeaderDesktop.tsx index a7b34c0f..25e9917e 100644 --- a/src/components/organisms/Header/HeaderDesktop.tsx +++ b/src/components/organisms/Header/HeaderDesktop.tsx @@ -58,6 +58,7 @@ const HeaderDesktop: FC = ({ @@ -82,6 +83,7 @@ const HeaderDesktop: FC = ({ = ({ item container xs={2} + xl={1} justify="flex-end" alignContent="center" > diff --git a/src/components/organisms/Header/HeaderMobile.tsx b/src/components/organisms/Header/HeaderMobile.tsx index 66705ac9..ea365dd8 100644 --- a/src/components/organisms/Header/HeaderMobile.tsx +++ b/src/components/organisms/Header/HeaderMobile.tsx @@ -111,6 +111,8 @@ const HeaderMobile: FC = ({ = ({ )) } - +
From 1b76d37663613c699c29dd46097de9eb05adf4ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alvaro=20Fari=C3=B1a?= Date: Mon, 9 Nov 2020 14:25:37 -0300 Subject: [PATCH 10/11] chore: bumps version to v0.4.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 51ab371d..35a3663b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@rsksmart/rif-ui", - "version": "0.3.4", + "version": "0.4.0", "description": "Exposes common components to be re used in RIF projects", "keywords": [ "RIF", From e1a2f0f6e8d56c71283af1f2179ecfa049f6cf0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alvaro=20Fari=C3=B1a?= Date: Mon, 9 Nov 2020 14:26:15 -0300 Subject: [PATCH 11/11] chore: removes dist folder --- .gitignore | 2 +- dist/assets/images/icons/index.d.ts | 11 - dist/assets/images/index.d.ts | 7 - dist/assets/images/logos/index.d.ts | 5 - dist/components/atoms/Button.d.ts | 9 - dist/components/atoms/Checkbox.d.ts | 5 - dist/components/atoms/LoginOption.d.ts | 13 - dist/components/atoms/Logo.d.ts | 3 - dist/components/atoms/LogoNavbar.d.ts | 8 - dist/components/atoms/NetworkIndicator.d.ts | 16 - dist/components/atoms/StyledNavTab.d.ts | 8 - dist/components/atoms/atoms.test.d.ts | 1 - dist/components/atoms/index.d.ts | 9 - dist/components/atoms/modal/Modal.d.ts | 5 - dist/components/atoms/modal/ModalBody.d.ts | 6 - dist/components/atoms/modal/ModalFooter.d.ts | 6 - dist/components/atoms/modal/ModalHeader.d.ts | 6 - dist/components/atoms/modal/ModalTitle.d.ts | 6 - dist/components/atoms/modal/index.d.ts | 6 - dist/components/atoms/modal/modal.test.d.ts | 1 - dist/components/hoc/WithSpinner.d.ts | 6 - dist/components/hoc/index.d.ts | 2 - dist/components/index.d.ts | 5 - dist/components/molecules/Accordion.d.ts | 8 - dist/components/molecules/AccountModal.d.ts | 15 - .../components/molecules/CopyTextTooltip.d.ts | 7 - dist/components/molecules/FAQSection.d.ts | 9 - .../molecules/FilterCheckboxCard.d.ts | 9 - dist/components/molecules/FooterColumn.d.ts | 13 - .../components/molecules/LabeledCheckbox.d.ts | 8 - dist/components/molecules/ModalDialogue.d.ts | 8 - .../molecules/RangeSliderWithInputs.d.ts | 16 - .../molecules/ShortenTextTooltip.d.ts | 8 - dist/components/molecules/StyledTabs.d.ts | 8 - dist/components/molecules/SwitchTabs.d.ts | 9 - .../molecules/TooltipIconButton.d.ts | 9 - dist/components/molecules/UnitsInput.d.ts | 12 - .../molecules/WrongNetworkModal.d.ts | 9 - dist/components/molecules/index.d.ts | 16 - dist/components/molecules/molecules.test.d.ts | 1 - dist/components/organisms/Account.d.ts | 19 - dist/components/organisms/Footer.d.ts | 9 - dist/components/organisms/Header/Header.d.ts | 4 - .../organisms/Header/HeaderDesktop.d.ts | 4 - .../organisms/Header/HeaderMobile.d.ts | 4 - .../organisms/Header/HeaderProps.d.ts | 16 - .../organisms/Header/HeaderTongue.d.ts | 8 - .../organisms/Header/header.test.d.ts | 1 - dist/components/organisms/Header/index.d.ts | 3 - dist/components/organisms/index.d.ts | 4 - dist/components/organisms/organisms.test.d.ts | 1 - .../components/templates/FAQPageTemplate.d.ts | 9 - dist/components/templates/PageTemplate.d.ts | 4 - dist/components/templates/index.d.ts | 3 - dist/components/templates/templates.test.d.ts | 1 - dist/doneThumbsUp~bbkTwQsx.svg | 19 - dist/footerTongue~bbJNSCWG.svg | 9 - dist/headerTongue~VLlRBGMc.svg | 16 - dist/index.css | 320 -- dist/index.d.ts | 7 - dist/index.js | 3415 ----------------- dist/index.js.map | 1 - dist/index.modern.js | 3277 ---------------- dist/index.modern.js.map | 1 - dist/logoBlackAndBlue~YbWCBYrQ.svg | 125 - dist/logoBlueIcon~qRLrrgXR.svg | 66 - dist/logoFullWhite~geFkQihC.svg | 48 - dist/metaMask~bnTqJLxK.svg | 3 - dist/models/Enums.d.ts | 7 - dist/models/NetworkInfo.d.ts | 16 - dist/models/ProviderInfo.d.ts | 22 - dist/nameService~UWbtQqmT.svg | 1 - dist/nifty~RMIWdZeg.png | Bin 5009 -> 0 bytes dist/providers/Web3Provider.d.ts | 45 - dist/providers/index.d.ts | 2 - dist/rifCom~udwpaCym.png | Bin 1642 -> 0 bytes dist/rifDir~bottaDNJ.png | Bin 3074 -> 0 bytes dist/rifGat~balFpEzC.png | Bin 1687 -> 0 bytes dist/rifMar~IDqKMWpK.png | Bin 1940 -> 0 bytes dist/rifPay~bdtOAceT.png | Bin 2457 -> 0 bytes dist/rifSto~fMRetflo.png | Bin 1321 -> 0 bytes dist/rskLogo~bdMEZSPk.svg | 58 - dist/services/Web3Service.d.ts | 15 - dist/services/index.d.ts | 5 - dist/storage~fCGkZtHN.svg | 1 - dist/theme/index.d.ts | 2 - dist/theme/theme.d.ts | 36 - dist/tickWide~bmvsBAER.svg | 3 - dist/utils.d.ts | 6 - 89 files changed, 1 insertion(+), 7926 deletions(-) delete mode 100644 dist/assets/images/icons/index.d.ts delete mode 100644 dist/assets/images/index.d.ts delete mode 100644 dist/assets/images/logos/index.d.ts delete mode 100644 dist/components/atoms/Button.d.ts delete mode 100644 dist/components/atoms/Checkbox.d.ts delete mode 100644 dist/components/atoms/LoginOption.d.ts delete mode 100644 dist/components/atoms/Logo.d.ts delete mode 100644 dist/components/atoms/LogoNavbar.d.ts delete mode 100644 dist/components/atoms/NetworkIndicator.d.ts delete mode 100644 dist/components/atoms/StyledNavTab.d.ts delete mode 100644 dist/components/atoms/atoms.test.d.ts delete mode 100644 dist/components/atoms/index.d.ts delete mode 100644 dist/components/atoms/modal/Modal.d.ts delete mode 100644 dist/components/atoms/modal/ModalBody.d.ts delete mode 100644 dist/components/atoms/modal/ModalFooter.d.ts delete mode 100644 dist/components/atoms/modal/ModalHeader.d.ts delete mode 100644 dist/components/atoms/modal/ModalTitle.d.ts delete mode 100644 dist/components/atoms/modal/index.d.ts delete mode 100644 dist/components/atoms/modal/modal.test.d.ts delete mode 100644 dist/components/hoc/WithSpinner.d.ts delete mode 100644 dist/components/hoc/index.d.ts delete mode 100644 dist/components/index.d.ts delete mode 100644 dist/components/molecules/Accordion.d.ts delete mode 100644 dist/components/molecules/AccountModal.d.ts delete mode 100644 dist/components/molecules/CopyTextTooltip.d.ts delete mode 100644 dist/components/molecules/FAQSection.d.ts delete mode 100644 dist/components/molecules/FilterCheckboxCard.d.ts delete mode 100644 dist/components/molecules/FooterColumn.d.ts delete mode 100644 dist/components/molecules/LabeledCheckbox.d.ts delete mode 100644 dist/components/molecules/ModalDialogue.d.ts delete mode 100644 dist/components/molecules/RangeSliderWithInputs.d.ts delete mode 100644 dist/components/molecules/ShortenTextTooltip.d.ts delete mode 100644 dist/components/molecules/StyledTabs.d.ts delete mode 100644 dist/components/molecules/SwitchTabs.d.ts delete mode 100644 dist/components/molecules/TooltipIconButton.d.ts delete mode 100644 dist/components/molecules/UnitsInput.d.ts delete mode 100644 dist/components/molecules/WrongNetworkModal.d.ts delete mode 100644 dist/components/molecules/index.d.ts delete mode 100644 dist/components/molecules/molecules.test.d.ts delete mode 100644 dist/components/organisms/Account.d.ts delete mode 100644 dist/components/organisms/Footer.d.ts delete mode 100644 dist/components/organisms/Header/Header.d.ts delete mode 100644 dist/components/organisms/Header/HeaderDesktop.d.ts delete mode 100644 dist/components/organisms/Header/HeaderMobile.d.ts delete mode 100644 dist/components/organisms/Header/HeaderProps.d.ts delete mode 100644 dist/components/organisms/Header/HeaderTongue.d.ts delete mode 100644 dist/components/organisms/Header/header.test.d.ts delete mode 100644 dist/components/organisms/Header/index.d.ts delete mode 100644 dist/components/organisms/index.d.ts delete mode 100644 dist/components/organisms/organisms.test.d.ts delete mode 100644 dist/components/templates/FAQPageTemplate.d.ts delete mode 100644 dist/components/templates/PageTemplate.d.ts delete mode 100644 dist/components/templates/index.d.ts delete mode 100644 dist/components/templates/templates.test.d.ts delete mode 100644 dist/doneThumbsUp~bbkTwQsx.svg delete mode 100644 dist/footerTongue~bbJNSCWG.svg delete mode 100644 dist/headerTongue~VLlRBGMc.svg delete mode 100644 dist/index.css delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 dist/index.modern.js delete mode 100644 dist/index.modern.js.map delete mode 100644 dist/logoBlackAndBlue~YbWCBYrQ.svg delete mode 100644 dist/logoBlueIcon~qRLrrgXR.svg delete mode 100644 dist/logoFullWhite~geFkQihC.svg delete mode 100644 dist/metaMask~bnTqJLxK.svg delete mode 100644 dist/models/Enums.d.ts delete mode 100644 dist/models/NetworkInfo.d.ts delete mode 100644 dist/models/ProviderInfo.d.ts delete mode 100644 dist/nameService~UWbtQqmT.svg delete mode 100644 dist/nifty~RMIWdZeg.png delete mode 100644 dist/providers/Web3Provider.d.ts delete mode 100644 dist/providers/index.d.ts delete mode 100644 dist/rifCom~udwpaCym.png delete mode 100644 dist/rifDir~bottaDNJ.png delete mode 100644 dist/rifGat~balFpEzC.png delete mode 100644 dist/rifMar~IDqKMWpK.png delete mode 100644 dist/rifPay~bdtOAceT.png delete mode 100644 dist/rifSto~fMRetflo.png delete mode 100644 dist/rskLogo~bdMEZSPk.svg delete mode 100644 dist/services/Web3Service.d.ts delete mode 100644 dist/services/index.d.ts delete mode 100644 dist/storage~fCGkZtHN.svg delete mode 100644 dist/theme/index.d.ts delete mode 100644 dist/theme/theme.d.ts delete mode 100644 dist/tickWide~bmvsBAER.svg delete mode 100644 dist/utils.d.ts diff --git a/.gitignore b/.gitignore index 8981b842..5544735c 100644 --- a/.gitignore +++ b/.gitignore @@ -21,5 +21,5 @@ npm-debug.log* yarn-debug.log* yarn-error.log* -# dist +dist src/react-app-env.d.ts \ No newline at end of file diff --git a/dist/assets/images/icons/index.d.ts b/dist/assets/images/icons/index.d.ts deleted file mode 100644 index abc38a8e..00000000 --- a/dist/assets/images/icons/index.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -import metaMaskIconImg from './metaMask.svg'; -import nameServiceImg from './nameService.svg'; -import niftyIconImg from './nifty.png'; -import rifComImg from './rifCom.png'; -import rifDirImg from './rifDir.png'; -import rifGatImg from './rifGat.png'; -import rifMarImg from './rifMar.png'; -import rifPayImg from './rifPay.png'; -import rifStoImg from './rifSto.png'; -import storageImg from './storage.svg'; -export { metaMaskIconImg, nameServiceImg, niftyIconImg, rifComImg, rifDirImg, rifGatImg, rifMarImg, rifPayImg, rifStoImg, storageImg, }; diff --git a/dist/assets/images/index.d.ts b/dist/assets/images/index.d.ts deleted file mode 100644 index 5fb09dd8..00000000 --- a/dist/assets/images/index.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import doneThumbsUpImg from './doneThumbsUp.svg'; -import footerTongueImg from './footerTongue.svg'; -import headerTongueImg from './headerTongue.svg'; -import tickWideImg from './tickWide.svg'; -export { doneThumbsUpImg, footerTongueImg, headerTongueImg, tickWideImg, }; -export * from './icons'; -export * from './logos'; diff --git a/dist/assets/images/logos/index.d.ts b/dist/assets/images/logos/index.d.ts deleted file mode 100644 index 8bea483b..00000000 --- a/dist/assets/images/logos/index.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import logoBlackAndBlue from './logoBlackAndBlue.svg'; -import logoBlueIcon from './logoBlueIcon.svg'; -import logoFullWhite from './logoFullWhite.svg'; -import rskLogo from './rskLogo.svg'; -export { logoBlackAndBlue, logoBlueIcon, logoFullWhite, rskLogo, }; diff --git a/dist/components/atoms/Button.d.ts b/dist/components/atoms/Button.d.ts deleted file mode 100644 index a040d3b1..00000000 --- a/dist/components/atoms/Button.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { FC } from 'react'; -import { ButtonProps as MUIButtonProps } from '@material-ui/core'; -export interface ButtonProps extends MUIButtonProps { - block?: boolean; - shadow?: boolean; - rounded?: boolean; -} -declare const Button: FC; -export default Button; diff --git a/dist/components/atoms/Checkbox.d.ts b/dist/components/atoms/Checkbox.d.ts deleted file mode 100644 index 9899a0d4..00000000 --- a/dist/components/atoms/Checkbox.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { FC } from 'react'; -import { CheckboxProps as MUICheckboxProps } from '@material-ui/core'; -export declare type CheckboxProps = MUICheckboxProps; -declare const Checkbox: FC; -export default Checkbox; diff --git a/dist/components/atoms/LoginOption.d.ts b/dist/components/atoms/LoginOption.d.ts deleted file mode 100644 index 00753458..00000000 --- a/dist/components/atoms/LoginOption.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { FC } from 'react'; -import ProviderInfo from '../../models/ProviderInfo'; -export interface LoginOptionProps { - className?: string; - onClick?: () => void; - providerInfo?: ProviderInfo; -} -/** - * If not providerInfo is received, we assume there's no provider available and so suggest to install Nifty wallet - * Same happens when no onClick is provided. We open the Nifty page on a new tab - */ -declare const LoginOption: FC; -export default LoginOption; diff --git a/dist/components/atoms/Logo.d.ts b/dist/components/atoms/Logo.d.ts deleted file mode 100644 index 800c51c4..00000000 --- a/dist/components/atoms/Logo.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import React, { FC } from 'react'; -declare const Logo: FC>; -export default Logo; diff --git a/dist/components/atoms/LogoNavbar.d.ts b/dist/components/atoms/LogoNavbar.d.ts deleted file mode 100644 index ffa56da3..00000000 --- a/dist/components/atoms/LogoNavbar.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import React, { FC } from 'react'; -interface LogoProps extends React.Props { - alt?: string; - height?: string | number; - style?: React.CSSProperties; -} -declare const LogoNavbar: FC; -export default LogoNavbar; diff --git a/dist/components/atoms/NetworkIndicator.d.ts b/dist/components/atoms/NetworkIndicator.d.ts deleted file mode 100644 index ae0f7876..00000000 --- a/dist/components/atoms/NetworkIndicator.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { FC } from 'react'; -export interface NetworkIndicatorProps { - iconClassName?: string; - currentNetworkId?: number; - requiredNetworkId?: number; - onCorrectNetworkMessage?: string; - onNetworkMismatchMessage?: string; - noNetworkMessage?: string; -} -export declare enum NetworkStatus { - NO_NETWORK = 1, - NETWORK_MISSMATCH = 2, - CORRECT_NETWORK = 3 -} -declare const NetworkIndicator: FC; -export default NetworkIndicator; diff --git a/dist/components/atoms/StyledNavTab.d.ts b/dist/components/atoms/StyledNavTab.d.ts deleted file mode 100644 index 944ced4e..00000000 --- a/dist/components/atoms/StyledNavTab.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { FC } from 'react'; -export interface StyledNavTabProps { - label: string; - to: string; - value: string; -} -declare const StyledNavTab: FC; -export default StyledNavTab; diff --git a/dist/components/atoms/atoms.test.d.ts b/dist/components/atoms/atoms.test.d.ts deleted file mode 100644 index 509db186..00000000 --- a/dist/components/atoms/atoms.test.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/dist/components/atoms/index.d.ts b/dist/components/atoms/index.d.ts deleted file mode 100644 index 7097584e..00000000 --- a/dist/components/atoms/index.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import Button from './Button'; -import Checkbox from './Checkbox'; -import LoginOption from './LoginOption'; -import Logo from './Logo'; -import LogoNavbar from './LogoNavbar'; -import StyledNavTab from './StyledNavTab'; -import NetworkIndicator from './NetworkIndicator'; -export * from './modal'; -export { Button, Checkbox, LoginOption, Logo, LogoNavbar, StyledNavTab, NetworkIndicator, }; diff --git a/dist/components/atoms/modal/Modal.d.ts b/dist/components/atoms/modal/Modal.d.ts deleted file mode 100644 index ae393ee0..00000000 --- a/dist/components/atoms/modal/Modal.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { FC } from 'react'; -import { ModalProps as MUIModalProps } from '@material-ui/core'; -export declare type ModalProps = MUIModalProps; -declare const Modal: FC; -export default Modal; diff --git a/dist/components/atoms/modal/ModalBody.d.ts b/dist/components/atoms/modal/ModalBody.d.ts deleted file mode 100644 index 10c17e18..00000000 --- a/dist/components/atoms/modal/ModalBody.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { FC } from 'react'; -export interface ModalBodyProps { - className?: string; -} -declare const ModalBody: FC; -export default ModalBody; diff --git a/dist/components/atoms/modal/ModalFooter.d.ts b/dist/components/atoms/modal/ModalFooter.d.ts deleted file mode 100644 index 2be73b49..00000000 --- a/dist/components/atoms/modal/ModalFooter.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { FC } from 'react'; -export interface ModalFooterProps { - className?: string; -} -declare const ModalFooter: FC; -export default ModalFooter; diff --git a/dist/components/atoms/modal/ModalHeader.d.ts b/dist/components/atoms/modal/ModalHeader.d.ts deleted file mode 100644 index fd144bd1..00000000 --- a/dist/components/atoms/modal/ModalHeader.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { FC } from 'react'; -export interface ModalHeaderProps { - className?: string; -} -declare const ModalHeader: FC; -export default ModalHeader; diff --git a/dist/components/atoms/modal/ModalTitle.d.ts b/dist/components/atoms/modal/ModalTitle.d.ts deleted file mode 100644 index f48fa1c5..00000000 --- a/dist/components/atoms/modal/ModalTitle.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { FC } from 'react'; -export interface ModalTitleProps { - className?: string; -} -declare const ModalTitle: FC; -export default ModalTitle; diff --git a/dist/components/atoms/modal/index.d.ts b/dist/components/atoms/modal/index.d.ts deleted file mode 100644 index 51b85f9a..00000000 --- a/dist/components/atoms/modal/index.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import Modal from './Modal'; -import ModalHeader from './ModalHeader'; -import ModalTitle from './ModalTitle'; -import ModalFooter from './ModalFooter'; -import ModalBody from './ModalBody'; -export { Modal, ModalHeader, ModalTitle, ModalFooter, ModalBody, }; diff --git a/dist/components/atoms/modal/modal.test.d.ts b/dist/components/atoms/modal/modal.test.d.ts deleted file mode 100644 index 509db186..00000000 --- a/dist/components/atoms/modal/modal.test.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/dist/components/hoc/WithSpinner.d.ts b/dist/components/hoc/WithSpinner.d.ts deleted file mode 100644 index e2567e8e..00000000 --- a/dist/components/hoc/WithSpinner.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import React from 'react'; -declare const WithSpinner: (WrappedComponent: React.ElementType) => ({ isLoading, ...props }: { - [x: string]: any; - isLoading: any; -}) => JSX.Element; -export default WithSpinner; diff --git a/dist/components/hoc/index.d.ts b/dist/components/hoc/index.d.ts deleted file mode 100644 index f5959194..00000000 --- a/dist/components/hoc/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import WithSpinner from './WithSpinner'; -export { WithSpinner }; diff --git a/dist/components/index.d.ts b/dist/components/index.d.ts deleted file mode 100644 index d361299b..00000000 --- a/dist/components/index.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from './atoms/index'; -export * from './hoc/index'; -export * from './molecules/index'; -export * from './organisms/index'; -export * from './templates/index'; diff --git a/dist/components/molecules/Accordion.d.ts b/dist/components/molecules/Accordion.d.ts deleted file mode 100644 index 675f38de..00000000 --- a/dist/components/molecules/Accordion.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { FC } from 'react'; -import { AccordionProps as MUIAccordionProps } from '@material-ui/core'; -interface AccordionProps extends MUIAccordionProps { - id: string; - title?: string; -} -declare const Accordion: FC; -export default Accordion; diff --git a/dist/components/molecules/AccountModal.d.ts b/dist/components/molecules/AccountModal.d.ts deleted file mode 100644 index a1d2e950..00000000 --- a/dist/components/molecules/AccountModal.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { FC } from 'react'; -import Web3 from 'web3'; -import ProviderInfo, { EProvider } from '../../models/ProviderInfo'; -import NetworkInfo from '../../models/NetworkInfo'; -export interface AccountModalProps { - web3?: Web3; - networkInfo?: NetworkInfo; - setProvider?: (provider: EProvider, onProviderSet?: (account?: string) => void) => Promise; - availableProviders?: ProviderInfo[]; - onClose?: () => void; - onProviderSet?: (account: any) => void; - open: boolean; -} -declare const AccountModal: FC; -export default AccountModal; diff --git a/dist/components/molecules/CopyTextTooltip.d.ts b/dist/components/molecules/CopyTextTooltip.d.ts deleted file mode 100644 index 35bf7aa0..00000000 --- a/dist/components/molecules/CopyTextTooltip.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import React, { FC } from 'react'; -export interface CopyTextTooltipProps { - displayElement: React.ReactElement; - fullText: string; -} -declare const CopyTextTooltip: FC; -export default CopyTextTooltip; diff --git a/dist/components/molecules/FAQSection.d.ts b/dist/components/molecules/FAQSection.d.ts deleted file mode 100644 index 6975e2c2..00000000 --- a/dist/components/molecules/FAQSection.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { FC } from 'react'; -export interface FAQSectionProps { - answer: string; - initiallyExpanded?: boolean; - question: string; - className?: string; -} -declare const FAQSection: FC; -export default FAQSection; diff --git a/dist/components/molecules/FilterCheckboxCard.d.ts b/dist/components/molecules/FilterCheckboxCard.d.ts deleted file mode 100644 index 7087f201..00000000 --- a/dist/components/molecules/FilterCheckboxCard.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import React, { FC } from 'react'; -import { LabeledCheckboxProps } from './LabeledCheckbox'; -export interface FilterCheckboxCardProps { - className?: string; - items: LabeledCheckboxProps[]; - onClick?: (event: React.MouseEvent) => void; -} -declare const FilterCheckboxCard: FC; -export default FilterCheckboxCard; diff --git a/dist/components/molecules/FooterColumn.d.ts b/dist/components/molecules/FooterColumn.d.ts deleted file mode 100644 index 20e39295..00000000 --- a/dist/components/molecules/FooterColumn.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { FC } from 'react'; -import { NavLinkProps } from 'react-router-dom'; -export interface FooterColumnProps { - className?: string; - links: FooterLinkProps[]; - title: string; -} -export interface FooterLinkProps extends NavLinkProps { - isExternal?: boolean; - title: string; -} -declare const FooterColumn: FC; -export default FooterColumn; diff --git a/dist/components/molecules/LabeledCheckbox.d.ts b/dist/components/molecules/LabeledCheckbox.d.ts deleted file mode 100644 index cb5b7bd3..00000000 --- a/dist/components/molecules/LabeledCheckbox.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { FC } from 'react'; -import { CheckboxProps } from '../atoms/Checkbox'; -export interface LabeledCheckboxProps extends CheckboxProps { - labelText: string; - labelClassName?: string; -} -declare const LabeledCheckbox: FC; -export default LabeledCheckbox; diff --git a/dist/components/molecules/ModalDialogue.d.ts b/dist/components/molecules/ModalDialogue.d.ts deleted file mode 100644 index bc5d771c..00000000 --- a/dist/components/molecules/ModalDialogue.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import React, { FC } from 'react'; -import { ModalProps } from '../atoms/modal/Modal'; -export interface ModalDialogueProps extends ModalProps { - title: string; - footer?: React.ReactElement; -} -declare const ModalDialogue: FC; -export default ModalDialogue; diff --git a/dist/components/molecules/RangeSliderWithInputs.d.ts b/dist/components/molecules/RangeSliderWithInputs.d.ts deleted file mode 100644 index bdbf253e..00000000 --- a/dist/components/molecules/RangeSliderWithInputs.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { SliderProps } from '@material-ui/core/Slider'; -import { FC } from 'react'; -export interface RangeSliderWithInputsProps extends SliderProps { - values: { - start: number; - end: number; - }; - unit?: string; - handleChange: ({ min, max }: { - min: any; - max: any; - }) => void; - className?: string; -} -declare const RangeSliderWithInputs: FC; -export default RangeSliderWithInputs; diff --git a/dist/components/molecules/ShortenTextTooltip.d.ts b/dist/components/molecules/ShortenTextTooltip.d.ts deleted file mode 100644 index b1e88374..00000000 --- a/dist/components/molecules/ShortenTextTooltip.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { FC } from 'react'; -export interface ShortenTextTooltipProps { - value: string; - maxLength?: number; - charsShownCount?: number; -} -declare const ShortenTextTooltip: FC; -export default ShortenTextTooltip; diff --git a/dist/components/molecules/StyledTabs.d.ts b/dist/components/molecules/StyledTabs.d.ts deleted file mode 100644 index 877954a2..00000000 --- a/dist/components/molecules/StyledTabs.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import React, { FC } from 'react'; -import { TabsProps } from '@material-ui/core/Tabs'; -export interface StyledTabsProps { - value: string; - onChange: (event: React.ChangeEvent<{}>, newValue: string) => void; -} -declare const StyledTabs: FC; -export default StyledTabs; diff --git a/dist/components/molecules/SwitchTabs.d.ts b/dist/components/molecules/SwitchTabs.d.ts deleted file mode 100644 index 6fe6c49c..00000000 --- a/dist/components/molecules/SwitchTabs.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import React, { FC } from 'react'; -export interface SwitchTabsProps { - label1: string; - label2: string; - value?: 0 | 1; - onChange: (event: React.ChangeEvent<{}>, value: number) => void; -} -declare const SwitchTabs: FC; -export default SwitchTabs; diff --git a/dist/components/molecules/TooltipIconButton.d.ts b/dist/components/molecules/TooltipIconButton.d.ts deleted file mode 100644 index 377db3d2..00000000 --- a/dist/components/molecules/TooltipIconButton.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import React, { FC } from 'react'; -import { IconButtonProps } from '@material-ui/core/IconButton'; -export interface TooltipIconButtonProps { - tooltipTitle: string; - iconButtonProps: IconButtonProps; - icon: React.ReactNode; -} -declare const TooltipIconButton: FC; -export default TooltipIconButton; diff --git a/dist/components/molecules/UnitsInput.d.ts b/dist/components/molecules/UnitsInput.d.ts deleted file mode 100644 index a307fee4..00000000 --- a/dist/components/molecules/UnitsInput.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import React, { FC } from 'react'; -import { InputProps } from '@material-ui/core/Input'; -export interface UnitsInputProps extends InputProps { - handleOnChange: (event: React.ChangeEvent) => void; - handleOnBlur?: () => void; - maxValue?: number; - minValue?: number; - step?: number; - units?: string; -} -declare const UnitsInput: FC; -export default UnitsInput; diff --git a/dist/components/molecules/WrongNetworkModal.d.ts b/dist/components/molecules/WrongNetworkModal.d.ts deleted file mode 100644 index 2343b11a..00000000 --- a/dist/components/molecules/WrongNetworkModal.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { FC } from 'react'; -export interface WrongNetworkModalProps { - open: boolean; - currentNetworkName?: string; - requiredNetworkName: string; - onClose: () => void; -} -declare const WrongNetworkModal: FC; -export default WrongNetworkModal; diff --git a/dist/components/molecules/index.d.ts b/dist/components/molecules/index.d.ts deleted file mode 100644 index 11ec64de..00000000 --- a/dist/components/molecules/index.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import Accordion from './Accordion'; -import AccountModal from './AccountModal'; -import CopyTextTooltip from './CopyTextTooltip'; -import FAQSection from './FAQSection'; -import FilterCheckboxCard from './FilterCheckboxCard'; -import FooterColumn from './FooterColumn'; -import LabeledCheckbox from './LabeledCheckbox'; -import ModalDialogue from './ModalDialogue'; -import RangeSliderWithInputs from './RangeSliderWithInputs'; -import ShortenTextTooltip from './ShortenTextTooltip'; -import StyledTabs from './StyledTabs'; -import SwitchTabs from './SwitchTabs'; -import TooltipIconButton from './TooltipIconButton'; -import UnitsInput from './UnitsInput'; -import WrongNetworkModal from './WrongNetworkModal'; -export { Accordion, AccountModal, CopyTextTooltip, FAQSection, FilterCheckboxCard, FooterColumn, LabeledCheckbox, ModalDialogue, RangeSliderWithInputs, ShortenTextTooltip, StyledTabs, SwitchTabs, TooltipIconButton, UnitsInput, WrongNetworkModal, }; diff --git a/dist/components/molecules/molecules.test.d.ts b/dist/components/molecules/molecules.test.d.ts deleted file mode 100644 index 509db186..00000000 --- a/dist/components/molecules/molecules.test.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/dist/components/organisms/Account.d.ts b/dist/components/organisms/Account.d.ts deleted file mode 100644 index cffc025c..00000000 --- a/dist/components/organisms/Account.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { FC } from 'react'; -import Web3 from 'web3'; -import ProviderInfo, { EProvider } from '../../models/ProviderInfo'; -import NetworkInfo from '../../models/NetworkInfo'; -export interface AccountProps { - requiredNetworkName: string; - setProvider?: (provider: EProvider) => Promise; - web3?: Web3; - networkInfo?: NetworkInfo; - account?: string; - availableProviders?: ProviderInfo[]; - requiredNetworkId?: number; - onCorrectNetworkMessage?: string; - onNetworkMismatchMessage?: string; - noNetworkMessage?: string; - modalInitiallyOpened?: boolean; -} -declare const Account: FC; -export default Account; diff --git a/dist/components/organisms/Footer.d.ts b/dist/components/organisms/Footer.d.ts deleted file mode 100644 index c0f459fc..00000000 --- a/dist/components/organisms/Footer.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { FC, HTMLAttributes } from 'react'; -import { FooterColumnProps } from '../molecules/FooterColumn'; -export interface FooterProps extends HTMLAttributes { - className?: string; - copyrightText: string; - linksColumns: FooterColumnProps[]; -} -declare const Footer: FC; -export default Footer; diff --git a/dist/components/organisms/Header/Header.d.ts b/dist/components/organisms/Header/Header.d.ts deleted file mode 100644 index 58f14e8f..00000000 --- a/dist/components/organisms/Header/Header.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { FC } from 'react'; -import { HeaderProps } from './HeaderProps'; -declare const Header: FC; -export default Header; diff --git a/dist/components/organisms/Header/HeaderDesktop.d.ts b/dist/components/organisms/Header/HeaderDesktop.d.ts deleted file mode 100644 index 64a12f43..00000000 --- a/dist/components/organisms/Header/HeaderDesktop.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { FC } from 'react'; -import { HeaderProps } from './HeaderProps'; -declare const HeaderDesktop: FC; -export default HeaderDesktop; diff --git a/dist/components/organisms/Header/HeaderMobile.d.ts b/dist/components/organisms/Header/HeaderMobile.d.ts deleted file mode 100644 index 54b0f726..00000000 --- a/dist/components/organisms/Header/HeaderMobile.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { FC } from 'react'; -import { HeaderProps } from './HeaderProps'; -declare const HeaderMobile: FC; -export default HeaderMobile; diff --git a/dist/components/organisms/Header/HeaderProps.d.ts b/dist/components/organisms/Header/HeaderProps.d.ts deleted file mode 100644 index 8fc74f51..00000000 --- a/dist/components/organisms/Header/HeaderProps.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { NavLinkProps } from 'react-router-dom'; -import { HTMLAttributes, ReactElement } from 'react'; -export interface HeaderProps { - hreflogo: string; - itemsStart: NavItemProps[]; - itemsEnd?: ActionHeaderItemProps[]; - login: React.ElementType; -} -export declare type NavItemProps = NavLinkProps & NavHeaderItemProps; -export declare type NavHeaderItemProps = { - icon?: ReactElement; - title: string; -}; -export declare type ActionHeaderItemProps = { - icon: ReactElement; -} & Partial>; diff --git a/dist/components/organisms/Header/HeaderTongue.d.ts b/dist/components/organisms/Header/HeaderTongue.d.ts deleted file mode 100644 index ce4dd1c5..00000000 --- a/dist/components/organisms/Header/HeaderTongue.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { FC } from 'react'; -export interface HeaderTongueProps { - description: string; - titleLine1: string; - titleLine2: string; -} -declare const HeaderTongue: FC; -export default HeaderTongue; diff --git a/dist/components/organisms/Header/header.test.d.ts b/dist/components/organisms/Header/header.test.d.ts deleted file mode 100644 index 509db186..00000000 --- a/dist/components/organisms/Header/header.test.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/dist/components/organisms/Header/index.d.ts b/dist/components/organisms/Header/index.d.ts deleted file mode 100644 index 40fa7051..00000000 --- a/dist/components/organisms/Header/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Header from './Header'; -import HeaderTongue from './HeaderTongue'; -export { Header, HeaderTongue }; diff --git a/dist/components/organisms/index.d.ts b/dist/components/organisms/index.d.ts deleted file mode 100644 index 8131e548..00000000 --- a/dist/components/organisms/index.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import Footer from './Footer'; -import Account from './Account'; -export * from './Header/index'; -export { Account, Footer }; diff --git a/dist/components/organisms/organisms.test.d.ts b/dist/components/organisms/organisms.test.d.ts deleted file mode 100644 index 509db186..00000000 --- a/dist/components/organisms/organisms.test.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/dist/components/templates/FAQPageTemplate.d.ts b/dist/components/templates/FAQPageTemplate.d.ts deleted file mode 100644 index fd5ebf3a..00000000 --- a/dist/components/templates/FAQPageTemplate.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { FC } from 'react'; -import { FAQSectionProps } from '../molecules/FAQSection'; -export interface FAQPageTemplateProps { - className?: string; - mainTitle: string; - questionsAndAnswers: FAQSectionProps[]; -} -declare const FAQPageTemplate: FC; -export default FAQPageTemplate; diff --git a/dist/components/templates/PageTemplate.d.ts b/dist/components/templates/PageTemplate.d.ts deleted file mode 100644 index 705e0639..00000000 --- a/dist/components/templates/PageTemplate.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { FC, HTMLAttributes } from 'react'; -export declare type PageTemplateProps = HTMLAttributes; -declare const PageTemplate: FC; -export default PageTemplate; diff --git a/dist/components/templates/index.d.ts b/dist/components/templates/index.d.ts deleted file mode 100644 index 4b6ed98c..00000000 --- a/dist/components/templates/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import FAQPageTemplate from './FAQPageTemplate'; -import PageTemplate from './PageTemplate'; -export { FAQPageTemplate, PageTemplate }; diff --git a/dist/components/templates/templates.test.d.ts b/dist/components/templates/templates.test.d.ts deleted file mode 100644 index 509db186..00000000 --- a/dist/components/templates/templates.test.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/dist/doneThumbsUp~bbkTwQsx.svg b/dist/doneThumbsUp~bbkTwQsx.svg deleted file mode 100644 index cb14991d..00000000 --- a/dist/doneThumbsUp~bbkTwQsx.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/dist/footerTongue~bbJNSCWG.svg b/dist/footerTongue~bbJNSCWG.svg deleted file mode 100644 index acc3fcdb..00000000 --- a/dist/footerTongue~bbJNSCWG.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - diff --git a/dist/headerTongue~VLlRBGMc.svg b/dist/headerTongue~VLlRBGMc.svg deleted file mode 100644 index 8f76810c..00000000 --- a/dist/headerTongue~VLlRBGMc.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - diff --git a/dist/index.css b/dist/index.css deleted file mode 100644 index 294876af..00000000 --- a/dist/index.css +++ /dev/null @@ -1,320 +0,0 @@ -/* cyrillic */ -@font-face { - font-family: 'Rubik'; - font-style: italic; - font-weight: 300; - src: local('Rubik Light Italic'), local('Rubik-LightItalic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nEldWYwWb-6aJ8x8utUQ.woff2) format('woff2'); - unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; -} -/* hebrew */ -@font-face { - font-family: 'Rubik'; - font-style: italic; - font-weight: 300; - src: local('Rubik Light Italic'), local('Rubik-LightItalic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nEldWYwWD-6aJ8x8utUQ.woff2) format('woff2'); - unicode-range: U+0590-05FF, U+20AA, U+25CC, U+FB1D-FB4F; -} -/* latin-ext */ -@font-face { - font-family: 'Rubik'; - font-style: italic; - font-weight: 300; - src: local('Rubik Light Italic'), local('Rubik-LightItalic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nEldWYwWz-6aJ8x8utUQ.woff2) format('woff2'); - unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; -} -/* latin */ -@font-face { - font-family: 'Rubik'; - font-style: italic; - font-weight: 300; - src: local('Rubik Light Italic'), local('Rubik-LightItalic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nEldWYwWL-6aJ8x8s.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} -/* cyrillic */ -@font-face { - font-family: 'Rubik'; - font-style: italic; - font-weight: 400; - src: local('Rubik Italic'), local('Rubik-Italic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWEBXyIfDnIV7nEnXq61E_c5IhGzg.woff2) format('woff2'); - unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; -} -/* hebrew */ -@font-face { - font-family: 'Rubik'; - font-style: italic; - font-weight: 400; - src: local('Rubik Italic'), local('Rubik-Italic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWEBXyIfDnIV7nEnXy61E_c5IhGzg.woff2) format('woff2'); - unicode-range: U+0590-05FF, U+20AA, U+25CC, U+FB1D-FB4F; -} -/* latin-ext */ -@font-face { - font-family: 'Rubik'; - font-style: italic; - font-weight: 400; - src: local('Rubik Italic'), local('Rubik-Italic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWEBXyIfDnIV7nEnXC61E_c5IhGzg.woff2) format('woff2'); - unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; -} -/* latin */ -@font-face { - font-family: 'Rubik'; - font-style: italic; - font-weight: 400; - src: local('Rubik Italic'), local('Rubik-Italic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWEBXyIfDnIV7nEnX661E_c5Ig.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} -/* cyrillic */ -@font-face { - font-family: 'Rubik'; - font-style: italic; - font-weight: 500; - src: local('Rubik Medium Italic'), local('Rubik-MediumItalic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nElY2ZwWb-6aJ8x8utUQ.woff2) format('woff2'); - unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; -} -/* hebrew */ -@font-face { - font-family: 'Rubik'; - font-style: italic; - font-weight: 500; - src: local('Rubik Medium Italic'), local('Rubik-MediumItalic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nElY2ZwWD-6aJ8x8utUQ.woff2) format('woff2'); - unicode-range: U+0590-05FF, U+20AA, U+25CC, U+FB1D-FB4F; -} -/* latin-ext */ -@font-face { - font-family: 'Rubik'; - font-style: italic; - font-weight: 500; - src: local('Rubik Medium Italic'), local('Rubik-MediumItalic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nElY2ZwWz-6aJ8x8utUQ.woff2) format('woff2'); - unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; -} -/* latin */ -@font-face { - font-family: 'Rubik'; - font-style: italic; - font-weight: 500; - src: local('Rubik Medium Italic'), local('Rubik-MediumItalic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nElY2ZwWL-6aJ8x8s.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} -/* cyrillic */ -@font-face { - font-family: 'Rubik'; - font-style: italic; - font-weight: 700; - src: local('Rubik Bold Italic'), local('Rubik-BoldItalic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nElcWfwWb-6aJ8x8utUQ.woff2) format('woff2'); - unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; -} -/* hebrew */ -@font-face { - font-family: 'Rubik'; - font-style: italic; - font-weight: 700; - src: local('Rubik Bold Italic'), local('Rubik-BoldItalic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nElcWfwWD-6aJ8x8utUQ.woff2) format('woff2'); - unicode-range: U+0590-05FF, U+20AA, U+25CC, U+FB1D-FB4F; -} -/* latin-ext */ -@font-face { - font-family: 'Rubik'; - font-style: italic; - font-weight: 700; - src: local('Rubik Bold Italic'), local('Rubik-BoldItalic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nElcWfwWz-6aJ8x8utUQ.woff2) format('woff2'); - unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; -} -/* latin */ -@font-face { - font-family: 'Rubik'; - font-style: italic; - font-weight: 700; - src: local('Rubik Bold Italic'), local('Rubik-BoldItalic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nElcWfwWL-6aJ8x8s.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} -/* cyrillic */ -@font-face { - font-family: 'Rubik'; - font-style: italic; - font-weight: 900; - src: local('Rubik Black Italic'), local('Rubik-BlackItalic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nElf2dwWb-6aJ8x8utUQ.woff2) format('woff2'); - unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; -} -/* hebrew */ -@font-face { - font-family: 'Rubik'; - font-style: italic; - font-weight: 900; - src: local('Rubik Black Italic'), local('Rubik-BlackItalic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nElf2dwWD-6aJ8x8utUQ.woff2) format('woff2'); - unicode-range: U+0590-05FF, U+20AA, U+25CC, U+FB1D-FB4F; -} -/* latin-ext */ -@font-face { - font-family: 'Rubik'; - font-style: italic; - font-weight: 900; - src: local('Rubik Black Italic'), local('Rubik-BlackItalic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nElf2dwWz-6aJ8x8utUQ.woff2) format('woff2'); - unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; -} -/* latin */ -@font-face { - font-family: 'Rubik'; - font-style: italic; - font-weight: 900; - src: local('Rubik Black Italic'), local('Rubik-BlackItalic'), url(https://fonts.gstatic.com/s/rubik/v9/iJWBBXyIfDnIV7nElf2dwWL-6aJ8x8s.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} -/* cyrillic */ -@font-face { - font-family: 'Rubik'; - font-style: normal; - font-weight: 300; - src: local('Rubik Light'), local('Rubik-Light'), url(https://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7Fqj2mZ8WD07oB-98o.woff2) format('woff2'); - unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; -} -/* hebrew */ -@font-face { - font-family: 'Rubik'; - font-style: normal; - font-weight: 300; - src: local('Rubik Light'), local('Rubik-Light'), url(https://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7Fqj2mf8WD07oB-98o.woff2) format('woff2'); - unicode-range: U+0590-05FF, U+20AA, U+25CC, U+FB1D-FB4F; -} -/* latin-ext */ -@font-face { - font-family: 'Rubik'; - font-style: normal; - font-weight: 300; - src: local('Rubik Light'), local('Rubik-Light'), url(https://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7Fqj2mT8WD07oB-98o.woff2) format('woff2'); - unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; -} -/* latin */ -@font-face { - font-family: 'Rubik'; - font-style: normal; - font-weight: 300; - src: local('Rubik Light'), local('Rubik-Light'), url(https://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7Fqj2md8WD07oB-.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} -/* cyrillic */ -@font-face { - font-family: 'Rubik'; - font-style: normal; - font-weight: 400; - src: local('Rubik'), local('Rubik-Regular'), url(https://fonts.gstatic.com/s/rubik/v9/iJWKBXyIfDnIV7nFrXyw023e1Ik.woff2) format('woff2'); - unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; -} -/* hebrew */ -@font-face { - font-family: 'Rubik'; - font-style: normal; - font-weight: 400; - src: local('Rubik'), local('Rubik-Regular'), url(https://fonts.gstatic.com/s/rubik/v9/iJWKBXyIfDnIV7nDrXyw023e1Ik.woff2) format('woff2'); - unicode-range: U+0590-05FF, U+20AA, U+25CC, U+FB1D-FB4F; -} -/* latin-ext */ -@font-face { - font-family: 'Rubik'; - font-style: normal; - font-weight: 400; - src: local('Rubik'), local('Rubik-Regular'), url(https://fonts.gstatic.com/s/rubik/v9/iJWKBXyIfDnIV7nPrXyw023e1Ik.woff2) format('woff2'); - unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; -} -/* latin */ -@font-face { - font-family: 'Rubik'; - font-style: normal; - font-weight: 400; - src: local('Rubik'), local('Rubik-Regular'), url(https://fonts.gstatic.com/s/rubik/v9/iJWKBXyIfDnIV7nBrXyw023e.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} -/* cyrillic */ -@font-face { - font-family: 'Rubik'; - font-style: normal; - font-weight: 500; - src: local('Rubik Medium'), local('Rubik-Medium'), url(https://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7EyjmmZ8WD07oB-98o.woff2) format('woff2'); - unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; -} -/* hebrew */ -@font-face { - font-family: 'Rubik'; - font-style: normal; - font-weight: 500; - src: local('Rubik Medium'), local('Rubik-Medium'), url(https://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7Eyjmmf8WD07oB-98o.woff2) format('woff2'); - unicode-range: U+0590-05FF, U+20AA, U+25CC, U+FB1D-FB4F; -} -/* latin-ext */ -@font-face { - font-family: 'Rubik'; - font-style: normal; - font-weight: 500; - src: local('Rubik Medium'), local('Rubik-Medium'), url(https://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7EyjmmT8WD07oB-98o.woff2) format('woff2'); - unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; -} -/* latin */ -@font-face { - font-family: 'Rubik'; - font-style: normal; - font-weight: 500; - src: local('Rubik Medium'), local('Rubik-Medium'), url(https://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7Eyjmmd8WD07oB-.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} -/* cyrillic */ -@font-face { - font-family: 'Rubik'; - font-style: normal; - font-weight: 700; - src: local('Rubik Bold'), local('Rubik-Bold'), url(https://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7F6iGmZ8WD07oB-98o.woff2) format('woff2'); - unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; -} -/* hebrew */ -@font-face { - font-family: 'Rubik'; - font-style: normal; - font-weight: 700; - src: local('Rubik Bold'), local('Rubik-Bold'), url(https://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7F6iGmf8WD07oB-98o.woff2) format('woff2'); - unicode-range: U+0590-05FF, U+20AA, U+25CC, U+FB1D-FB4F; -} -/* latin-ext */ -@font-face { - font-family: 'Rubik'; - font-style: normal; - font-weight: 700; - src: local('Rubik Bold'), local('Rubik-Bold'), url(https://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7F6iGmT8WD07oB-98o.woff2) format('woff2'); - unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; -} -/* latin */ -@font-face { - font-family: 'Rubik'; - font-style: normal; - font-weight: 700; - src: local('Rubik Bold'), local('Rubik-Bold'), url(https://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7F6iGmd8WD07oB-.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} -/* cyrillic */ -@font-face { - font-family: 'Rubik'; - font-style: normal; - font-weight: 900; - src: local('Rubik Black'), local('Rubik-Black'), url(https://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7FCimmZ8WD07oB-98o.woff2) format('woff2'); - unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; -} -/* hebrew */ -@font-face { - font-family: 'Rubik'; - font-style: normal; - font-weight: 900; - src: local('Rubik Black'), local('Rubik-Black'), url(https://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7FCimmf8WD07oB-98o.woff2) format('woff2'); - unicode-range: U+0590-05FF, U+20AA, U+25CC, U+FB1D-FB4F; -} -/* latin-ext */ -@font-face { - font-family: 'Rubik'; - font-style: normal; - font-weight: 900; - src: local('Rubik Black'), local('Rubik-Black'), url(https://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7FCimmT8WD07oB-98o.woff2) format('woff2'); - unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; -} -/* latin */ -@font-face { - font-family: 'Rubik'; - font-style: normal; - font-weight: 900; - src: local('Rubik Black'), local('Rubik-Black'), url(https://fonts.gstatic.com/s/rubik/v9/iJWHBXyIfDnIV7FCimmd8WD07oB-.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 024b1004..00000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import './assets/css/fonts/rubik.css'; -export * from './components/index'; -export * from './assets/images'; -export * from './providers/index'; -export * from './services/index'; -export * from './theme/index'; -export * from './utils'; diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index baa8a590..00000000 --- a/dist/index.js +++ /dev/null @@ -1,3415 +0,0 @@ -function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } - -var React = require('react'); -var React__default = _interopDefault(React); -var core = require('@material-ui/core'); -var styles = require('@material-ui/core/styles'); -var icons = require('@material-ui/icons'); -var Tab = _interopDefault(require('@material-ui/core/Tab')); -var reactRouterDom = require('react-router-dom'); -var Tooltip = _interopDefault(require('@material-ui/core/Tooltip')); -var CheckCircleOutlineOutlinedIcon = _interopDefault(require('@material-ui/icons/CheckCircleOutlineOutlined')); -var ErrorIcon = _interopDefault(require('@material-ui/icons/Error')); -var WarningIcon = _interopDefault(require('@material-ui/icons/Warning')); -var colors$1 = require('@material-ui/core/colors'); -var Typography = _interopDefault(require('@material-ui/core/Typography')); -var AccordionDetails = _interopDefault(require('@material-ui/core/AccordionDetails')); -var AccordionSummary = _interopDefault(require('@material-ui/core/AccordionSummary')); -var ExpandMoreIcon = _interopDefault(require('@material-ui/icons/ExpandMore')); -var FileCopyIcon = _interopDefault(require('@material-ui/icons/FileCopy')); -var Accordion$1 = _interopDefault(require('@material-ui/core/Accordion')); -var AddIcon = _interopDefault(require('@material-ui/icons/Add')); -var RemoveIcon = _interopDefault(require('@material-ui/icons/Remove')); -var Slider = _interopDefault(require('@material-ui/core/Slider')); -var Input = _interopDefault(require('@material-ui/core/Input')); -var Grid = _interopDefault(require('@material-ui/core/Grid')); -var Tabs = _interopDefault(require('@material-ui/core/Tabs')); -var IconButton = _interopDefault(require('@material-ui/core/IconButton')); -var Box = _interopDefault(require('@material-ui/core/Box')); -var CircularProgress = _interopDefault(require('@material-ui/core/CircularProgress')); -var Popover = _interopDefault(require('@material-ui/core/Popover')); -var Web3 = _interopDefault(require('web3')); -var Hidden = _interopDefault(require('@material-ui/core/Hidden')); -var MenuIcon = _interopDefault(require('@material-ui/icons/Menu')); -var ChevronLeftIcon = _interopDefault(require('@material-ui/icons/ChevronLeft')); - -const useStyles = styles.makeStyles(() => ({ - block: { - width: '100%' - }, - noShadow: { - boxShadow: 'none' - }, - rounded: { - borderRadius: 50 - } -})); - -const Button = ({ - className = '', - block, - shadow, - rounded, - children, - ...rest -}) => { - const classes = useStyles(); - return React__default.createElement(core.Button, Object.assign({ - className: `${rounded ? classes.rounded : ''} - ${shadow ? '' : classes.noShadow} - ${block ? classes.block : ''} ${className}`.trim() - }, rest), children); -}; - -const colors = { - black: '#000000', - primary: '#008FF7', - darkBlue: '#197DC6', - gray1: '#F8F7F7', - gray2: '#E5E5E5', - gray3: '#C4C4C4', - gray4: '#919191', - gray5: '#4D4C4C', - gray6: '#15171B', - transparent: '#FFFFFF00', - white: '#FFFFFF' -}; -const fonts = { - family: 'Rubik', - size: { - tiny: 10, - small: 12, - normal: 14, - medium: 16, - subtitleSmall: 18, - subtitleBig: 22 - }, - weight: { - light: 300, - regular: 400, - medium: 500, - bold: 700 - } -}; -const globalConstants = { - headerHeight: 8 -}; -const theme = styles.createMuiTheme({ - palette: { - primary: { - main: colors.primary - }, - secondary: { - main: colors.gray4 - } - }, - typography: { - fontFamily: fonts.family, - button: { - textTransform: 'none' - }, - fontWeightLight: fonts.weight.light, - fontWeightRegular: fonts.weight.regular, - fontWeightMedium: fonts.weight.medium, - fontWeightBold: fonts.weight.bold, - body1: { - fontWeight: fonts.weight.light - } - }, - props: {}, - overrides: { - MuiButton: { - root: { - fontWeight: fonts.weight.light - } - }, - MuiFormControlLabel: { - root: { - color: colors.gray3 - } - }, - MuiSlider: { - rail: { - color: colors.gray3, - height: 4, - opacity: 1 - }, - root: { - width: '100%', - color: colors.primary, - height: 4 - }, - track: { - height: 4 - }, - thumb: { - marginLeft: -4, - height: 14, - width: 14 - } - }, - MuiTextField: { - root: { - color: colors.gray3, - '&:hover': { - color: colors.gray2 - } - } - } - } -}); - -const useStyles$1 = core.makeStyles(() => core.createStyles({ - unCheckedIcon: { - color: colors.gray4 - }, - checkedIcon: { - color: colors.primary - } -})); - -const Checkbox = props => { - const classes = useStyles$1(); - const { - checked - } = props; - const [isChecked, setIsChecked] = React.useState(!!checked); - - const handleChange = (event, newChecked) => { - setIsChecked(newChecked); - const { - onChange - } = props; - if (onChange) onChange(event, newChecked); - }; - - return React__default.createElement(core.Checkbox, Object.assign({ - checkedIcon: React__default.createElement(icons.CheckBoxSharp, { - className: classes.checkedIcon - }), - icon: React__default.createElement(icons.CheckBoxOutlineBlankSharp, { - className: classes.unCheckedIcon - }) - }, props, { - checked: isChecked, - onChange: handleChange - })); -}; - -var doneThumbsUp = require("./doneThumbsUp~bbkTwQsx.svg"); - -var footerTongue = require("./footerTongue~bbJNSCWG.svg"); - -var headerTongueImg = require("./headerTongue~VLlRBGMc.svg"); - -var tickWide = require("./tickWide~bmvsBAER.svg"); - -var metaMaskIconImg = require("./metaMask~bnTqJLxK.svg"); - -var nameService = require("./nameService~UWbtQqmT.svg"); - -var niftyIconImg = require("./nifty~RMIWdZeg.png"); - -var rifCom = require("./rifCom~udwpaCym.png"); - -var rifDir = require("./rifDir~bottaDNJ.png"); - -var rifGat = require("./rifGat~balFpEzC.png"); - -var rifMar = require("./rifMar~IDqKMWpK.png"); - -var rifPay = require("./rifPay~bdtOAceT.png"); - -var rifSto = require("./rifSto~fMRetflo.png"); - -var storage = require("./storage~fCGkZtHN.svg"); - -var logoBlackAndBlue = require("./logoBlackAndBlue~YbWCBYrQ.svg"); - -var logoBlueIcon = require("./logoBlueIcon~qRLrrgXR.svg"); - -var logoFullWhite = require("./logoFullWhite~geFkQihC.svg"); - -var rskLogo = require("./rskLogo~bdMEZSPk.svg"); - -var EProvider; - -(function (EProvider) { - EProvider["METAMASK"] = "Metamask"; - EProvider["NIFTY"] = "Nifty"; - EProvider["LEDGER"] = "Ledger"; - EProvider["TREZOR"] = "Trezor"; - EProvider["TRUST"] = "Trust"; - EProvider["LOCAL"] = "Localhost"; - EProvider["GO_WALLET"] = "GoWallet"; - EProvider["ALPHA_WALLET"] = "AlphaWallet"; - EProvider["STATUS"] = "status"; - EProvider["CIPHER"] = "cipher"; - EProvider["COINBASE"] = "coinbase"; - EProvider["MIST"] = "mist"; - EProvider["PARITY"] = "parity"; - EProvider["INFURA"] = "infura"; -})(EProvider || (EProvider = {})); - -const getProviderInfo = eProvider => { - switch (eProvider) { - case EProvider.METAMASK: - return { - name: 'MetaMask', - eProvider, - iconImg: metaMaskIconImg - }; - - case EProvider.NIFTY: - return { - name: 'Nifty', - eProvider, - iconImg: niftyIconImg - }; - - case EProvider.LEDGER: - return { - name: 'Ledger', - eProvider - }; - - case EProvider.TREZOR: - return { - name: 'Trezor', - eProvider - }; - - case EProvider.TRUST: - return { - name: 'Trust', - eProvider - }; - - case EProvider.GO_WALLET: - return { - name: 'Go Wallet', - eProvider - }; - - case EProvider.ALPHA_WALLET: - return { - name: 'Alpha Wallet', - eProvider - }; - - case EProvider.STATUS: - return { - name: 'Status', - eProvider - }; - - case EProvider.COINBASE: - return { - name: 'Coinbase', - eProvider - }; - - case EProvider.MIST: - return { - name: 'Mist', - eProvider - }; - - case EProvider.PARITY: - return { - name: 'Parity', - eProvider - }; - - case EProvider.INFURA: - return { - name: 'Infura', - eProvider - }; - - case EProvider.LOCAL: - return { - name: 'Localhost', - eProvider - }; - - default: - { - throw new Error(`EProvider not implemented or unknown. Chosen provider ${eProvider}`); - } - } -}; - -const useStyles$2 = core.makeStyles(theme => ({ - root: { - padding: 5, - margin: 5, - width: '100%' - }, - content: { - display: 'flex', - alignItems: 'center', - width: '100%', - maxHeight: theme.spacing(5), - justifyContent: 'center' - }, - imageWrapper: { - maxHeight: theme.spacing(4), - marginRight: theme.spacing(2) - } -})); - -const LoginOption = ({ - className = '', - onClick, - providerInfo, - ...rest -}) => { - const classes = useStyles$2(); - const providerContent = React__default.createElement("div", { - className: classes.content - }, (providerInfo === null || providerInfo === void 0 ? void 0 : providerInfo.iconImg) && React__default.createElement("img", { - className: classes.imageWrapper, - src: providerInfo === null || providerInfo === void 0 ? void 0 : providerInfo.iconImg, - alt: `${providerInfo === null || providerInfo === void 0 ? void 0 : providerInfo.name} icon` - }), providerInfo === null || providerInfo === void 0 ? void 0 : providerInfo.name); - - const handleOnClick = () => { - if (onClick) { - return onClick(); - } - - return window.open('https://www.poa.network/for-users/nifty-wallet/getting-started', '_blank'); - }; - - return React__default.createElement(Button, Object.assign({ - className: `${classes.root} ${className}`, - block: true, - rounded: true, - variant: "outlined", - color: "primary", - onClick: handleOnClick - }, rest), !!providerInfo && providerInfo.eProvider === EProvider.NIFTY && React__default.createElement(core.Tooltip, { - arrow: true, - title: "Please, make sure you only have one browser wallet enabled." - }, providerContent), !!providerInfo && providerInfo.eProvider !== EProvider.NIFTY && providerContent, !providerInfo && React__default.createElement("div", { - className: classes.content - }, React__default.createElement("img", { - className: classes.imageWrapper, - src: niftyIconImg, - alt: "Nifty wallet icon" - }), "Install Nifty wallet")); -}; - -const Logo = ({ - alt = 'RIF OS logo', - ...rest -}) => React__default.createElement("img", Object.assign({ - src: logoFullWhite, - alt: alt -}, rest)); - -const LogoNavbar = ({ - alt = 'navbar logo', - height = '44px', - ...rest -}) => React__default.createElement("img", Object.assign({ - src: logoFullWhite, - alt: alt, - height: height -}, rest)); - -const useStyles$3 = styles.makeStyles(theme => ({ - root: { - textTransform: 'none', - color: colors.gray5, - fontWeight: theme.typography.fontWeightRegular, - fontSize: theme.typography.pxToRem(15), - marginRight: theme.spacing(1), - '&:focus': { - opacity: 1 - } - }, - selected: { - fontWeight: theme.typography.fontWeightMedium, - borderBottom: '2px solid #000000' - } -})); - -const StyledNavTab = props => { - const classes = useStyles$3(); - return React__default.createElement(Tab, Object.assign({ - classes: classes, - component: reactRouterDom.NavLink, - disableRipple: true - }, props)); -}; - -const defaultonCorrectNetworkMessage = 'You are on the right network'; -const deaulftonNetworkMismatchMessage = 'You are on the wrong network'; -const defaultNoNetworkMessage = 'You are not connected to any network'; -var NetworkStatus; - -(function (NetworkStatus) { - NetworkStatus[NetworkStatus["NO_NETWORK"] = 1] = "NO_NETWORK"; - NetworkStatus[NetworkStatus["NETWORK_MISSMATCH"] = 2] = "NETWORK_MISSMATCH"; - NetworkStatus[NetworkStatus["CORRECT_NETWORK"] = 3] = "CORRECT_NETWORK"; -})(NetworkStatus || (NetworkStatus = {})); - -const getNetworkStatus = (currentNetworkId, requiredNetworkId) => { - if (!currentNetworkId) return NetworkStatus.NO_NETWORK; - if (currentNetworkId === requiredNetworkId) return NetworkStatus.CORRECT_NETWORK; - return NetworkStatus.NETWORK_MISSMATCH; -}; - -const NetworkIndicator = ({ - iconClassName = '', - currentNetworkId, - requiredNetworkId, - onCorrectNetworkMessage, - onNetworkMismatchMessage, - noNetworkMessage -}) => { - const networkStatus = getNetworkStatus(currentNetworkId, requiredNetworkId); - const iconPerNetworkStatus = new Map(); - iconPerNetworkStatus.set(NetworkStatus.NO_NETWORK, React__default.createElement(Tooltip, { - title: noNetworkMessage || defaultNoNetworkMessage - }, React__default.createElement(WarningIcon, { - className: iconClassName, - style: { - color: colors$1.yellow[800] - } - }))); - iconPerNetworkStatus.set(NetworkStatus.NETWORK_MISSMATCH, React__default.createElement(Tooltip, { - title: onNetworkMismatchMessage || deaulftonNetworkMismatchMessage - }, React__default.createElement(ErrorIcon, { - className: iconClassName, - color: "error" - }))); - iconPerNetworkStatus.set(NetworkStatus.CORRECT_NETWORK, React__default.createElement(Tooltip, { - title: onCorrectNetworkMessage || defaultonCorrectNetworkMessage - }, React__default.createElement(CheckCircleOutlineOutlinedIcon, { - className: iconClassName, - style: { - color: colors$1.green[300] - } - }))); - return iconPerNetworkStatus.get(networkStatus); -}; - -const useStyles$4 = styles.makeStyles(theme => ({ - paper: { - backgroundColor: theme.palette.background.paper, - border: `2px solid ${colors.primary}`, - boxShadow: theme.shadows[5], - left: '50%', - minWidth: 400, - padding: theme.spacing(2, 4, 3), - position: 'absolute', - top: '50%', - transform: 'translate(-50%, -50%)' - } -})); - -const Modal = ({ - children, - ...rest -}) => { - const classes = useStyles$4(); - return React__default.createElement(core.Modal, Object.assign({}, rest), React__default.createElement("div", { - className: classes.paper - }, children)); -}; - -const useStyles$5 = styles.makeStyles(() => ({ - root: { - borderBottom: `1px solid ${colors.gray2}`, - color: colors.primary, - display: 'flex', - justifyContent: 'center', - width: '100%' - } -})); - -const ModalHeader = ({ - children, - className = '' -}) => { - const classes = useStyles$5(); - return React__default.createElement("div", { - className: `${classes.root} ${className}`.trim() - }, children); -}; - -const ModalTitle = ({ - children, - ...rest -}) => React__default.createElement(Typography, Object.assign({ - variant: "h5" -}, rest), children); - -const useStyles$6 = styles.makeStyles(theme => ({ - root: { - borderTop: `1px solid ${colors.gray2}`, - display: 'flex', - justifyContent: 'center', - paddingTop: theme.spacing(1), - width: '100%' - } -})); - -const ModalFooter = ({ - children, - className = '' -}) => { - const classes = useStyles$6(); - return React__default.createElement("div", { - className: `${classes.root} ${className}`.trim() - }, children); -}; - -const useStyles$7 = styles.makeStyles(theme => ({ - root: { - padding: theme.spacing(3, 0), - width: '100%' - } -})); - -const ModalBody = ({ - children, - className = '' -}) => { - const classes = useStyles$7(); - return React__default.createElement("div", { - className: `${classes.root} ${className}`.trim() - }, children); -}; - -const useStyles$8 = styles.makeStyles(() => ({ - '@keyframes spin': { - '0%': { - transform: 'rotate(0deg)' - }, - '100%': { - transform: 'rotate(360deg)' - } - }, - root: { - position: 'relative' - }, - overlay: { - position: 'absolute', - zIndex: 2, - height: '100%', - width: '100%', - display: 'flex', - justifyContent: 'center', - alignItems: 'center', - background: '#FFFFFF55' - }, - spinner: { - display: 'inline-block', - zIndex: 3, - width: '50px', - height: '50px', - border: 'none', - animation: '$spin 2s ease-in-out infinite' - } -})); - -const WithSpinner = WrappedComponent => { - const Spinner = ({ - isLoading, - ...props - }) => { - const classes = useStyles$8(); - return React__default.createElement("div", { - className: classes.root - }, isLoading && React__default.createElement("div", { - className: classes.overlay - }, React__default.createElement("img", { - className: classes.spinner, - src: logoBlueIcon, - alt: "logo" - })), React__default.createElement(WrappedComponent, Object.assign({}, props))); - }; - - return Spinner; -}; - -const useStyles$9 = styles.makeStyles(theme => styles.createStyles({ - root: { - boxShadow: 'none', - color: colors.gray4, - width: '100%' - }, - heading: { - color: colors.gray4, - fontSize: theme.typography.pxToRem(15), - fontWeight: theme.typography.fontWeightRegular, - width: '100%' - }, - accordionSummary: { - borderBottom: `1px solid ${colors.gray2}` - } -})); - -const Accordion = ({ - children, - expanded, - id, - title -}) => { - const classes = useStyles$9(); - const [isExpanded, setIsExpanded] = React.useState(!!expanded); - - const onChange = () => setIsExpanded(!isExpanded); - - return React__default.createElement(core.Accordion, { - className: classes.root, - expanded: isExpanded, - onChange: onChange - }, React__default.createElement(AccordionSummary, { - className: classes.accordionSummary, - expandIcon: React__default.createElement(ExpandMoreIcon, null), - "aria-controls": `panel-${id}-content`, - id: id - }, React__default.createElement(Typography, { - className: classes.heading - }, title)), React__default.createElement(AccordionDetails, null, children)); -}; - -const AccountModal = ({ - setProvider, - availableProviders, - open, - onClose, - onProviderSet -}) => React__default.createElement(Modal, { - open: open, - onClose: onClose, - "aria-labelledby": "account-modal-title", - "aria-describedby": "account-modal-description" -}, React__default.createElement(React__default.Fragment, null, React__default.createElement(ModalHeader, null, React__default.createElement(ModalTitle, null, "Connect a wallet to get started")), React__default.createElement(ModalBody, null, availableProviders && availableProviders.length && availableProviders.map(providerInfo => React__default.createElement(LoginOption, { - providerInfo: providerInfo, - key: providerInfo.eProvider, - onClick: function () { - try { - const _temp = function () { - if (setProvider) return Promise.resolve(setProvider(providerInfo.eProvider, onProviderSet)).then(function () {}); - }(); - - return Promise.resolve(_temp && _temp.then ? _temp.then(function () {}) : void 0); - } catch (e) { - return Promise.reject(e); - } - } -})), !availableProviders && React__default.createElement(LoginOption, null)), React__default.createElement(ModalFooter, null, React__default.createElement(Button, { - variant: "outlined", - color: "secondary", - block: true, - onClick: onClose -}, "Close")))); - -const useStyles$a = styles.makeStyles(() => ({ - tooltipTitle: { - display: 'flex', - alignItems: 'center' - } -})); - -const CopyTextTooltip = ({ - displayElement, - fullText -}) => { - const [isCopied, setIsCopied] = React.useState(false); - const classes = useStyles$a(); - const tooltipContent = React__default.createElement("div", { - className: classes.tooltipTitle - }, React__default.createElement(FileCopyIcon, null), React__default.createElement(Typography, { - variant: "body2" - }, fullText)); - return React__default.createElement(Tooltip, { - interactive: true, - title: isCopied ? React__default.createElement(Typography, { - variant: "body2" - }, "Copied!") : tooltipContent, - onClick: () => { - navigator.clipboard.writeText(fullText).then(() => { - setIsCopied(true); - }); - }, - onClose: () => { - setIsCopied(false); - } - }, displayElement); -}; - -const useStyles$b = styles.makeStyles(theme => ({ - root: { - boxShadow: 'none', - color: colors.gray4, - width: '100%' - }, - heading: { - display: 'flex', - justifyContent: 'center', - color: colors.gray5, - fontSize: fonts.size.subtitleSmall, - width: '100%' - }, - headingExpanded: { - color: colors.primary - }, - headingCollapsed: { - fontWeight: fonts.weight.regular - }, - panelDetails: { - display: 'flex', - justifyContent: 'center' - }, - answerContainer: { - [theme.breakpoints.up('md')]: { - maxWidth: '80%' - } - }, - answerText: { - color: colors.gray5 - } -})); - -const FAQSection = ({ - className = '', - initiallyExpanded, - question, - answer -}) => { - const classes = useStyles$b(); - const [isExpanded, setIsExpanded] = React.useState(!!initiallyExpanded); - - const onChange = () => setIsExpanded(!isExpanded); - - return React__default.createElement(Accordion$1, { - className: `${classes.root} ${className}`.trim(), - expanded: isExpanded, - onChange: onChange - }, React__default.createElement(AccordionSummary, { - expandIcon: isExpanded ? React__default.createElement(RemoveIcon, null) : React__default.createElement(AddIcon, null) - }, React__default.createElement(Typography, { - className: `${classes.heading} ${isExpanded ? classes.headingExpanded : classes.headingCollapsed}`.trim() - }, question)), React__default.createElement(AccordionDetails, { - className: classes.panelDetails - }, React__default.createElement("div", { - className: classes.answerContainer - }, React__default.createElement(Typography, { - className: classes.answerText - }, answer)))); -}; - -const useStyles$c = styles.makeStyles(() => ({ - root: { - color: colors.gray4, - width: '100%' - } -})); - -const LabeledCheckbox = ({ - labelText, - labelClassName = '', - ...rest -}) => { - const classes = useStyles$c(); - return React__default.createElement(core.FormControlLabel, { - className: `${classes.root} ${labelClassName.trim()}`, - label: labelText, - control: React__default.createElement(Checkbox, Object.assign({}, rest)) - }); -}; - -const FilterCheckboxCard = ({ - className = '', - onClick, - items -}) => React__default.createElement("div", { - className: className -}, items.map((item, i) => React__default.createElement(LabeledCheckbox, Object.assign({ - onClick: onClick, - key: `labeledCheckbox-${item.id}` || `labeledCheckbox-${i}-${className}`.trim(), - labelClassName: item.labelClassName -}, item)))); - -var shortenString = function shortenString(str, largerThan, charsShownCount) { - if (largerThan === void 0) { - largerThan = 16; - } - - if (charsShownCount === void 0) { - charsShownCount = 6; - } - - return str.length > largerThan ? str.substr(0, charsShownCount) + "..." + str.substr(str.length - 4) : str; -}; - -var removeEmptySpaces = function removeEmptySpaces(str) { - return str.replace(/\s/g, ''); -}; - -var maxSupportedNumber = 99999999999999; -var minSupportedNumber = 0.000001; - -var validatedNumber = function validatedNumber(num) { - if (num > 0) { - if (num > maxSupportedNumber) return maxSupportedNumber; - if (num < minSupportedNumber) return minSupportedNumber; - } - - if (num < 0) { - if (num < -maxSupportedNumber) return -maxSupportedNumber; - if (num > -minSupportedNumber) return -minSupportedNumber; - } - - return num; -}; - -const useStyles$d = styles.makeStyles(() => ({ - root: { - alignItems: 'center', - display: 'flex', - flexDirection: 'column' - }, - footerLink: { - color: colors.gray4, - fontWeight: fonts.weight.light, - textDecoration: 'none', - '&:hover': { - fontWeight: fonts.weight.regular - } - }, - footerTitle: { - fontSize: fonts.size.subtitleBig, - textAlign: 'center' - } -})); - -const FooterColumn = ({ - title, - links, - className = '' -}) => { - const classes = useStyles$d(); - return React__default.createElement("div", { - className: `${classes.root} ${className}`.trim() - }, React__default.createElement(Typography, { - className: classes.footerTitle, - variant: "subtitle1", - color: "primary" - }, title), links.map(link => { - const key = removeEmptySpaces(link.title); - - if (link.isExternal) { - const href = (link.to || '#').toString(); - return React__default.createElement("a", { - className: classes.footerLink, - target: link.target, - color: "secondary", - key: key, - href: href - }, link.title); - } - - return React__default.createElement(reactRouterDom.NavLink, { - className: classes.footerLink, - target: link.target, - color: "secondary", - key: key, - to: link.to - }, link.title); - })); -}; - -const ModalDialogue = ({ - title, - footer, - children, - ...props -}) => React__default.createElement(Modal, Object.assign({}, props), React__default.createElement(React__default.Fragment, null, React__default.createElement(ModalHeader, null, React__default.createElement(ModalTitle, null, title)), React__default.createElement(ModalBody, null, children), React__default.createElement(ModalFooter, null, footer))); - -const useStyles$e = styles.makeStyles(theme => ({ - root: { - color: colors.gray4, - display: 'flex' - }, - input: { - color: colors.gray4, - paddingLeft: theme.spacing(0.1), - textAlign: 'center', - '&::before': { - borderBottom: `1px solid ${colors.gray4}` - } - }, - inputContainer: { - paddingRight: '0 !important' - }, - units: { - color: colors.gray4, - display: 'flex', - fontSize: fonts.size.tiny - }, - unitsContainer: { - alignSelf: 'center', - color: colors.gray4, - display: 'flex', - fontSize: fonts.size.normal, - paddingLeft: '0 !important' - } -})); - -const UnitsInput = ({ - maxValue, - minValue, - units, - value, - step = 1, - handleOnBlur, - handleOnChange, - ...rest -}) => { - const classes = useStyles$e(); - return React__default.createElement(React__default.Fragment, null, React__default.createElement(Grid, { - className: classes.root, - container: true, - spacing: 1 - }, React__default.createElement(Grid, { - className: classes.inputContainer, - item: true, - xs: 8 - }, React__default.createElement(Input, Object.assign({ - className: classes.input, - classes: { - input: classes.input - }, - value: value, - onChange: handleOnChange, - onBlur: handleOnBlur, - type: "number", - fullWidth: true, - inputProps: { - step, - min: minValue, - max: maxValue, - 'aria-labelledby': 'input-slider' - } - }, rest))), React__default.createElement(Grid, { - item: true, - xs: 4, - className: classes.unitsContainer - }, React__default.createElement(Typography, { - className: classes.units - }, units)))); -}; - -const useStyles$f = styles.makeStyles(() => ({ - root: { - width: '100%' - }, - inputsContainer: { - alignSelf: 'center', - display: 'flex', - justifyContent: 'space-between', - width: '100%' - }, - toContainer: { - alignSelf: 'center', - display: 'flex', - justifyContent: 'center', - width: '100%', - fontWeight: fonts.weight.regular - } -})); - -const RangeSliderWithInputs = ({ - values: { - start: startValue, - end: endValue - }, - unit, - handleChange, - className, - ...rest -}) => { - const classes = useStyles$f(); - const maxValue = rest.max || endValue; - const minValue = rest.min || startValue; - const step = rest.step || 1; - - const handleStartInputChange = event => { - const newStartValue = validatedNumber(Number(event.target.value)) || minValue; - handleChange({ - min: newStartValue, - max: endValue - }); - }; - - const handleEndInputChange = event => { - const newEndValue = validatedNumber(Number(event.target.value)) || endValue; - handleChange({ - min: startValue, - max: newEndValue - }); - }; - - const handleSliderChange = (_, newSliderValue) => { - handleChange({ - min: newSliderValue[0], - max: newSliderValue[1] - }); - }; - - const handleStartValueBlur = () => { - if (startValue < minValue) { - handleChange({ - min: minValue, - max: endValue - }); - } else if (startValue > endValue) { - handleChange({ - min: endValue, - max: endValue - }); - } - }; - - const handleEndValueBlur = () => { - if (endValue < startValue) { - handleChange({ - min: minValue, - max: startValue - }); - } else if (endValue > maxValue) { - handleChange({ - min: minValue, - max: maxValue - }); - } - }; - - const getCommonInputValues = () => ({ - maxValue, - minValue, - step, - units: unit - }); - - return React__default.createElement("div", { - className: `${classes.root} ${className}`.trim() - }, React__default.createElement(Slider, Object.assign({ - value: [startValue, endValue] - }, rest, { - onChange: handleSliderChange - })), React__default.createElement("div", { - className: classes.inputsContainer - }, React__default.createElement(UnitsInput, Object.assign({ - handleOnBlur: handleStartValueBlur, - handleOnChange: handleStartInputChange - }, getCommonInputValues(), { - value: startValue - })), React__default.createElement(Typography, { - className: classes.toContainer - }, "to"), React__default.createElement(UnitsInput, Object.assign({ - handleOnBlur: handleEndValueBlur, - handleOnChange: handleEndInputChange - }, getCommonInputValues(), { - value: endValue - })))); -}; - -const ShortenTextTooltip = ({ - value, - maxLength = 20, - charsShownCount -}) => React__default.createElement(React__default.Fragment, null, value.length > maxLength && React__default.createElement(CopyTextTooltip, { - displayElement: React__default.createElement(Typography, { - variant: "body2" - }, shortenString(value, maxLength, charsShownCount || maxLength - 5)), - fullText: value -}), value.length <= maxLength && value); - -const useStyles$g = styles.makeStyles({ - indicator: { - display: 'flex', - justifyContent: 'center', - backgroundColor: 'transparent' - }, - root: { - borderBottom: `1px solid ${colors.gray3}` - } -}); - -const StyledTabs = props => { - const { - children - } = props; - const classes = useStyles$g(); - return React__default.createElement(Tabs, Object.assign({ - classes: classes - }, props), children); -}; - -const a11yProps = index => ({ - id: `full-width-tab-${index}`, - 'aria-controls': `full-width-tabpanel-${index}` -}); - -const useStyles$h = styles.makeStyles(() => ({ - root: { - backgroundColor: colors.white, - minHeight: 20, - width: '100%', - border: `${colors.primary} solid 1px`, - borderRadius: 50, - overflow: 'hidden' - }, - tabContainer: { - minHeight: 20, - width: '100%' - }, - tab: { - '&:hover': { - color: colors.primary - }, - borderRadius: 50, - color: colors.gray3, - fontWeight: fonts.weight.light, - maxWidth: '50%', - minHeight: '100%', - minWidth: '50%', - outlineStyle: 'none', - padding: 0, - textTransform: 'capitalize', - zIndex: 1, - '&:focus': { - outlineStyle: 'none' - } - }, - tabIndicator: { - backgroundColor: colors.primary, - borderRadius: 50, - height: '100%' - }, - tabSelected: { - backgroundColor: `${colors.primary} !important`, - color: `${colors.white} !important` - } -})); - -const SwitchTabs = ({ - label1, - label2, - value: controlledValue, - onChange -}) => { - const classes = useStyles$h(); - - const handleChange = (event, newValue) => { - onChange(event, newValue); - }; - - return React__default.createElement("div", { - className: classes.root - }, React__default.createElement(core.Tabs, { - "aria-label": "tabs switch", - className: classes.tabContainer, - onChange: handleChange, - TabIndicatorProps: { - className: classes.tabIndicator - }, - value: controlledValue, - variant: "fullWidth" - }, React__default.createElement(core.Tab, Object.assign({}, a11yProps(0), { - classes: { - selected: classes.tabSelected - }, - className: classes.tab, - label: label1 - })), React__default.createElement(core.Tab, Object.assign({}, a11yProps(1), { - classes: { - selected: classes.tabSelected - }, - className: classes.tab, - label: label2 - })))); -}; - -const TooltipIconButton = ({ - tooltipTitle, - iconButtonProps, - icon -}) => React__default.createElement(Tooltip, { - title: tooltipTitle -}, React__default.createElement("span", null, React__default.createElement(IconButton, Object.assign({ - color: "primary" -}, iconButtonProps), icon))); - -const useStyles$i = styles.makeStyles(theme => ({ - boxContainer: { - border: `1px solid ${colors.primary}`, - padding: theme.spacing(5), - marginTop: theme.spacing(3) - }, - loaderContainer: { - display: 'flex', - justifyContent: 'center' - } -})); - -const WrongNetworkModal = ({ - open, - currentNetworkName = 'Private network', - requiredNetworkName, - onClose -}) => { - const classes = useStyles$i(); - return React__default.createElement(ModalDialogue, { - title: `Switch to the ${requiredNetworkName} network`, - open: open, - onClose: onClose - }, React__default.createElement(React__default.Fragment, null, React__default.createElement(Typography, { - gutterBottom: true, - align: "center", - color: "secondary", - component: "div" - }, "This dApp only works on the", ' ', requiredNetworkName, ". You are currently on", ' ', React__default.createElement(Box, { - display: "inline", - fontWeight: "fontWeightMedium" - }, currentNetworkName), "."), React__default.createElement(Grid, { - container: true, - className: classes.boxContainer, - alignItems: "center" - }, React__default.createElement(Grid, { - item: true, - sm: 3, - className: classes.loaderContainer - }, React__default.createElement(CircularProgress, null)), React__default.createElement(Grid, { - item: true, - sm: 9 - }, React__default.createElement(Typography, { - gutterBottom: true, - color: "secondary" - }, "Waiting for the right network..."), React__default.createElement(Typography, { - color: "primary", - component: "div" - }, React__default.createElement(Box, { - fontWeight: "fontWeightMedium" - }, "Switch networks on your wallet")))))); -}; - -const useStyles$j = styles.makeStyles(theme => ({ - copyright: { - display: 'flex', - justifyContent: 'center' - }, - copyrightContent: { - color: colors.gray4, - fontSize: fonts.size.tiny - }, - footerContainer: { - backgroundColor: colors.gray2, - display: 'flex', - justifyContent: 'center', - paddingBottom: theme.spacing(2), - width: '100%' - }, - footerContent: { - marginTop: theme.spacing(2), - maxWidth: '80%', - width: '100%' - }, - linksColumn: { - marginBottom: theme.spacing(1) - }, - logoColumn: { - display: 'flex', - justifyContent: 'center', - padding: theme.spacing(5) - }, - root: { - alignItems: 'center', - display: 'flex', - flexDirection: 'column', - paddingTop: theme.spacing(4), - width: '100%' - }, - tongue: { - backgroundColor: colors.gray2, - borderTopLeftRadius: '50% 80%', - borderTopRightRadius: '50% 80%', - height: theme.spacing(10), - width: '100%' - } -})); - -const Footer = ({ - className = '', - copyrightText, - linksColumns, - ...rest -}) => { - const classes = useStyles$j(); - return React__default.createElement("footer", Object.assign({ - className: `${classes.root} ${className}`.trim() - }, rest), React__default.createElement("div", { - className: classes.tongue - }), React__default.createElement("div", { - className: classes.footerContainer - }, React__default.createElement("div", { - className: classes.footerContent - }, React__default.createElement(core.Grid, { - container: true, - direction: "row" - }, React__default.createElement(core.Grid, { - className: classes.logoColumn, - item: true, - xs: 12, - md: 3, - lg: 3 - }, React__default.createElement("img", { - src: logoBlackAndBlue, - height: "75px", - alt: "logo" - })), linksColumns.map(linkColumn => React__default.createElement(core.Grid, { - key: `fc-${removeEmptySpaces(linkColumn.title)}`, - item: true, - xs: 12, - sm: 12, - md: 2, - lg: 2 - }, React__default.createElement(FooterColumn, Object.assign({ - className: classes.linksColumn - }, linkColumn))))), React__default.createElement("div", { - className: classes.copyright - }, React__default.createElement(Typography, { - className: classes.copyrightContent - }, copyrightText))))); -}; - -var ConnectionStatus; - -(function (ConnectionStatus) { - ConnectionStatus[ConnectionStatus["LoggedIn"] = 0] = "LoggedIn"; - ConnectionStatus[ConnectionStatus["LoggedOut"] = 1] = "LoggedOut"; - ConnectionStatus[ConnectionStatus["WalletLocked"] = 2] = "WalletLocked"; - ConnectionStatus[ConnectionStatus["WrongNetwork"] = 3] = "WrongNetwork"; -})(ConnectionStatus || (ConnectionStatus = {})); - -var ConnectionStatus$1 = ConnectionStatus; - -// A type of promise-like that resolves synchronously and supports only one observer - -const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.iterator || (Symbol.iterator = Symbol("Symbol.iterator"))) : "@@iterator"; - -const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol("Symbol.asyncIterator"))) : "@@asyncIterator"; - -// Asynchronously call a function and send errors to recovery continuation -function _catch(body, recover) { - try { - var result = body(); - } catch(e) { - return recover(e); - } - if (result && result.then) { - return result.then(void 0, recover); - } - return result; -} - -var networksData = [ - { - name: "Ethereum Mainnet", - chainId: 1, - shortName: "eth", - chain: "ETH", - network: "mainnet", - networkId: 1, - nativeCurrency: { - name: "Ether", - symbol: "ETH", - decimals: 18 - }, - rpc: [ - "https://mainnet.infura.io/v3/${INFURA_API_KEY}", - "https://api.mycryptoapi.com/eth" - ], - faucets: [ - ], - infoURL: "https://ethereum.org" - }, - { - name: "xDAI Chain", - chainId: 100, - shortName: "xdai", - chain: "XDAI", - network: "mainnet", - networkId: 100, - nativeCurrency: { - name: "xDAI", - symbol: "xDAI", - decimals: 18 - }, - rpc: [ - "https://dai.poa.network" - ], - faucets: [ - ], - infoURL: "https://forum.poa.network/c/xdai-chain" - }, - { - name: "EtherInc", - chainId: 101, - shortName: "eti", - chain: "ETI", - network: "mainnet", - networkId: 1, - nativeCurrency: { - name: "EtherInc Ether", - symbol: "ETI", - decimals: 18 - }, - rpc: [ - "https://api.einc.io/jsonrpc/mainnet" - ], - faucets: [ - ], - infoURL: "https://einc.io" - }, - { - name: "ThunderCore Mainnet", - chainId: 108, - shortName: "TT", - chain: "TT", - network: "mainnet", - networkId: 108, - nativeCurrency: { - name: "ThunderCore Mainnet Ether", - symbol: "TT", - decimals: 18 - }, - rpc: [ - "https://mainnet-rpc.thundercore.com" - ], - faucets: [ - "https://faucet.thundercore.com" - ], - infoURL: "https://thundercore.com" - }, - { - name: "Metadium Mainnet", - chainId: 11, - shortName: "meta", - chain: "META", - network: "mainnet", - networkId: 11, - nativeCurrency: { - name: "Metadium Mainnet Ether", - symbol: "META", - decimals: 18 - }, - rpc: [ - "https://api.metadium.com/prod" - ], - faucets: [ - ], - infoURL: "https://metadium.com" - }, - { - name: "IPOS Network", - chainId: 1122334455, - shortName: "ipos", - chain: "IPOS", - network: "mainnet", - networkId: 1122334455, - nativeCurrency: { - name: "IPOS Network Ether", - symbol: "IPOS", - decimals: 18 - }, - rpc: [ - "https://rpc.iposlab.com", - "https://rpc2.iposlab.com" - ], - faucets: [ - ], - infoURL: "https://iposlab.com" - }, - { - name: "Metadium Testnet", - chainId: 12, - shortName: "kal", - chain: "META", - network: "testnet", - networkId: 12, - nativeCurrency: { - name: "Metadium Testnet Ether", - symbol: "KAL", - decimals: 18 - }, - rpc: [ - "https://api.metadium.com/dev" - ], - faucets: [ - ], - infoURL: "https://metadium.com" - }, - { - name: "Fuse Mainnet", - chainId: 122, - shortName: "fuse", - chain: "FUSE", - network: "mainnet", - networkId: 122, - nativeCurrency: { - name: "Fuse", - symbol: "FUSE", - decimals: 18 - }, - rpc: [ - "https://rpc.fuse.io" - ], - faucets: [ - ], - infoURL: "https://fuse.io/" - }, - { - name: "Ether-1", - chainId: 1313114, - shortName: "etho", - chain: "ETHO", - network: "mainnet", - networkId: 1313114, - nativeCurrency: { - name: "Ether-1 Ether", - symbol: "ETHO", - decimals: 18 - }, - rpc: [ - "https://rpc.ether1.org" - ], - faucets: [ - ], - infoURL: "https://ether1.org" - }, - { - name: "Xerom", - chainId: 1313500, - shortName: "xero", - chain: "XERO", - network: "mainnet", - networkId: 1313500, - nativeCurrency: { - name: "Xerom Ether", - symbol: "XERO", - decimals: 18 - }, - rpc: [ - "https://rpc.xerom.org" - ], - faucets: [ - ], - infoURL: "https://xerom.org" - }, - { - name: "PepChain Churchill", - chainId: 13371337, - shortName: "tpep", - chain: "PEP", - network: "testnet", - networkId: 13371337, - nativeCurrency: { - name: "PepChain Churchill Ether", - symbol: "TPEP", - decimals: 18 - }, - rpc: [ - "https://churchill-rpc.pepchain.io" - ], - faucets: [ - ], - infoURL: "https://pepchain.io" - }, - { - name: "Lightstreams Testnet", - chainId: 162, - shortName: "tpht", - chain: "PHT", - network: "sirius", - networkId: 162, - nativeCurrency: { - name: "Lightstreams PHT", - symbol: "PHT", - decimals: 18 - }, - rpc: [ - "https://node.sirius.lightstreams.io" - ], - faucets: [ - "https://discuss.lightstreams.network/t/request-test-tokens" - ], - infoURL: "https://explorer.sirius.lightstreams.io" - }, - { - name: "Atheios", - chainId: 1620, - shortName: "ath", - chain: "ATH", - network: "mainnet", - networkId: 11235813, - nativeCurrency: { - name: "Atheios Ether", - symbol: "ATH", - decimals: 18 - }, - rpc: [ - "https://wallet.atheios.com:8797" - ], - faucets: [ - ], - infoURL: "https://atheios.com" - }, - { - name: "Lightstreams Mainnet", - chainId: 163, - shortName: "pht", - chain: "PHT", - network: "mainnet", - networkId: 163, - nativeCurrency: { - name: "Lightstreams PHT", - symbol: "PHT", - decimals: 18 - }, - rpc: [ - "https://node.mainnet.lightstreams.io" - ], - faucets: [ - ], - infoURL: "https://explorer.lightstreams.io" - }, - { - name: "ThunderCore Testnet", - chainId: 18, - shortName: "TST", - chain: "TST", - network: "testnet", - networkId: 18, - nativeCurrency: { - name: "ThunderCore Testnet Ether", - symbol: "TST", - decimals: 18 - }, - rpc: [ - "https://testnet-rpc.thundercore.com" - ], - faucets: [ - "https://faucet-testnet.thundercore.com" - ], - infoURL: "https://thundercore.com" - }, - { - name: "IOLite", - chainId: 18289463, - shortName: "ilt", - chain: "ILT", - network: "mainnet", - networkId: 18289463, - nativeCurrency: { - name: "IOLite Ether", - symbol: "ILT", - decimals: 18 - }, - rpc: [ - "https://net.iolite.io" - ], - faucets: [ - ], - infoURL: "https://iolite.io" - }, - { - name: "Teslafunds", - chainId: 1856, - shortName: "tsf", - chain: "TSF", - network: "mainnet", - networkId: 1, - nativeCurrency: { - name: "Teslafunds Ether", - symbol: "TSF", - decimals: 18 - }, - rpc: [ - "https://tsfapi.europool.me" - ], - faucets: [ - ], - infoURL: "https://teslafunds.io" - }, - { - name: "EtherGem", - chainId: 1987, - shortName: "egem", - chain: "EGEM", - network: "mainnet", - networkId: 1987, - nativeCurrency: { - name: "EtherGem Ether", - symbol: "EGEM", - decimals: 18 - }, - rpc: [ - "https://jsonrpc.egem.io/custom" - ], - faucets: [ - ], - infoURL: "https://egem.io" - }, - { - name: "Expanse Network", - chainId: 2, - shortName: "exp", - chain: "EXP", - network: "mainnet", - networkId: 1, - nativeCurrency: { - name: "Expanse Network Ether", - symbol: "EXP", - decimals: 18 - }, - rpc: [ - "https://node.expanse.tech" - ], - faucets: [ - ], - infoURL: "https://expanse.tech" - }, - { - name: "ELA-ETH-Sidechain Mainnet", - chainId: 20, - shortName: "ELAETHSC", - chain: "ETH", - network: "mainnet", - networkId: 1, - nativeCurrency: { - name: "Ether", - symbol: "ETH", - decimals: 18 - }, - rpc: [ - "https://mainrpc.elaeth.io" - ], - faucets: [ - ], - infoURL: "https://www.elastos.org/" - }, - { - name: "Akaroma", - chainId: 200625, - shortName: "aka", - chain: "AKA", - network: "mainnet", - networkId: 200625, - nativeCurrency: { - name: "Akaroma Ether", - symbol: "AKA", - decimals: 18 - }, - rpc: [ - "https://remote.akroma.io" - ], - faucets: [ - ], - infoURL: "https://akroma.io" - }, - { - name: "ELA-ETH-Sidechain Testnet", - chainId: 21, - shortName: "ELAETHSC", - chain: "ETH", - network: "testnet", - networkId: 2, - nativeCurrency: { - name: "Ether", - symbol: "ETH", - decimals: 18 - }, - rpc: [ - "https://rpc.elaeth.io" - ], - faucets: [ - "https://faucet.elaeth.io/" - ], - infoURL: "https://elaeth.io/" - }, - { - name: "Freight Trust Network", - chainId: 211, - shortName: "EDI", - chain: "EDI", - network: "freight & trade network", - networkId: 0, - nativeCurrency: { - name: "Freight Trust Native", - symbol: "0xF", - decimals: 18 - }, - rpc: [ - "http://13.57.207.168:3435", - "https://app.freighttrust.net/ftn/${API_KEY}" - ], - faucets: [ - "http://faucet.freight.sh" - ], - infoURL: "https://freighttrust.com" - }, - { - name: "Webchain", - chainId: 24484, - shortName: "web", - chain: "WEB", - network: "mainnet", - networkId: 37129, - nativeCurrency: { - name: "Webchain Ether", - symbol: "WEB", - decimals: 18 - }, - rpc: [ - "https://node1.webchain.network" - ], - faucets: [ - ], - infoURL: "https://webchain.network" - }, - { - name: "ARTIS sigma1", - chainId: 246529, - shortName: "ats", - chain: "ARTIS", - network: "sigma1", - networkId: 246529, - nativeCurrency: { - name: "ARTIS sigma1 Ether", - symbol: "ATS", - decimals: 18 - }, - rpc: [ - "https://rpc.sigma1.artis.network" - ], - faucets: [ - ], - infoURL: "https://artis.eco" - }, - { - name: "ARTIS tau1", - chainId: 246785, - shortName: "ats", - chain: "ARTIS", - network: "tau1", - networkId: 246785, - nativeCurrency: { - name: "ARTIS tau1 Ether", - symbol: "ATS", - decimals: 18 - }, - rpc: [ - "https://rpc.tau1.artis.network" - ], - faucets: [ - ], - infoURL: "https://artis.network" - }, - { - name: "Fantom Opera", - chainId: 250, - shortName: "ftm", - chain: "FTM", - network: "mainnet", - networkId: 250, - nativeCurrency: { - name: "Fantom", - symbol: "FTM", - decimals: 18 - }, - rpc: [ - "https://rpc.fantom.network", - "https://fantomscan.io/rpc" - ], - faucets: [ - ], - infoURL: "https://fantom.foundation" - }, - { - name: "High Performance Blockchain", - chainId: 269, - shortName: "hpb", - chain: "HPB", - network: "mainnet", - networkId: 100, - nativeCurrency: { - name: "High Performance Blockchain Ether", - symbol: "HPB", - decimals: 18 - }, - rpc: [ - "https://node.hpb.blue" - ], - faucets: [ - ], - infoURL: "https://hpb.io" - }, - { - name: "Auxilium Network Mainnet", - chainId: 28945486, - shortName: "aux", - chain: "AUX", - network: "mainnet", - networkId: 28945486, - nativeCurrency: { - name: "Auxilium coin", - symbol: "AUX", - decimals: 18 - }, - rpc: [ - "https://rpc.auxilium.global" - ], - faucets: [ - ], - infoURL: "https://auxilium.global" - }, - { - name: "Ethereum Testnet Ropsten", - chainId: 3, - shortName: "rop", - chain: "ETH", - network: "ropsten", - networkId: 3, - nativeCurrency: { - name: "Ropsten Ether", - symbol: "ROP", - decimals: 18 - }, - rpc: [ - "https://ropsten.infura.io/v3/${INFURA_API_KEY}" - ], - faucets: [ - "https://faucet.ropsten.be?${ADDRESS}" - ], - infoURL: "https://github.com/ethereum/ropsten" - }, - { - name: "RSK Mainnet", - chainId: 30, - shortName: "rsk", - chain: "RSK", - network: "mainnet", - networkId: 30, - nativeCurrency: { - name: "RSK Mainnet Ether", - symbol: "RSK", - decimals: 18 - }, - rpc: [ - "https://public-node.rsk.co", - "https://mycrypto.rsk.co" - ], - faucets: [ - ], - infoURL: "https://rsk.co" - }, - { - name: "RSK Testnet", - chainId: 31, - shortName: "trsk", - chain: "RSK", - network: "testnet", - networkId: 31, - nativeCurrency: { - name: "RSK Testnet Ether", - symbol: "TRSK", - decimals: 18 - }, - rpc: [ - "https://public-node.testnet.rsk.co", - "https://mycrypto.testnet.rsk.co" - ], - faucets: [ - "https://faucet.testnet.rsk.co" - ], - infoURL: "https://rsk.co" - }, - { - name: "Ethersocial Network", - chainId: 31102, - shortName: "esn", - chain: "ESN", - network: "mainnet", - networkId: 1, - nativeCurrency: { - name: "Ethersocial Network Ether", - symbol: "ESN", - decimals: 18 - }, - rpc: [ - "https://api.esn.gonspool.com" - ], - faucets: [ - ], - infoURL: "https://ethersocial.org" - }, - { - name: "Pirl", - chainId: 3125659152, - shortName: "pirl", - chain: "PIRL", - network: "mainnet", - networkId: 3125659152, - nativeCurrency: { - name: "Pirl Ether", - symbol: "PIRL", - decimals: 18 - }, - rpc: [ - "https://wallrpc.pirl.io" - ], - faucets: [ - ], - infoURL: "https://pirl.io" - }, - { - name: "Lisinski", - chainId: 385, - shortName: "lisinski", - chain: "CRO", - network: "mainnet", - networkId: 385, - nativeCurrency: { - name: "Lisinski Ether", - symbol: "LISINSKI", - decimals: 18 - }, - rpc: [ - "https://rpc-bitfalls1.lisinski.online" - ], - faucets: [ - "https://pipa.lisinski.online" - ], - infoURL: "https://lisinski.online" - }, - { - name: "Energi Mainnet", - chainId: 39797, - shortName: "nrg", - chain: "NRG", - network: "mainnet", - networkId: 39797, - nativeCurrency: { - name: "Energi", - symbol: "NRG", - decimals: 18 - }, - rpc: [ - "https://nodeapi.gen3.energi.network" - ], - faucets: [ - ], - infoURL: "https://www.energi.world/" - }, - { - name: "Ethereum Testnet Rinkeby", - chainId: 4, - shortName: "rin", - chain: "ETH", - network: "rinkeby", - networkId: 4, - nativeCurrency: { - name: "Rinkeby Ether", - symbol: "RIN", - decimals: 18 - }, - rpc: [ - "https://rinkeby.infura.io/v3/${INFURA_API_KEY}" - ], - faucets: [ - "https://faucet.rinkeby.io" - ], - infoURL: "https://www.rinkeby.io" - }, - { - name: "Ethereum Testnet Kovan", - chainId: 42, - shortName: "kov", - chain: "ETH", - network: "kovan", - networkId: 42, - nativeCurrency: { - name: "Kovan Ether", - symbol: "KOV", - decimals: 18 - }, - rpc: [ - "https://kovan.infura.io/v3/${INFURA_API_KEY}" - ], - faucets: [ - "https://faucet.kovan.network", - "https://gitter.im/kovan-testnet/faucet" - ], - infoURL: "https://kovan-testnet.github.io/website" - }, - { - name: "Athereum", - chainId: 43110, - shortName: "ath", - chain: "ATH", - network: "athereum", - networkId: 43110, - nativeCurrency: { - name: "Athereum Ether", - symbol: "ATH", - decimals: 18 - }, - rpc: [ - "https://ava.network:21015/ext/evm/rpc" - ], - faucets: [ - "http://athfaucet.ava.network//?address=${ADDRESS}" - ], - infoURL: "https://athereum.ava.network" - }, - { - name: "Energi Testnet", - chainId: 49797, - shortName: "tnrg", - chain: "NRG", - network: "testnet", - networkId: 49797, - nativeCurrency: { - name: "Energi", - symbol: "tNRG", - decimals: 18 - }, - rpc: [ - "https://nodeapi.test3.energi.network" - ], - faucets: [ - ], - infoURL: "https://www.energi.world/" - }, - { - name: "Ethereum Testnet Görli", - chainId: 5, - shortName: "gor", - chain: "ETH", - network: "goerli", - networkId: 5, - nativeCurrency: { - name: "Görli Ether", - symbol: "GOR", - decimals: 18 - }, - rpc: [ - "https://rpc.goerli.mudit.blog/", - "https://rpc.slock.it/goerli ", - "https://goerli.prylabs.net/" - ], - faucets: [ - "https://goerli-faucet.slock.it/?address=${ADDRESS}", - "https://faucet.goerli.mudit.blog" - ], - infoURL: "https://goerli.net/#about" - }, - { - name: "Ethereum Classic Testnet Kotti", - chainId: 6, - shortName: "kot", - chain: "ETC", - network: "kotti", - networkId: 6, - nativeCurrency: { - name: "Kotti Ether", - symbol: "KOT", - decimals: 18 - }, - rpc: [ - ], - faucets: [ - ], - infoURL: "https://explorer.jade.builders/?network=kotti" - }, - { - name: "GoChain", - chainId: 60, - shortName: "go", - chain: "GO", - network: "mainnet", - networkId: 60, - nativeCurrency: { - name: "GoChain Ether", - symbol: "GO", - decimals: 18 - }, - rpc: [ - "https://rpc.gochain.io" - ], - faucets: [ - ], - infoURL: "https://gochain.io" - }, - { - name: "Ethereum Classic Mainnet", - chainId: 61, - shortName: "etc", - chain: "ETC", - network: "mainnet", - networkId: 1, - nativeCurrency: { - name: "Ethereum Classic Ether", - symbol: "ETC", - decimals: 18 - }, - rpc: [ - "https://ethereumclassic.network" - ], - faucets: [ - ], - infoURL: "https://ethereumclassic.org" - }, - { - name: "Aquachain", - chainId: 61717561, - shortName: "aqua", - chain: "AQUA", - network: "mainnet", - networkId: 61717561, - nativeCurrency: { - name: "Aquachain Ether", - symbol: "AQUA", - decimals: 18 - }, - rpc: [ - "https://c.onical.org", - "https://tx.aquacha.in/api" - ], - faucets: [ - "https://aquacha.in/faucet" - ], - infoURL: "https://aquachain.github.io" - }, - { - name: "Ethereum Classic Testnet Morden", - chainId: 62, - shortName: "tetc", - chain: "ETC", - network: "testnet", - networkId: 2, - nativeCurrency: { - name: "Ethereum Classic Testnet Ether", - symbol: "TETC", - decimals: 18 - }, - rpc: [ - ], - faucets: [ - ], - infoURL: "https://ethereumclassic.org" - }, - { - name: "Ethereum Classic Testnet Mordor", - chainId: 63, - shortName: "metc", - chain: "ETC", - network: "testnet", - networkId: 7, - nativeCurrency: { - name: "Mordor Classic Testnet Ether", - symbol: "METC", - decimals: 18 - }, - rpc: [ - ], - faucets: [ - ], - infoURL: "https://github.com/eth-classic/mordor/" - }, - { - name: "Ellaism", - chainId: 64, - shortName: "ella", - chain: "ELLA", - network: "mainnet", - networkId: 64, - nativeCurrency: { - name: "Ellaism Ether", - symbol: "ELLA", - decimals: 18 - }, - rpc: [ - "https://jsonrpc.ellaism.org" - ], - faucets: [ - ], - infoURL: "https://ellaism.org" - }, - { - name: "ThaiChain", - chainId: 7, - shortName: "tch", - chain: "TCH", - network: "mainnet", - networkId: 7, - nativeCurrency: { - name: "ThaiChain Ether", - symbol: "TCH", - decimals: 18 - }, - rpc: [ - "https://rpc.dome.cloud" - ], - faucets: [ - ], - infoURL: "https://thaichain.io" - }, - { - name: "Mix", - chainId: 76, - shortName: "mix", - chain: "MIX", - network: "mainnet", - networkId: 76, - nativeCurrency: { - name: "Mix Ether", - symbol: "MIX", - decimals: 18 - }, - rpc: [ - "https://rpc2.mix-blockchain.org:8647" - ], - faucets: [ - ], - infoURL: "https://mix-blockchain.org" - }, - { - name: "POA Network Sokol", - chainId: 77, - shortName: "poa", - chain: "POA", - network: "sokol", - networkId: 77, - nativeCurrency: { - name: "POA Sokol Ether", - symbol: "POA", - decimals: 18 - }, - rpc: [ - "https://sokol.poa.network" - ], - faucets: [ - "https://faucet-sokol.herokuapp.com" - ], - infoURL: "https://poa.network" - }, - { - name: "Musicoin", - chainId: 7762959, - shortName: "music", - chain: "MUSIC", - network: "mainnet", - networkId: 7762959, - nativeCurrency: { - name: "Musicoin", - symbol: "MUSIC", - decimals: 18 - }, - rpc: [ - "https://mewapi.musicoin.tw" - ], - faucets: [ - ], - infoURL: "https://musicoin.tw" - }, - { - name: "Firenze test network", - chainId: 78110, - shortName: "firenze", - chain: "ETH", - network: "testnet", - networkId: 78110, - nativeCurrency: { - name: "Firenze Ether", - symbol: "FIN", - decimals: 18 - }, - rpc: [ - "https://ethnode.primusmoney.com/firenze" - ], - faucets: [ - ], - infoURL: "https://primusmoney.com" - }, - { - name: "Ubiq Network Mainnet", - chainId: 8, - shortName: "ubq", - chain: "UBQ", - network: "mainnet", - networkId: 88, - nativeCurrency: { - name: "Ubiq Ether", - symbol: "UBQ", - decimals: 18 - }, - rpc: [ - "https://rpc.octano.dev", - "https://pyrus2.ubiqscan.io" - ], - faucets: [ - ], - infoURL: "https://ubiqsmart.com" - }, - { - name: "Callisto Mainnet", - chainId: 820, - shortName: "clo", - chain: "CLO", - network: "mainnet", - networkId: 1, - nativeCurrency: { - name: "Callisto Mainnet Ether", - symbol: "CLO", - decimals: 18 - }, - rpc: [ - "https://clo-geth.0xinfra.com" - ], - faucets: [ - ], - infoURL: "https://callisto.network" - }, - { - name: "Callisto Testnet", - chainId: 821, - shortName: "tclo", - chain: "CLO", - network: "testnet", - networkId: 2, - nativeCurrency: { - name: "Callisto Testnet Ether", - symbol: "TCLO", - decimals: 18 - }, - rpc: [ - ], - faucets: [ - ], - infoURL: "https://callisto.network" - }, - { - name: "TomoChain", - chainId: 88, - shortName: "tomo", - chain: "TOMO", - network: "mainnet", - networkId: 88, - nativeCurrency: { - name: "TomoChain Ether", - symbol: "TOMO", - decimals: 18 - }, - rpc: [ - "https://core.tomocoin.io" - ], - faucets: [ - ], - infoURL: "https://tomocoin.io" - }, - { - name: "Ubiq Network Testnet", - chainId: 9, - shortName: "tubq", - chain: "UBQ", - network: "mainnet", - networkId: 2, - nativeCurrency: { - name: "Ubiq Testnet Ether", - symbol: "TUBQ", - decimals: 18 - }, - rpc: [ - ], - faucets: [ - ], - infoURL: "https://ethersocial.org" - }, - { - name: "Nepal Blockchain Network", - chainId: 977, - shortName: "yeti", - chain: "YETI", - network: "mainnet", - networkId: 977, - nativeCurrency: { - name: "Nepal Blockchain Network Ether", - symbol: "YETI", - decimals: 18 - }, - rpc: [ - "https://api.nepalblockchain.dev", - "https://api.nepalblockchain.network" - ], - faucets: [ - "https://faucet.nepalblockchain.network" - ], - infoURL: "https://nepalblockchain.network" - }, - { - name: "POA Network Core", - chainId: 99, - shortName: "skl", - chain: "POA", - network: "core", - networkId: 99, - nativeCurrency: { - name: "POA Network Core Ether", - symbol: "SKL", - decimals: 18 - }, - rpc: [ - "https://core.poa.network" - ], - faucets: [ - ], - infoURL: "https://poa.network" - }, - { - name: "Local Tests", - chainId: 1337, - shortName: "test", - chain: "localtests", - network: "localTests", - networkId: 8545, - nativeCurrency: { - name: "Local Tests Ether", - symbol: "LT", - decimals: 18 - }, - rpc: [ - "http://localhost:8545" - ], - faucets: [ - "http://localhost:8545" - ], - infoURL: "http://localhost:8545" - } -]; - -function getWeb3(provider = EProvider.METAMASK) { - return new Promise((resolve, reject) => { - switch (provider) { - case EProvider.NIFTY: - case EProvider.METAMASK: - { - if (window.ethereum) { - const web3 = new Web3(window.ethereum); - window.ethereum.enable().then(() => resolve(web3)).catch(reject); - } else if (window.web3) { - resolve(new Web3(window.web3.currentProvider)); - } else reject(new Error('No injected web3 found')); - - break; - } - - case EProvider.LOCAL: - { - const localhostProvider = new Web3.providers.HttpProvider("'http://127.0.0.1:4444'"); - resolve(new Web3(localhostProvider)); - break; - } - - default: - { - reject(new Error(`Provider not implemented or unknown. Chosen provider ${provider}`)); - break; - } - } - }); -} -const getNetworkInfo = (networkId, chainId) => networksData.find(n => chainId ? n.networkId === networkId && n.chainId === chainId : n.networkId === networkId); -const getNetworkInfoFromWeb3 = function (web3) { - try { - function _temp3() { - let networkInfo; - - if (networkId) { - try { - networkInfo = getNetworkInfo(networkId, chainId); - } catch (error) {} - } - - return networkInfo; - } - - let networkId; - let chainId; - - const _temp2 = _catch(function () { - return Promise.resolve(web3.eth.net.getId()).then(function (_web3$eth$net$getId) { - networkId = _web3$eth$net$getId; - - const _temp = function () { - if (networkId) { - return Promise.resolve(web3.eth.getChainId()).then(function (_web3$eth$getChainId) { - chainId = _web3$eth$getChainId; - }); - } - }(); - - if (_temp && _temp.then) return _temp.then(function () {}); - }); - }, function () {}); - - return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(_temp3) : _temp3(_temp2)); - } catch (e) { - return Promise.reject(e); - } -}; - -const getWeb3Provider = () => { - if (window.ethereum) return window.ethereum; - if (window.web3) return window.web3.currentProvider; - return undefined; -}; - -const getAvailableProviders = () => { - const result = []; - const currentProvider = getWeb3Provider(); - if (!currentProvider) return undefined; - - if (currentProvider.isMetaMask) { - result.push(currentProvider.isNiftyWallet ? getProviderInfo(EProvider.NIFTY) : getProviderInfo(EProvider.METAMASK)); - } - - if (currentProvider.isTrust) result.push(getProviderInfo(EProvider.TRUST)); - if (currentProvider.isGoWallet) result.push(getProviderInfo(EProvider.GO_WALLET)); - if (currentProvider.isAlphaWallet) result.push(getProviderInfo(EProvider.ALPHA_WALLET)); - if (currentProvider.isStatus) result.push(getProviderInfo(EProvider.STATUS)); - if (currentProvider.isToshi) result.push(getProviderInfo(EProvider.COINBASE)); - if (typeof window.__CIPHER__ !== 'undefined') result.push(getProviderInfo(EProvider.CIPHER)); - if (currentProvider.constructor.name === 'EthereumProvider') result.push(getProviderInfo(EProvider.MIST)); - if (currentProvider.constructor.name === 'Web3FrameProvider') result.push(getProviderInfo(EProvider.PARITY)); - if (currentProvider.host && currentProvider.host.indexOf('infura') !== -1) result.push(getProviderInfo(EProvider.INFURA)); - if (currentProvider.host && currentProvider.host.indexOf('localhost') !== -1) result.push(getProviderInfo(EProvider.LOCAL)); - return result; -}; -const getConnectionStatus = (web3, requiredNetworkId, currentNetworkId, account) => { - if (!web3) return ConnectionStatus$1.LoggedOut; - - if (currentNetworkId !== requiredNetworkId) { - return ConnectionStatus$1.WrongNetwork; - } - - if (account) { - return ConnectionStatus$1.LoggedIn; - } - - return ConnectionStatus$1.WalletLocked; -}; - -const useStyles$k = styles.makeStyles(theme => ({ - accountText: { - fontSize: fonts.size.tiny, - textAlign: 'center' - }, - button: { - border: `1px solid ${colors.white}`, - '&:hover': { - border: `1px solid ${colors.transparent}` - } - }, - networkIndicator: { - marginRight: theme.spacing(1) - }, - rightNetwork: { - padding: theme.spacing(2) - } -})); - -const Account = props => { - const { - web3, - networkInfo, - account, - setProvider, - availableProviders, - requiredNetworkId, - onCorrectNetworkMessage, - onNetworkMismatchMessage, - noNetworkMessage, - requiredNetworkName, - modalInitiallyOpened = false - } = props; - const classes = useStyles$k(); - const [accountModalOpen, setAccountModalOpen] = React.useState(modalInitiallyOpened); - - const handleAccountModalClose = () => setAccountModalOpen(false); - - const handleAccountModalOpen = () => setAccountModalOpen(true); - - const [wrongNetModalOpen, setWrongNetModalOpen] = React.useState(false); - - const openWrongNetModal = () => setWrongNetModalOpen(true); - - const closeWrongNetModal = () => setWrongNetModalOpen(false); - - const connectionStatus = getConnectionStatus(web3, requiredNetworkId, networkInfo === null || networkInfo === void 0 ? void 0 : networkInfo.networkId, account); - const [anchorEl, setAnchorEl] = React__default.useState(null); - const popoverOpen = Boolean(anchorEl); - const id = popoverOpen ? 'right-net-popover' : undefined; - - const handlePopoverClose = () => { - setAnchorEl(null); - }; - - React.useEffect(() => { - if (connectionStatus === ConnectionStatus$1.WrongNetwork) { - openWrongNetModal(); - } else { - closeWrongNetModal(); - handlePopoverClose(); - } - }, [connectionStatus]); - - const accountText = () => { - if (connectionStatus === ConnectionStatus$1.LoggedOut) return 'Connect wallet'; - if (connectionStatus === ConnectionStatus$1.WrongNetwork) return 'Wrong Network'; - - if (account) { - return shortenString(account); - } - - return 'Unlock your wallet'; - }; - - const onAccountClicked = event => { - if (connectionStatus === ConnectionStatus$1.WrongNetwork) return openWrongNetModal(); - if (connectionStatus === ConnectionStatus$1.LoggedOut) return handleAccountModalOpen(); - if (connectionStatus === ConnectionStatus$1.LoggedIn) return setAnchorEl(event.currentTarget); - return null; - }; - - return React__default.createElement(React__default.Fragment, null, React__default.createElement(Button, { - onClick: onAccountClicked, - className: classes.button, - variant: "contained", - color: "primary", - rounded: true - }, !!requiredNetworkId && React__default.createElement(NetworkIndicator, { - iconClassName: classes.networkIndicator, - currentNetworkId: networkInfo === null || networkInfo === void 0 ? void 0 : networkInfo.networkId, - requiredNetworkId: requiredNetworkId, - onCorrectNetworkMessage: onCorrectNetworkMessage, - onNetworkMismatchMessage: onNetworkMismatchMessage, - noNetworkMessage: noNetworkMessage - }), React__default.createElement(Typography, { - className: classes.accountText - }, accountText())), React__default.createElement(Popover, { - id: id, - open: popoverOpen, - anchorEl: anchorEl, - onClose: handlePopoverClose, - anchorOrigin: { - vertical: 'bottom', - horizontal: 'center' - }, - transformOrigin: { - vertical: 'top', - horizontal: 'center' - } - }, React__default.createElement(Typography, { - className: classes.rightNetwork - }, `You are successfully connected to ${networkInfo === null || networkInfo === void 0 ? void 0 : networkInfo.name}.`)), React__default.createElement(AccountModal, { - open: accountModalOpen, - onClose: handleAccountModalClose, - web3: web3, - onProviderSet: handleAccountModalClose, - setProvider: setProvider, - availableProviders: availableProviders - }), React__default.createElement(WrongNetworkModal, { - open: wrongNetModalOpen, - onClose: closeWrongNetModal, - requiredNetworkName: requiredNetworkName, - currentNetworkName: networkInfo === null || networkInfo === void 0 ? void 0 : networkInfo.name - })); -}; - -const useStyles$l = styles.makeStyles(theme => ({ - activeNavlink: { - color: `${colors.white} !important`, - fontWeight: fonts.weight.medium - }, - navLink: { - alignItems: 'center', - color: colors.white, - display: 'flex', - paddingLeft: theme.spacing(5), - paddingRight: theme.spacing(5), - textAlign: 'center', - textDecoration: 'none', - '&:hover': { - color: colors.gray5, - textDecoration: 'none' - } - }, - navLinkContainer: { - display: 'flex' - }, - root: { - boxShadow: 'none', - height: theme.spacing(globalConstants.headerHeight) - } -})); - -const HeaderDesktop = ({ - hreflogo, - itemsStart, - itemsEnd, - login -}) => { - const classes = useStyles$l(); - const Login = login; - return React__default.createElement(core.AppBar, { - position: "fixed", - className: classes.root - }, React__default.createElement(core.Toolbar, null, React__default.createElement(core.Grid, { - container: true - }, React__default.createElement(core.Grid, { - item: true, - xs: 1 - }, React__default.createElement(reactRouterDom.NavLink, { - to: hreflogo - }, React__default.createElement(LogoNavbar, null))), React__default.createElement(core.Grid, { - item: true, - xs: 6, - xl: 8, - container: true, - justify: "flex-start" - }, !!(itemsStart === null || itemsStart === void 0 ? void 0 : itemsStart.length) && itemsStart.map(navItem => React__default.createElement(Typography, { - className: classes.navLinkContainer, - key: `hi-${removeEmptySpaces(navItem.title)}` - }, React__default.createElement(reactRouterDom.NavLink, Object.assign({ - className: classes.navLink, - activeClassName: classes.activeNavlink - }, navItem), navItem.title)))), React__default.createElement(core.Grid, { - item: true, - xs: 3, - xl: 2, - container: true, - justify: "flex-end", - alignContent: "center" - }, !!(itemsEnd === null || itemsEnd === void 0 ? void 0 : itemsEnd.length) && itemsEnd.map(({ - icon, - ...rest - }) => React__default.createElement(core.ListItemIcon, Object.assign({ - key: icon.key - }, rest), icon))), React__default.createElement(core.Grid, { - item: true, - container: true, - xs: 2, - xl: 1, - justify: "flex-end", - alignContent: "center" - }, React__default.createElement("div", null, React__default.createElement(Login, null)))))); -}; - -const drawerWidth = 240; -const useStyles$m = styles.makeStyles(theme => styles.createStyles({ - drawerHeader: { - display: 'flex', - alignItems: 'center', - padding: theme.spacing(0, 1), - ...theme.mixins.toolbar, - justifyContent: 'flex-end' - }, - drawerPaper: { - width: drawerWidth - }, - mobileAppBar: { - boxShadow: 'none', - height: theme.spacing(globalConstants.headerHeight), - transition: theme.transitions.create(['margin', 'width'], { - easing: theme.transitions.easing.sharp, - duration: theme.transitions.duration.leavingScreen - }) - }, - mobileAppBarShift: { - width: `calc(100% - ${drawerWidth}px)`, - marginLeft: drawerWidth, - transition: theme.transitions.create(['margin', 'width'], { - easing: theme.transitions.easing.easeOut, - duration: theme.transitions.duration.enteringScreen - }) - }, - mobileNavLink: { - alignItems: 'center', - color: colors.gray4, - display: 'flex', - textDecoration: 'none', - width: '100%', - '&:hover': { - color: colors.gray5, - textDecoration: 'none' - } - }, - mobileNavLinkActive: { - color: `${colors.primary} !important` - } -})); - -const HeaderMobile = ({ - hreflogo, - itemsStart, - itemsEnd, - login: Login -}) => { - const classes = useStyles$m(); - const [open, setOpen] = React.useState(false); - - const toggleDrawer = isOpen => event => { - if (event.type === 'keydown' && (event.key === 'Tab' || event.key === 'Shift')) { - return; - } - - setOpen(isOpen); - }; - - return React__default.createElement("div", { - role: "presentation", - onKeyDown: toggleDrawer(false) - }, React__default.createElement(core.AppBar, { - position: "fixed", - className: `${classes.mobileAppBar} ${open ? classes.mobileAppBarShift : ''}`.trim() - }, React__default.createElement(core.Toolbar, null, !open && React__default.createElement(core.Grid, { - container: true - }, React__default.createElement(core.Grid, { - item: true, - xs: 1 - }, React__default.createElement(core.IconButton, { - color: "inherit", - "aria-label": "open drawer", - onClick: toggleDrawer(true) - }, React__default.createElement(MenuIcon, null))), React__default.createElement(core.Grid, { - item: true, - xs: 3 - }, React__default.createElement(reactRouterDom.NavLink, { - to: hreflogo - }, React__default.createElement(LogoNavbar, null))), React__default.createElement(core.Grid, { - item: true, - md: 6, - sm: 5, - xs: 4, - container: true, - justify: "flex-end", - alignContent: "center" - }, !!(itemsEnd === null || itemsEnd === void 0 ? void 0 : itemsEnd.length) && itemsEnd.map(({ - icon, - ...rest - }) => React__default.createElement(core.ListItemIcon, Object.assign({ - key: icon.key - }, rest), icon))), React__default.createElement(core.Grid, { - item: true, - md: 2, - sm: 3, - xs: 4, - container: true, - justify: "flex-end", - alignContent: "center" - }, React__default.createElement("div", null, React__default.createElement(Login, null)))))), React__default.createElement(core.Drawer, { - anchor: "left", - open: open, - onClose: toggleDrawer(false), - classes: { - paper: classes.drawerPaper - }, - onClick: toggleDrawer(false) - }, React__default.createElement("div", { - className: classes.drawerHeader - }, React__default.createElement(core.IconButton, { - onClick: toggleDrawer(false) - }, React__default.createElement(ChevronLeftIcon, null))), React__default.createElement(core.Divider, null), React__default.createElement(core.List, null, !!(itemsStart === null || itemsStart === void 0 ? void 0 : itemsStart.length) && itemsStart.map(headerItem => React__default.createElement(core.ListItem, { - button: true, - key: `him-${removeEmptySpaces(headerItem.title)}` - }, React__default.createElement(reactRouterDom.NavLink, { - to: headerItem.to, - className: classes.mobileNavLink, - activeClassName: classes.mobileNavLinkActive - }, React__default.createElement(core.ListItemIcon, null, headerItem.icon), React__default.createElement(core.ListItemText, { - primary: headerItem.title - }))))))); -}; - -const Header = props => React__default.createElement(React__default.Fragment, null, React__default.createElement(Hidden, { - smDown: true -}, React__default.createElement(HeaderDesktop, Object.assign({}, props))), React__default.createElement(Hidden, { - mdUp: true -}, React__default.createElement(HeaderMobile, Object.assign({}, props)))); - -const useStyles$n = styles.makeStyles(theme => ({ - textContainer: { - alignItems: 'center', - backgroundColor: colors.primary, - display: 'flex', - justifyContent: 'center', - width: '100%' - }, - textContent: { - color: colors.white, - display: 'flex', - flexDirection: 'column', - textAlign: 'center', - [theme.breakpoints.down('sm')]: { - maxWidth: '90%' - }, - [theme.breakpoints.up('md')]: { - maxWidth: '65%' - }, - [theme.breakpoints.up('xl')]: { - maxWidth: '55%' - } - }, - titleContent: { - marginBottom: theme.spacing(1), - fontSize: theme.spacing(5), - fontWeight: fonts.weight.regular - }, - tongueImg: { - width: '100%' - } -})); - -const HeaderTongue = ({ - description, - titleLine1, - titleLine2 -}) => { - const classes = useStyles$n(); - return React__default.createElement(React__default.Fragment, null, React__default.createElement("div", { - className: classes.textContainer - }, React__default.createElement("div", { - className: classes.textContent - }, React__default.createElement(Typography, { - className: classes.titleContent, - variant: "h3" - }, titleLine1, React__default.createElement("br", null), ' ', titleLine2), React__default.createElement(Typography, { - variant: "subtitle1" - }, description))), React__default.createElement("img", { - className: classes.tongueImg, - src: headerTongueImg, - alt: "headerTongueImg" - })); -}; - -const useStyles$o = styles.makeStyles(theme => ({ - root: { - alignItems: 'center', - display: 'flex', - flexDirection: 'column', - marginTop: theme.spacing(3) - }, - container: { - alignItems: 'center', - display: 'flex', - flexDirection: 'column', - [theme.breakpoints.up('md')]: { - maxWidth: '80%' - } - }, - grayBackground: { - backgroundColor: colors.gray1 - }, - mainTitle: { - fontSize: theme.typography.pxToRem(50), - margin: theme.spacing(2, 0) - }, - questionsSection: { - alignItems: 'center', - display: 'flex', - flexDirection: 'column', - marginTop: theme.spacing(2) - } -})); - -const FAQPageTemplate = ({ - className = '', - mainTitle, - questionsAndAnswers -}) => { - const classes = useStyles$o(); - return React__default.createElement("div", { - className: `${classes.root} ${className}`.trim() - }, React__default.createElement("div", { - className: classes.container - }, React__default.createElement(Typography, { - className: classes.mainTitle, - variant: "h1", - color: "primary" - }, mainTitle), React__default.createElement("div", { - className: classes.questionsSection - }, questionsAndAnswers.map((qAndA, i) => React__default.createElement(FAQSection, Object.assign({ - className: `${i % 2 === 0 ? classes.grayBackground : ''}`, - key: `faq-${removeEmptySpaces(qAndA.question)}` - }, qAndA)))))); -}; - -const useStyles$p = styles.makeStyles(theme => ({ - root: { - marginTop: theme.spacing(globalConstants.headerHeight), - width: '100%' - } -})); - -const PageTemplate = ({ - children, - className = '', - ...props -}) => { - const classes = useStyles$p(); - return React__default.createElement("div", Object.assign({ - className: `${classes.root} ${className}`.trim() - }, props), children); -}; - -const defaultWeb3State = { - provider: undefined, - web3: undefined, - account: undefined, - networkInfo: undefined -}; -const Web3Store = React.createContext({ - state: defaultWeb3State, - actions: { - setProvider: () => Promise.resolve(), - onConnectedNetworkChange: () => 0, - onConnectedAccountChange: () => 0 - }, - requiredNetworkId: undefined, - requiredChainId: undefined -}); - -const getAccountFromEthAccounts = accounts => { - let account; - if (Array.isArray(accounts)) [account] = accounts;else account = accounts; - return account; -}; - -const shouldReadAccount = (requiredNetworkId, requiredChainId, networkInfo) => { - if (!requiredNetworkId) return true; - - if (requiredNetworkId === (networkInfo === null || networkInfo === void 0 ? void 0 : networkInfo.networkId)) { - if (requiredChainId) return requiredChainId === (networkInfo === null || networkInfo === void 0 ? void 0 : networkInfo.chainId); - return true; - } - - return false; -}; - -class Web3Provider extends React.Component { - constructor(props) { - super(props); - this.state = defaultWeb3State; - this.requiredNetworkId = props.requiredNetworkId; - this.requiredChainId = props.requiredChainId; - this.onConnectedNetworkChange = props.actions.onConnectedNetworkChange; - this.onConnectedAccountChange = props.actions.onConnectedAccountChange; - this.setProvider = this.setProvider.bind(this); - this.initialize(); - } - - setProvider(provider, onStateChanged) { - try { - const _this = this; - - return Promise.resolve(getWeb3(provider)).then(function (web3) { - return Promise.resolve(web3.eth.getAccounts()).then(function (accounts) { - return Promise.resolve(getNetworkInfoFromWeb3(web3)).then(function (networkInfo) { - const shouldSetAccount = shouldReadAccount(_this.requiredNetworkId, _this.requiredChainId, networkInfo); - const account = shouldSetAccount ? getAccountFromEthAccounts(accounts) : undefined; - - _this.setState({ - web3, - provider, - account, - networkInfo - }, () => onStateChanged && onStateChanged(account)); - }); - }); - }); - } catch (e) { - return Promise.reject(e); - } - } - - initialize() { - const _this2 = this; - - if (!window.ethereum) { - return; - } - - this.availableProviders = getAvailableProviders(); - window.ethereum.autoRefreshOnNetworkChange = false; - window.ethereum.on('networkChanged', function (_netId) { - try { - const { - networkInfo - } = _this2.state; - if (!networkInfo) return Promise.resolve(); - const { - provider - } = _this2.state; - return Promise.resolve(getWeb3(provider)).then(function (web3) { - return Promise.resolve(web3.eth.getAccounts()).then(function (accounts) { - return Promise.resolve(getNetworkInfoFromWeb3(web3)).then(function (newNetworkInfo) { - const shouldSetAccount = shouldReadAccount(_this2.requiredNetworkId, _this2.requiredChainId, newNetworkInfo); - const account = shouldSetAccount ? getAccountFromEthAccounts(accounts) : undefined; - - _this2.setState({ - networkInfo: newNetworkInfo, - account - }, () => _this2.onConnectedNetworkChange && _this2.onConnectedNetworkChange()); - }); - }); - }); - } catch (e) { - return Promise.reject(e); - } - }); - window.ethereum.on('accountsChanged', accounts => { - const { - networkInfo - } = this.state; - if (!networkInfo) return; - const shouldSetAccount = shouldReadAccount(this.requiredNetworkId, this.requiredChainId, networkInfo); - - if (shouldSetAccount) { - const account = getAccountFromEthAccounts(accounts); - - if (account) { - this.setState({ - account - }, () => this.onConnectedAccountChange && this.onConnectedAccountChange()); - } - } - }); - } - - render() { - const { - provider, - web3, - account, - networkInfo - } = this.state; - const { - setProvider, - onConnectedNetworkChange, - onConnectedAccountChange, - availableProviders - } = this; - const { - children - } = this.props; - return React__default.createElement(Web3Store.Provider, { - value: { - actions: { - setProvider, - onConnectedNetworkChange, - onConnectedAccountChange - }, - state: { - provider, - web3, - account, - networkInfo - }, - availableProviders - } - }, children); - } - -} - -var Web3Provider$1 = { - Consumer: Web3Store.Consumer, - Provider: Web3Provider -}; - -exports.Accordion = Accordion; -exports.Account = Account; -exports.AccountModal = AccountModal; -exports.Button = Button; -exports.Checkbox = Checkbox; -exports.CopyTextTooltip = CopyTextTooltip; -exports.FAQPageTemplate = FAQPageTemplate; -exports.FAQSection = FAQSection; -exports.FilterCheckboxCard = FilterCheckboxCard; -exports.Footer = Footer; -exports.FooterColumn = FooterColumn; -exports.Header = Header; -exports.HeaderTongue = HeaderTongue; -exports.LabeledCheckbox = LabeledCheckbox; -exports.LoginOption = LoginOption; -exports.Logo = Logo; -exports.LogoNavbar = LogoNavbar; -exports.Modal = Modal; -exports.ModalBody = ModalBody; -exports.ModalDialogue = ModalDialogue; -exports.ModalFooter = ModalFooter; -exports.ModalHeader = ModalHeader; -exports.ModalTitle = ModalTitle; -exports.NetworkIndicator = NetworkIndicator; -exports.PageTemplate = PageTemplate; -exports.RangeSliderWithInputs = RangeSliderWithInputs; -exports.ShortenTextTooltip = ShortenTextTooltip; -exports.StyledNavTab = StyledNavTab; -exports.StyledTabs = StyledTabs; -exports.SwitchTabs = SwitchTabs; -exports.TooltipIconButton = TooltipIconButton; -exports.UnitsInput = UnitsInput; -exports.Web3Provider = Web3Provider$1; -exports.Web3Store = Web3Store; -exports.WithSpinner = WithSpinner; -exports.WrongNetworkModal = WrongNetworkModal; -exports.colors = colors; -exports.defaultWeb3State = defaultWeb3State; -exports.doneThumbsUpImg = doneThumbsUp; -exports.fonts = fonts; -exports.footerTongueImg = footerTongue; -exports.globalConstants = globalConstants; -exports.headerTongueImg = headerTongueImg; -exports.logoBlackAndBlue = logoBlackAndBlue; -exports.logoBlueIcon = logoBlueIcon; -exports.logoFullWhite = logoFullWhite; -exports.maxSupportedNumber = maxSupportedNumber; -exports.metaMaskIconImg = metaMaskIconImg; -exports.minSupportedNumber = minSupportedNumber; -exports.nameServiceImg = nameService; -exports.niftyIconImg = niftyIconImg; -exports.removeEmptySpaces = removeEmptySpaces; -exports.rifComImg = rifCom; -exports.rifDirImg = rifDir; -exports.rifGatImg = rifGat; -exports.rifMarImg = rifMar; -exports.rifPayImg = rifPay; -exports.rifStoImg = rifSto; -exports.rskLogo = rskLogo; -exports.shortenString = shortenString; -exports.storageImg = storage; -exports.theme = theme; -exports.tickWideImg = tickWide; -exports.validatedNumber = validatedNumber; -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 135143ab..00000000 --- a/dist/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../src/components/atoms/Button.tsx","../src/theme/theme.ts","../src/components/atoms/Checkbox.tsx","../src/assets/images/icons/nifty.png","../src/assets/images/icons/rifCom.png","../src/assets/images/icons/rifDir.png","../src/assets/images/icons/rifGat.png","../src/assets/images/icons/rifMar.png","../src/assets/images/icons/rifPay.png","../src/assets/images/icons/rifSto.png","../src/models/ProviderInfo.ts","../src/components/atoms/LoginOption.tsx","../src/components/atoms/Logo.tsx","../src/components/atoms/LogoNavbar.tsx","../src/components/atoms/StyledNavTab.tsx","../src/components/atoms/NetworkIndicator.tsx","../src/components/atoms/modal/Modal.tsx","../src/components/atoms/modal/ModalHeader.tsx","../src/components/atoms/modal/ModalTitle.tsx","../src/components/atoms/modal/ModalFooter.tsx","../src/components/atoms/modal/ModalBody.tsx","../src/components/hoc/WithSpinner.tsx","../src/components/molecules/Accordion.tsx","../src/components/molecules/AccountModal.tsx","../src/components/molecules/CopyTextTooltip.tsx","../src/components/molecules/FAQSection.tsx","../src/components/molecules/LabeledCheckbox.tsx","../src/components/molecules/FilterCheckboxCard.tsx","../src/utils.ts","../src/components/molecules/FooterColumn.tsx","../src/components/molecules/ModalDialogue.tsx","../src/components/molecules/UnitsInput.tsx","../src/components/molecules/RangeSliderWithInputs.tsx","../src/components/molecules/ShortenTextTooltip.tsx","../src/components/molecules/StyledTabs.tsx","../src/components/molecules/SwitchTabs.tsx","../src/components/molecules/TooltipIconButton.tsx","../src/components/molecules/WrongNetworkModal.tsx","../src/components/organisms/Footer.tsx","../src/models/Enums.ts","../node_modules/babel-plugin-transform-async-to-promises/helpers.js","../src/services/Web3Service.ts","../src/components/organisms/Account.tsx","../src/components/organisms/Header/HeaderDesktop.tsx","../src/components/organisms/Header/HeaderMobile.tsx","../src/components/organisms/Header/Header.tsx","../src/components/organisms/Header/HeaderTongue.tsx","../src/components/templates/FAQPageTemplate.tsx","../src/components/templates/PageTemplate.tsx","../src/providers/Web3Provider.tsx"],"sourcesContent":["import React, { FC } from 'react'\nimport { Button as MUIButton, ButtonProps as MUIButtonProps } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\n\nexport interface ButtonProps extends MUIButtonProps {\n block?: boolean\n shadow?: boolean\n rounded?: boolean\n}\n\nconst useStyles = makeStyles(() => ({\n block: {\n width: '100%',\n },\n noShadow: {\n boxShadow: 'none',\n },\n rounded: {\n borderRadius: 50,\n },\n}))\n\nconst Button: FC = ({\n className = '', block, shadow, rounded, children, ...rest\n}) => {\n const classes = useStyles()\n\n return (\n \n {children}\n \n )\n}\n\nexport default Button\n","import { createMuiTheme } from '@material-ui/core/styles'\nimport '../assets/css/fonts/rubik.css'\n\nexport const colors = {\n black: '#000000',\n primary: '#008FF7',\n darkBlue: '#197DC6',\n gray1: '#F8F7F7',\n gray2: '#E5E5E5',\n gray3: '#C4C4C4',\n gray4: '#919191',\n gray5: '#4D4C4C',\n gray6: '#15171B',\n transparent: '#FFFFFF00',\n white: '#FFFFFF',\n}\n\nexport const fonts = {\n family: 'Rubik',\n size: {\n tiny: 10,\n small: 12,\n normal: 14,\n medium: 16,\n subtitleSmall: 18,\n subtitleBig: 22,\n },\n weight: {\n light: 300,\n regular: 400,\n medium: 500,\n bold: 700,\n },\n}\n\nexport const globalConstants = {\n headerHeight: 8,\n}\n\nconst theme = createMuiTheme({\n palette: {\n primary: {\n main: colors.primary,\n },\n secondary: {\n main: colors.gray4,\n },\n },\n typography: {\n fontFamily: fonts.family,\n button: {\n textTransform: 'none',\n },\n fontWeightLight: fonts.weight.light,\n fontWeightRegular: fonts.weight.regular,\n fontWeightMedium: fonts.weight.medium,\n fontWeightBold: fonts.weight.bold,\n body1: {\n fontWeight: fonts.weight.light,\n },\n },\n props: {},\n overrides: {\n MuiButton: {\n root: {\n fontWeight: fonts.weight.light,\n },\n },\n MuiFormControlLabel: {\n root: {\n color: colors.gray3,\n },\n },\n MuiSlider: {\n rail: {\n color: colors.gray3,\n height: 4,\n opacity: 1,\n },\n root: {\n width: '100%',\n color: colors.primary,\n height: 4,\n },\n track: {\n height: 4,\n },\n thumb: {\n marginLeft: -4,\n height: 14,\n width: 14,\n },\n },\n MuiTextField: {\n root: {\n color: colors.gray3,\n '&:hover': {\n color: colors.gray2,\n },\n },\n },\n },\n})\n\nexport default theme\n","import React, { FC, useState } from 'react'\nimport {\n Checkbox as MUICheckbox,\n CheckboxProps as MUICheckboxProps,\n makeStyles,\n createStyles,\n} from '@material-ui/core'\nimport { CheckBoxOutlineBlankSharp, CheckBoxSharp } from '@material-ui/icons'\nimport { colors } from '../../theme'\n\nexport type CheckboxProps = MUICheckboxProps;\n\nconst useStyles = makeStyles(() => createStyles({\n unCheckedIcon: {\n color: colors.gray4,\n },\n checkedIcon: {\n color: colors.primary,\n },\n}))\n\nconst Checkbox: FC = (props) => {\n const classes = useStyles()\n const { checked } = props\n const [isChecked, setIsChecked] = useState(!!checked)\n\n const handleChange = (event: React.ChangeEvent,\n newChecked: boolean): void => {\n setIsChecked(newChecked)\n const { onChange } = props\n\n if (onChange) onChange(event, newChecked)\n }\n\n return (\n \n }\n icon={\n \n }\n {...props}\n checked={isChecked}\n onChange={handleChange}\n />\n )\n}\n\nexport default Checkbox\n","/* loaded by smart-asset */\nexport default require(\"./nifty~RMIWdZeg.png\")","/* loaded by smart-asset */\nexport default require(\"./rifCom~udwpaCym.png\")","/* loaded by smart-asset */\nexport default require(\"./rifDir~bottaDNJ.png\")","/* loaded by smart-asset */\nexport default require(\"./rifGat~balFpEzC.png\")","/* loaded by smart-asset */\nexport default require(\"./rifMar~IDqKMWpK.png\")","/* loaded by smart-asset */\nexport default require(\"./rifPay~bdtOAceT.png\")","/* loaded by smart-asset */\nexport default require(\"./rifSto~fMRetflo.png\")","import { metaMaskIconImg, niftyIconImg } from '../assets/images'\n\nexport default interface ProviderInfo {\n name: string\n eProvider: EProvider\n iconImg?: string\n}\n\nexport enum EProvider {\n METAMASK = 'Metamask',\n NIFTY = 'Nifty',\n LEDGER = 'Ledger',\n TREZOR = 'Trezor',\n TRUST = 'Trust',\n LOCAL = 'Localhost',\n GO_WALLET = 'GoWallet',\n ALPHA_WALLET = 'AlphaWallet',\n STATUS = 'status',\n CIPHER = 'cipher',\n COINBASE = 'coinbase',\n MIST = 'mist',\n PARITY = 'parity',\n INFURA = 'infura'\n}\n\nexport const getProviderInfo = (eProvider: EProvider): ProviderInfo => {\n switch (eProvider) {\n case EProvider.METAMASK:\n return {\n name: 'MetaMask',\n eProvider,\n iconImg: metaMaskIconImg,\n }\n case EProvider.NIFTY:\n return {\n name: 'Nifty',\n eProvider,\n iconImg: niftyIconImg,\n }\n case EProvider.LEDGER:\n return {\n name: 'Ledger',\n eProvider,\n }\n case EProvider.TREZOR:\n return {\n name: 'Trezor',\n eProvider,\n }\n case EProvider.TRUST:\n return {\n name: 'Trust',\n eProvider,\n }\n case EProvider.GO_WALLET:\n return {\n name: 'Go Wallet',\n eProvider,\n }\n case EProvider.ALPHA_WALLET:\n return {\n name: 'Alpha Wallet',\n eProvider,\n }\n case EProvider.STATUS:\n return {\n name: 'Status',\n eProvider,\n }\n case EProvider.COINBASE:\n return {\n name: 'Coinbase',\n eProvider,\n }\n case EProvider.MIST:\n return {\n name: 'Mist',\n eProvider,\n }\n case EProvider.PARITY:\n return {\n name: 'Parity',\n eProvider,\n }\n case EProvider.INFURA:\n return {\n name: 'Infura',\n eProvider,\n }\n case EProvider.LOCAL:\n return {\n name: 'Localhost',\n eProvider,\n }\n default: {\n throw new Error(\n `EProvider not implemented or unknown. Chosen provider ${eProvider}`,\n )\n }\n }\n}\n","import React, { FC } from 'react'\nimport { makeStyles, Theme, Tooltip } from '@material-ui/core'\nimport Button from './Button'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport { niftyIconImg } from '../../assets/images'\n\nexport interface LoginOptionProps {\n className?: string\n onClick?: () => void\n providerInfo?: ProviderInfo\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n padding: 5,\n margin: 5,\n width: '100%',\n },\n content: {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n maxHeight: theme.spacing(5),\n justifyContent: 'center',\n },\n imageWrapper: {\n maxHeight: theme.spacing(4),\n marginRight: theme.spacing(2),\n },\n}))\n\n/**\n * If not providerInfo is received, we assume there's no provider available and so suggest to install Nifty wallet\n * Same happens when no onClick is provided. We open the Nifty page on a new tab\n */\nconst LoginOption: FC = ({\n className = '',\n onClick,\n providerInfo,\n ...rest\n}) => {\n const classes = useStyles()\n\n const providerContent = (\n
\n {\n providerInfo?.iconImg\n && (\n \n )\n }\n {providerInfo?.name}\n
\n )\n\n const handleOnClick = () => {\n if (onClick) {\n return onClick()\n }\n return window.open('https://www.poa.network/for-users/nifty-wallet/getting-started', '_blank')\n }\n\n return (\n \n {/* only with Nifty we display the Tooltip because atm we can't check if MetaMask is also enabled */}\n {!!providerInfo && providerInfo.eProvider === EProvider.NIFTY\n && (\n \n {providerContent}\n \n )}\n {!!providerInfo && providerInfo.eProvider !== EProvider.NIFTY\n && providerContent}\n {!providerInfo\n && (\n
\n \n Install Nifty wallet\n
\n )}\n \n )\n}\n\nexport default LoginOption\n","import React, { FC } from 'react'\nimport { logoFullWhite } from '../../assets/images'\n\nconst Logo: FC> = (\n { alt = 'RIF OS logo', ...rest },\n) => {alt}\n\nexport default Logo\n","import React, { FC } from 'react'\nimport { logoFullWhite } from '../../assets/images'\n\ninterface LogoProps extends React.Props {\n alt?: string\n height?: string | number\n style?: React.CSSProperties\n}\n\nconst LogoNavbar: FC = ({ alt = 'navbar logo', height = '44px', ...rest }) => (\n \n)\nexport default LogoNavbar\n","import React, { FC } from 'react'\nimport { Theme, makeStyles } from '@material-ui/core/styles'\nimport Tab from '@material-ui/core/Tab'\nimport { NavLink } from 'react-router-dom'\nimport { colors } from '../../theme'\n\nexport interface StyledNavTabProps {\n label: string\n to: string\n value: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n textTransform: 'none',\n color: colors.gray5,\n fontWeight: theme.typography.fontWeightRegular,\n fontSize: theme.typography.pxToRem(15),\n marginRight: theme.spacing(1),\n '&:focus': {\n opacity: 1,\n },\n },\n selected: {\n fontWeight: theme.typography.fontWeightMedium,\n borderBottom: '2px solid #000000',\n },\n}))\n\nconst StyledNavTab: FC = (props: StyledNavTabProps) => {\n const classes = useStyles()\n return \n}\n\nexport default StyledNavTab\n","import React, { FC } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport CheckCircleOutlineOutlinedIcon from '@material-ui/icons/CheckCircleOutlineOutlined'\nimport ErrorIcon from '@material-ui/icons/Error'\nimport WarningIcon from '@material-ui/icons/Warning'\nimport { green, yellow } from '@material-ui/core/colors'\n\nexport interface NetworkIndicatorProps {\n iconClassName?: string\n currentNetworkId?: number\n requiredNetworkId?: number\n onCorrectNetworkMessage?: string\n onNetworkMismatchMessage?: string\n noNetworkMessage?: string\n}\n\nconst defaultonCorrectNetworkMessage = 'You are on the right network'\nconst deaulftonNetworkMismatchMessage = 'You are on the wrong network'\nconst defaultNoNetworkMessage = 'You are not connected to any network'\n\nexport enum NetworkStatus {\n NO_NETWORK = 1,\n NETWORK_MISSMATCH = 2,\n CORRECT_NETWORK = 3\n}\n\nconst getNetworkStatus = (currentNetworkId, requiredNetworkId): NetworkStatus => {\n if (!currentNetworkId) return NetworkStatus.NO_NETWORK\n\n if (currentNetworkId === requiredNetworkId) return NetworkStatus.CORRECT_NETWORK\n return NetworkStatus.NETWORK_MISSMATCH\n}\n\nconst NetworkIndicator: FC = ({\n iconClassName = '',\n currentNetworkId, requiredNetworkId, onCorrectNetworkMessage,\n onNetworkMismatchMessage, noNetworkMessage,\n}) => {\n const networkStatus = getNetworkStatus(currentNetworkId, requiredNetworkId)\n\n const iconPerNetworkStatus = new Map()\n iconPerNetworkStatus.set(NetworkStatus.NO_NETWORK, (\n \n \n \n ))\n iconPerNetworkStatus.set(NetworkStatus.NETWORK_MISSMATCH, (\n \n \n \n ))\n iconPerNetworkStatus.set(NetworkStatus.CORRECT_NETWORK, (\n \n \n \n ))\n\n return (\n iconPerNetworkStatus.get(networkStatus)\n )\n}\n\nexport default NetworkIndicator\n","import React, { FC } from 'react'\nimport { Modal as MUIModal, ModalProps as MUIModalProps } from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport type ModalProps = MUIModalProps;\n\nconst useStyles = makeStyles((theme: Theme) => ({\n paper: {\n backgroundColor: theme.palette.background.paper,\n border: `2px solid ${colors.primary}`,\n boxShadow: theme.shadows[5],\n left: '50%',\n minWidth: 400,\n padding: theme.spacing(2, 4, 3),\n position: 'absolute',\n top: '50%',\n transform: 'translate(-50%, -50%)',\n },\n}))\n\nconst Modal: FC = ({ children, ...rest }) => {\n const classes = useStyles()\n\n return (\n \n
\n {children}\n
\n
\n )\n}\n\nexport default Modal\n","import React, { FC } from 'react'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport interface ModalHeaderProps {\n className?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n borderBottom: `1px solid ${colors.gray2}`,\n color: colors.primary,\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n },\n}))\n\nconst ModalHeader: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalHeader\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\n\nexport interface ModalTitleProps {\n className?: string\n}\n\nconst ModalTitle: FC = ({ children, ...rest }) => (\n \n {children}\n \n)\n\nexport default ModalTitle\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport interface ModalFooterProps {\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n borderTop: `1px solid ${colors.gray2}`,\n display: 'flex',\n justifyContent: 'center',\n paddingTop: theme.spacing(1),\n width: '100%',\n },\n}))\n\nconst ModalFooter: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalFooter\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\n\nexport interface ModalBodyProps {\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n padding: theme.spacing(3, 0),\n width: '100%',\n },\n}))\n\nconst ModalBody: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalBody\n","import React from 'react'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { logoBlueIcon } from '../../assets/images'\n\nconst useStyles = makeStyles(() => ({\n '@keyframes spin': {\n '0%': { transform: 'rotate(0deg)' },\n '100%': { transform: 'rotate(360deg)' },\n },\n root: {\n position: 'relative',\n },\n overlay: {\n position: 'absolute',\n zIndex: 2,\n height: '100%',\n width: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n background: '#FFFFFF55',\n },\n spinner: {\n display: 'inline-block',\n zIndex: 3,\n width: '50px',\n height: '50px',\n border: 'none',\n animation: '$spin 2s ease-in-out infinite',\n },\n}))\n\nconst WithSpinner = (WrappedComponent: React.ElementType) => {\n const Spinner = ({ isLoading, ...props }) => {\n const classes = useStyles()\n\n return (\n
\n {\n isLoading\n && (\n
\n \"logo\"\n
\n )\n }\n \n
\n )\n }\n return Spinner\n}\n\nexport default WithSpinner\n","import React, { FC, useState } from 'react'\nimport { Accordion as MUIAccordion, AccordionProps as MUIAccordionProps } from '@material-ui/core'\nimport Typography from '@material-ui/core/Typography'\nimport AccordionDetails from '@material-ui/core/AccordionDetails'\nimport AccordionSummary from '@material-ui/core/AccordionSummary'\nimport { makeStyles, Theme, createStyles } from '@material-ui/core/styles'\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore'\nimport { colors } from '../../theme'\n\ninterface AccordionProps extends MUIAccordionProps {\n id: string\n title?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n root: {\n boxShadow: 'none',\n color: colors.gray4,\n width: '100%',\n },\n heading: {\n color: colors.gray4,\n fontSize: theme.typography.pxToRem(15),\n fontWeight: theme.typography.fontWeightRegular,\n width: '100%',\n },\n accordionSummary: {\n borderBottom: `1px solid ${colors.gray2}`,\n },\n}))\n\nconst Accordion: FC = ({\n children, expanded, id, title,\n}) => {\n const classes = useStyles()\n const [isExpanded, setIsExpanded] = useState(!!expanded)\n\n const onChange = (): void => setIsExpanded(!isExpanded)\n\n return (\n \n }\n aria-controls={`panel-${id}-content`}\n id={id}\n >\n {title}\n \n \n {children}\n \n \n )\n}\n\nexport default Accordion\n","import React, { FC } from 'react'\nimport Web3 from 'web3'\nimport {\n Button, LoginOption, Modal, ModalBody, ModalFooter, ModalHeader, ModalTitle,\n} from '../atoms'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport NetworkInfo from '../../models/NetworkInfo'\n\nexport interface AccountModalProps {\n web3?: Web3\n networkInfo?: NetworkInfo\n setProvider?: (provider: EProvider, onProviderSet?:\n (account?: string) => void) => Promise\n availableProviders?: ProviderInfo[]\n onClose?: () => void\n onProviderSet?: (account) => void\n open: boolean\n}\n\nconst AccountModal: FC = ({\n setProvider,\n availableProviders,\n open,\n onClose,\n onProviderSet,\n}) => (\n \n \n \n Connect a wallet to get started\n \n \n {\n availableProviders && availableProviders.length && availableProviders.map(\n (providerInfo) => (\n => {\n if (setProvider) await setProvider(providerInfo.eProvider, onProviderSet)\n }}\n />\n ),\n )\n }\n {!availableProviders\n && (\n // TODO: Create LoginOptionTemplate to extract this\n // empty LoginOption means suggest to install Nifty wallet\n \n )}\n \n \n \n Close\n \n \n \n \n)\n\nexport default AccountModal\n","import React, { FC, useState } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport { makeStyles } from '@material-ui/core/styles'\nimport FileCopyIcon from '@material-ui/icons/FileCopy'\nimport Typography from '@material-ui/core/Typography'\n\nexport interface CopyTextTooltipProps {\n displayElement: React.ReactElement\n fullText: string\n}\n\nconst useStyles = makeStyles(() => ({\n tooltipTitle: {\n display: 'flex',\n alignItems: 'center',\n },\n}))\n\nconst CopyTextTooltip: FC = ({ displayElement, fullText }) => {\n const [isCopied, setIsCopied] = useState(false)\n\n const classes = useStyles()\n\n const tooltipContent = (\n
\n \n \n {fullText}\n \n
\n )\n\n return (\n Copied! : tooltipContent}\n onClick={() => {\n navigator.clipboard.writeText(fullText)\n .then(() => { setIsCopied(true) })\n }}\n onClose={() => {\n setIsCopied(false)\n }}\n >\n {displayElement}\n \n )\n}\n\nexport default CopyTextTooltip\n","import React, { FC, useState } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Accordion from '@material-ui/core/Accordion'\nimport AccordionDetails from '@material-ui/core/AccordionDetails'\nimport AccordionSummary from '@material-ui/core/AccordionSummary'\nimport Typography from '@material-ui/core/Typography'\nimport AddIcon from '@material-ui/icons/Add'\nimport RemoveIcon from '@material-ui/icons/Remove'\nimport { colors, fonts } from '../../theme'\n\nexport interface FAQSectionProps {\n answer: string\n initiallyExpanded?: boolean\n question: string\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n boxShadow: 'none',\n color: colors.gray4,\n width: '100%',\n },\n heading: {\n display: 'flex',\n justifyContent: 'center',\n color: colors.gray5,\n fontSize: fonts.size.subtitleSmall,\n width: '100%',\n },\n headingExpanded: {\n color: colors.primary,\n },\n headingCollapsed: {\n fontWeight: fonts.weight.regular,\n },\n panelDetails: {\n display: 'flex',\n justifyContent: 'center',\n },\n answerContainer: {\n [theme.breakpoints.up('md')]: {\n maxWidth: '80%',\n },\n },\n answerText: {\n color: colors.gray5,\n },\n}))\n\nconst FAQSection: FC = ({\n className = '', initiallyExpanded, question, answer,\n}) => {\n const classes = useStyles()\n const [isExpanded, setIsExpanded] = useState(!!initiallyExpanded)\n\n const onChange = (): void => setIsExpanded(!isExpanded)\n\n return (\n \n : }\n >\n {question}\n \n \n
\n {answer}\n
\n
\n
\n )\n}\n\nexport default FAQSection\n","import React, { FC } from 'react'\nimport { FormControlLabel } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Checkbox, { CheckboxProps } from '../atoms/Checkbox'\nimport { colors } from '../../theme'\n\nexport interface LabeledCheckboxProps extends CheckboxProps {\n labelText: string\n labelClassName?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n color: colors.gray4,\n width: '100%',\n },\n}))\n\nconst LabeledCheckbox: FC = ({ labelText, labelClassName = '', ...rest }) => {\n const classes = useStyles()\n return (\n \n }\n />\n\n )\n}\n\nexport default LabeledCheckbox\n","import React, { FC } from 'react'\nimport LabeledCheckbox, { LabeledCheckboxProps } from './LabeledCheckbox'\n\nexport interface FilterCheckboxCardProps {\n className?: string\n items: LabeledCheckboxProps[]\n onClick?: (event: React.MouseEvent) => void\n}\n\nconst FilterCheckboxCard: FC = ({ className = '', onClick, items }) => (\n
\n {items.map((item: LabeledCheckboxProps, i) => (\n \n ))}\n
\n)\n\nexport default FilterCheckboxCard\n","const shortenString = (\n str: string,\n largerThan = 16,\n charsShownCount = 6,\n): string => (str.length > largerThan\n ? `${str.substr(0, charsShownCount)}...${str.substr(str.length - 4)}`\n : str)\n\nconst removeEmptySpaces = (str: string): string => str.replace(/\\s/g, '')\n\nconst maxSupportedNumber = 99999999999999\nconst minSupportedNumber = 0.000001\n\nconst validatedNumber = (num: number): number => {\n if (num > 0) {\n if (num > maxSupportedNumber) return maxSupportedNumber\n\n if (num < minSupportedNumber) return minSupportedNumber\n }\n\n if (num < 0) {\n if (num < -maxSupportedNumber) return -maxSupportedNumber\n\n if (num > -minSupportedNumber) return -minSupportedNumber\n }\n return num\n}\n\nexport {\n shortenString,\n removeEmptySpaces,\n maxSupportedNumber,\n minSupportedNumber,\n validatedNumber,\n}\n","import React, { FC } from 'react'\nimport { NavLinkProps, NavLink } from 'react-router-dom'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../theme'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FooterColumnProps {\n className?: string\n links: FooterLinkProps[]\n title: string\n}\n\nexport interface FooterLinkProps extends NavLinkProps {\n isExternal?: boolean\n title: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n },\n footerLink: {\n color: colors.gray4,\n fontWeight: fonts.weight.light,\n textDecoration: 'none',\n '&:hover': {\n fontWeight: fonts.weight.regular,\n },\n },\n footerTitle: {\n fontSize: fonts.size.subtitleBig,\n textAlign: 'center',\n },\n}))\n\nconst FooterColumn: FC = ({ title, links, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {title}\n {\n links.map((link: FooterLinkProps) => {\n const key = removeEmptySpaces(link.title)\n\n if (link.isExternal) {\n const href = (link.to || '#').toString()\n return (\n \n {link.title}\n \n )\n }\n return (\n \n {link.title}\n \n )\n })\n }\n
\n )\n}\n\nexport default FooterColumn\n","import React, { FC } from 'react'\nimport {\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n ModalTitle,\n} from '../atoms'\nimport { ModalProps } from '../atoms/modal/Modal'\n\nexport interface ModalDialogueProps extends ModalProps {\n title: string\n footer?: React.ReactElement\n}\n\nconst ModalDialogue: FC = ({\n title,\n footer,\n children,\n ...props\n}) => (\n \n \n \n {title}\n \n {children}\n {footer}\n \n \n)\n\nexport default ModalDialogue\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Input, { InputProps } from '@material-ui/core/Input'\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../theme'\n\nexport interface UnitsInputProps extends InputProps {\n handleOnChange: (event: React.ChangeEvent) => void\n handleOnBlur?: () => void\n maxValue?: number\n minValue?: number\n step?: number\n units?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n color: colors.gray4,\n display: 'flex',\n },\n input: {\n color: colors.gray4,\n paddingLeft: theme.spacing(0.1),\n textAlign: 'center',\n '&::before': {\n borderBottom: `1px solid ${colors.gray4}`,\n },\n },\n inputContainer: {\n paddingRight: '0 !important',\n },\n units: {\n color: colors.gray4,\n display: 'flex',\n fontSize: fonts.size.tiny,\n },\n unitsContainer: {\n alignSelf: 'center',\n color: colors.gray4,\n display: 'flex',\n fontSize: fonts.size.normal,\n paddingLeft: '0 !important',\n },\n}))\n\nconst UnitsInput: FC = ({\n maxValue,\n minValue,\n units,\n value,\n step = 1,\n handleOnBlur,\n handleOnChange,\n ...rest\n}) => {\n const classes = useStyles()\n\n return (\n \n \n \n \n \n \n \n {units}\n \n \n \n \n )\n}\n\nexport default UnitsInput\n","import Slider, { SliderProps } from '@material-ui/core/Slider'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport UnitsInput from './UnitsInput'\nimport { validatedNumber } from '../../utils'\nimport { fonts } from '../../theme'\n\nexport interface RangeSliderWithInputsProps extends SliderProps {\n values: {\n start: number\n end: number\n }\n unit?: string\n handleChange: ({ min, max }) => void\n className?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n width: '100%',\n },\n inputsContainer: {\n alignSelf: 'center',\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n },\n toContainer: {\n alignSelf: 'center',\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n fontWeight: fonts.weight.regular,\n },\n}))\n\nconst RangeSliderWithInputs: FC = ({\n values: {\n start: startValue, end: endValue,\n }, unit, handleChange, className, ...rest\n}) => {\n const classes = useStyles()\n\n const maxValue = rest.max || endValue\n const minValue = rest.min || startValue\n const step = rest.step || 1\n\n const handleStartInputChange = (\n event: React.ChangeEvent,\n ): void => {\n const newStartValue = validatedNumber(Number(event.target.value)) || minValue\n handleChange({ min: newStartValue, max: endValue })\n }\n\n const handleEndInputChange = (\n event: React.ChangeEvent,\n ): void => {\n const newEndValue = validatedNumber(Number(event.target.value)) || endValue\n handleChange({ min: startValue, max: newEndValue })\n }\n\n const handleSliderChange = (\n _: React.ChangeEvent<{}>, newSliderValue: number | number[],\n ): void => {\n handleChange({ min: newSliderValue[0], max: newSliderValue[1] })\n }\n\n const handleStartValueBlur = (): void => {\n if (startValue < minValue) {\n handleChange({ min: minValue, max: endValue })\n } else if (startValue > endValue) {\n handleChange({ min: endValue, max: endValue })\n }\n }\n\n const handleEndValueBlur = (): void => {\n if (endValue < startValue) {\n handleChange({ min: minValue, max: startValue })\n } else if (endValue > maxValue) {\n handleChange({ min: minValue, max: maxValue })\n }\n }\n\n const getCommonInputValues = (): {} => ({\n maxValue,\n minValue,\n step,\n units: unit,\n })\n\n return (\n
\n \n
\n \n \n to\n \n \n
\n
\n )\n}\n\nexport default RangeSliderWithInputs\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport CopyTextTooltip from './CopyTextTooltip'\nimport { shortenString } from '../../utils'\n\nexport interface ShortenTextTooltipProps {\n value: string\n maxLength?: number\n charsShownCount?: number\n}\n\nconst ShortenTextTooltip: FC = ({ value, maxLength = 20, charsShownCount }) => (\n \n {\n value.length > maxLength\n && (\n {shortenString(value, maxLength, charsShownCount || maxLength - 5)}}\n fullText={value}\n />\n )\n }\n {\n value.length <= maxLength\n && value\n }\n \n)\n\nexport default ShortenTextTooltip\n","import React, { FC } from 'react'\nimport Tabs, { TabsProps } from '@material-ui/core/Tabs'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { colors } from '../../theme'\n\nexport interface StyledTabsProps {\n value: string\n onChange: (event: React.ChangeEvent<{}>, newValue: string) => void\n}\n\nconst useStyles = makeStyles({\n indicator: {\n display: 'flex',\n justifyContent: 'center',\n backgroundColor: 'transparent',\n },\n root: {\n borderBottom: `1px solid ${colors.gray3}`,\n },\n})\n\nconst StyledTabs: FC = (props: TabsProps) => {\n const { children } = props\n const classes = useStyles()\n return (\n \n {children}\n \n )\n}\n\nexport default StyledTabs\n","import { Tab as MUITab, Tabs as MUITabs } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React, { FC } from 'react'\nimport { colors, fonts } from '../../theme'\n\nexport interface SwitchTabsProps {\n label1: string\n label2: string\n value?: 0 | 1\n onChange: (event: React.ChangeEvent<{}>, value: number) => void\n}\n\nconst a11yProps = (index: number): {} => ({\n id: `full-width-tab-${index}`,\n 'aria-controls': `full-width-tabpanel-${index}`,\n})\n\nconst useStyles = makeStyles(() => ({\n root: {\n backgroundColor: colors.white,\n minHeight: 20,\n width: '100%',\n border: `${colors.primary} solid 1px`,\n borderRadius: 50,\n overflow: 'hidden',\n },\n tabContainer: {\n minHeight: 20,\n width: '100%',\n },\n tab: {\n '&:hover': {\n color: colors.primary,\n },\n borderRadius: 50,\n color: colors.gray3,\n fontWeight: fonts.weight.light,\n maxWidth: '50%',\n minHeight: '100%',\n minWidth: '50%',\n outlineStyle: 'none',\n padding: 0,\n textTransform: 'capitalize',\n zIndex: 1,\n '&:focus': {\n outlineStyle: 'none',\n },\n },\n // shows the transition between tabs\n tabIndicator: {\n backgroundColor: colors.primary,\n borderRadius: 50,\n height: '100%',\n },\n tabSelected: {\n // the '!important' overrides the on hover functionality when it's active\n backgroundColor: `${colors.primary} !important`,\n color: `${colors.white} !important`,\n },\n}))\n\nconst SwitchTabs: FC = ({\n label1, label2, value: controlledValue, onChange,\n}) => {\n const classes = useStyles()\n\n const handleChange = (\n event: React.ChangeEvent<{}>, newValue: number,\n ): void => {\n onChange(event, newValue)\n }\n\n return (\n
\n \n \n \n \n
\n )\n}\n\nexport default SwitchTabs\n","import React, { FC } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport IconButton, { IconButtonProps } from '@material-ui/core/IconButton'\n\nexport interface TooltipIconButtonProps {\n tooltipTitle: string\n iconButtonProps: IconButtonProps\n icon: React.ReactNode\n}\n\nconst TooltipIconButton: FC = ({\n tooltipTitle,\n iconButtonProps,\n icon,\n}) => (\n \n \n \n {icon}\n \n \n\n \n)\n\nexport default TooltipIconButton\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport Box from '@material-ui/core/Box'\nimport Grid from '@material-ui/core/Grid'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../theme'\nimport ModalDialogue from './ModalDialogue'\n\nexport interface WrongNetworkModalProps {\n open: boolean\n currentNetworkName?: string\n requiredNetworkName: string\n onClose: () => void\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n boxContainer: {\n border: `1px solid ${colors.primary}`,\n padding: theme.spacing(5),\n marginTop: theme.spacing(3),\n },\n loaderContainer: {\n display: 'flex',\n justifyContent: 'center',\n },\n}))\n\nconst WrongNetworkModal: FC = ({\n open, currentNetworkName = 'Private network', requiredNetworkName, onClose,\n}) => {\n const classes = useStyles()\n return (\n \n \n \n This dApp only works on the\n {' '}\n {requiredNetworkName}\n .\n You are currently on\n {' '}\n {currentNetworkName}\n .\n \n \n \n \n \n \n Waiting for the right network...\n \n Switch networks on your wallet\n \n \n
\n \n \n )\n}\nexport default WrongNetworkModal\n","import React, { FC, HTMLAttributes } from 'react'\nimport { Grid } from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport FooterColumn, { FooterColumnProps } from '../molecules/FooterColumn'\nimport { colors, fonts } from '../../theme'\nimport { logoBlackAndBlue } from '../../assets/images'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FooterProps extends HTMLAttributes {\n className?: string\n copyrightText: string\n linksColumns: FooterColumnProps[]\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n copyright: {\n display: 'flex',\n justifyContent: 'center',\n },\n copyrightContent: {\n color: colors.gray4,\n fontSize: fonts.size.tiny,\n },\n footerContainer: {\n backgroundColor: colors.gray2,\n display: 'flex',\n justifyContent: 'center',\n paddingBottom: theme.spacing(2),\n width: '100%',\n },\n footerContent: {\n marginTop: theme.spacing(2),\n maxWidth: '80%',\n width: '100%',\n },\n linksColumn: {\n marginBottom: theme.spacing(1),\n },\n logoColumn: {\n display: 'flex',\n justifyContent: 'center',\n padding: theme.spacing(5),\n },\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n paddingTop: theme.spacing(4),\n width: '100%',\n },\n tongue: {\n backgroundColor: colors.gray2,\n borderTopLeftRadius: '50% 80%',\n borderTopRightRadius: '50% 80%',\n height: theme.spacing(10),\n width: '100%',\n },\n}))\n\nconst Footer: FC = ({\n className = '', copyrightText, linksColumns, ...rest\n}) => {\n const classes = useStyles()\n\n return (\n
\n
\n
\n
\n \n \n \"logo\"\n \n {\n linksColumns.map((linkColumn: FooterColumnProps) => (\n \n \n \n ))\n }\n \n
\n \n {copyrightText}\n \n
\n
\n
\n
\n )\n}\n\nexport default Footer\n","export enum ConnectionStatus {\n LoggedIn = 0,\n LoggedOut = 1,\n WalletLocked = 2,\n WrongNetwork = 3\n}\n\nexport default ConnectionStatus\n","// A type of promise-like that resolves synchronously and supports only one observer\nexport const _Pact = /*#__PURE__*/(function() {\n\tfunction _Pact() {}\n\t_Pact.prototype.then = function(onFulfilled, onRejected) {\n\t\tconst result = new _Pact();\n\t\tconst state = this.s;\n\t\tif (state) {\n\t\t\tconst callback = state & 1 ? onFulfilled : onRejected;\n\t\t\tif (callback) {\n\t\t\t\ttry {\n\t\t\t\t\t_settle(result, 1, callback(this.v));\n\t\t\t\t} catch (e) {\n\t\t\t\t\t_settle(result, 2, e);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\tthis.o = function(_this) {\n\t\t\ttry {\n\t\t\t\tconst value = _this.v;\n\t\t\t\tif (_this.s & 1) {\n\t\t\t\t\t_settle(result, 1, onFulfilled ? onFulfilled(value) : value);\n\t\t\t\t} else if (onRejected) {\n\t\t\t\t\t_settle(result, 1, onRejected(value));\n\t\t\t\t} else {\n\t\t\t\t\t_settle(result, 2, value);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(result, 2, e);\n\t\t\t}\n\t\t};\n\t\treturn result;\n\t}\n\treturn _Pact;\n})();\n\n// Settles a pact synchronously\nexport function _settle(pact, state, value) {\n\tif (!pact.s) {\n\t\tif (value instanceof _Pact) {\n\t\t\tif (value.s) {\n\t\t\t\tif (state & 1) {\n\t\t\t\t\tstate = value.s;\n\t\t\t\t}\n\t\t\t\tvalue = value.v;\n\t\t\t} else {\n\t\t\t\tvalue.o = _settle.bind(null, pact, state);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (value && value.then) {\n\t\t\tvalue.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));\n\t\t\treturn;\n\t\t}\n\t\tpact.s = state;\n\t\tpact.v = value;\n\t\tconst observer = pact.o;\n\t\tif (observer) {\n\t\t\tobserver(pact);\n\t\t}\n\t}\n}\n\nexport function _isSettledPact(thenable) {\n\treturn thenable instanceof _Pact && thenable.s & 1;\n}\n\n// Converts argument to a function that always returns a Promise\nexport function _async(f) {\n\treturn function() {\n\t\tfor (var args = [], i = 0; i < arguments.length; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\t\ttry {\n\t\t\treturn Promise.resolve(f.apply(this, args));\n\t\t} catch(e) {\n\t\t\treturn Promise.reject(e);\n\t\t}\n\t}\n}\n\n// Awaits on a value that may or may not be a Promise (equivalent to the await keyword in ES2015, with continuations passed explicitly)\nexport function _await(value, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(value) : value;\n\t}\n\tif (!value || !value.then) {\n\t\tvalue = Promise.resolve(value);\n\t}\n\treturn then ? value.then(then) : value;\n}\n\n// Awaits on a value that may or may not be a Promise, then ignores it\nexport function _awaitIgnored(value, direct) {\n\tif (!direct) {\n\t\treturn value && value.then ? value.then(_empty) : Promise.resolve();\n\t}\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continue(value, then) {\n\treturn value && value.then ? value.then(then) : then(value);\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continueIgnored(value) {\n\tif (value && value.then) {\n\t\treturn value.then(_empty);\n\t}\n}\n\n// Asynchronously iterate through an object that has a length property, passing the index as the first argument to the callback (even as the length property changes)\nexport function _forTo(array, body, check) {\n\tvar i = -1, pact, reject;\n\tfunction _cycle(result) {\n\t\ttry {\n\t\t\twhile (++i < array.length && (!check || !check())) {\n\t\t\t\tresult = body(i);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pact) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t} else {\n\t\t\t\tpact = result;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t}\n\t}\n\t_cycle();\n\treturn pact;\n}\n\n// Asynchronously iterate through an object's properties (including properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forIn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tkeys.push(key);\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\n// Asynchronously iterate through an object's own properties (excluding properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forOwn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tif (Object.prototype.hasOwnProperty.call(target, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\nexport const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\"))) : \"@@iterator\";\n\n// Asynchronously iterate through an object's values\n// Uses for...of if the runtime supports it, otherwise iterates until length on a copy\nexport function _forOf(target, body, check) {\n\tif (typeof target[_iteratorSymbol] === \"function\") {\n\t\tvar iterator = target[_iteratorSymbol](), step, pact, reject;\n\t\tfunction _cycle(result) {\n\t\t\ttry {\n\t\t\t\twhile (!(step = iterator.next()).done && (!check || !check())) {\n\t\t\t\t\tresult = body(step.value);\n\t\t\t\t\tif (result && result.then) {\n\t\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pact) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t} else {\n\t\t\t\t\tpact = result;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t\t}\n\t\t}\n\t\t_cycle();\n\t\tif (iterator.return) {\n\t\t\tvar _fixup = function(value) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!step.done) {\n\t\t\t\t\t\titerator.return();\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (pact && pact.then) {\n\t\t\t\treturn pact.then(_fixup, function(e) {\n\t\t\t\t\tthrow _fixup(e);\n\t\t\t\t});\n\t\t\t}\n\t\t\t_fixup();\n\t\t}\n\t\treturn pact;\n\t}\n\t// No support for Symbol.iterator\n\tif (!(\"length\" in target)) {\n\t\tthrow new TypeError(\"Object is not iterable\");\n\t}\n\t// Handle live collections properly\n\tvar values = [];\n\tfor (var i = 0; i < target.length; i++) {\n\t\tvalues.push(target[i]);\n\t}\n\treturn _forTo(values, function(i) { return body(values[i]); }, check);\n}\n\nexport const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\"))) : \"@@asyncIterator\";\n\n// Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\nexport function _forAwaitOf(target, body, check) {\n\tif (typeof target[_asyncIteratorSymbol] === \"function\") {\n\t\tvar pact = new _Pact();\n\t\tvar iterator = target[_asyncIteratorSymbol]();\n\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\treturn pact;\n\t\tfunction _resumeAfterBody(result) {\n\t\t\tif (check && check()) {\n\t\t\t\treturn _settle(pact, 1, iterator.return ? iterator.return().then(function() { return result; }) : result);\n\t\t\t}\n\t\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\t}\n\t\tfunction _resumeAfterNext(step) {\n\t\t\tif (step.done) {\n\t\t\t\t_settle(pact, 1);\n\t\t\t} else {\n\t\t\t\tPromise.resolve(body(step.value)).then(_resumeAfterBody).then(void 0, _reject);\n\t\t\t}\n\t\t}\n\t\tfunction _reject(error) {\n\t\t\t_settle(pact, 2, iterator.return ? iterator.return().then(function() { return error; }) : error);\n\t\t}\n\t}\n\treturn Promise.resolve(_forOf(target, function(value) { return Promise.resolve(value).then(body); }, check));\n}\n\n// Asynchronously implement a generic for loop\nexport function _for(test, update, body) {\n\tvar stage;\n\tfor (;;) {\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t\tif (shouldContinue.then) {\n\t\t\tstage = 0;\n\t\t\tbreak;\n\t\t}\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.s;\n\t\t\t} else {\n\t\t\t\tstage = 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (update) {\n\t\t\tvar updateValue = update();\n\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\tstage = 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tvar pact = new _Pact();\n\tvar reject = _settle.bind(null, pact, 2);\n\t(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tdo {\n\t\t\tif (update) {\n\t\t\t\tupdateValue = update();\n\t\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\t\tupdateValue.then(_resumeAfterUpdate).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshouldContinue = test();\n\t\t\tif (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t}\n\t\t} while (!result || !result.then);\n\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterBody(result);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n\tfunction _resumeAfterUpdate() {\n\t\tif (shouldContinue = test()) {\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterTest(shouldContinue);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a do ... while loop\nexport function _do(body, test) {\n\tvar awaitBody;\n\tdo {\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t} else {\n\t\t\t\tawaitBody = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t} while (!shouldContinue.then);\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : shouldContinue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tfor (;;) {\n\t\t\tshouldContinue = test();\n\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t}\n\t\t\tif (!shouldContinue) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\tresult = result.v;\n\t\t\t\t} else {\n\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tdo {\n\t\t\t\tresult = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshouldContinue = test();\n\t\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t\t}\n\t\t\t\tif (!shouldContinue) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} while (!shouldContinue.then);\n\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a switch statement\nexport function _switch(discriminant, cases) {\n\tvar dispatchIndex = -1;\n\tvar awaitBody;\n\touter: {\n\t\tfor (var i = 0; i < cases.length; i++) {\n\t\t\tvar test = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvar testValue = test();\n\t\t\t\tif (testValue && testValue.then) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tif (testValue === discriminant) {\n\t\t\t\t\tdispatchIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Found the default case, set it as the pending dispatch case\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tif (dispatchIndex !== -1) {\n\t\t\tdo {\n\t\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\t\twhile (!body) {\n\t\t\t\t\tdispatchIndex++;\n\t\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t\t}\n\t\t\t\tvar result = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tawaitBody = true;\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\t\tdispatchIndex++;\n\t\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t\treturn result;\n\t\t}\n\t}\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterTest(value) {\n\t\tfor (;;) {\n\t\t\tif (value === discriminant) {\n\t\t\t\tdispatchIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (++i === cases.length) {\n\t\t\t\tif (dispatchIndex !== -1) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvalue = test();\n\t\t\t\tif (value && value.then) {\n\t\t\t\t\tvalue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tdo {\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tvar result = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tdispatchIndex++;\n\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterBody(result) {\n\t\tfor (;;) {\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tif (!fallthroughCheck || fallthroughCheck()) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdispatchIndex++;\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _call(body, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(body()) : body();\n\t}\n\ttry {\n\t\tvar result = Promise.resolve(body());\n\t\treturn then ? result.then(then) : result;\n\t} catch (e) {\n\t\treturn Promise.reject(e);\n\t}\n}\n\n// Asynchronously call a function and swallow the result\nexport function _callIgnored(body, direct) {\n\treturn _call(body, _empty, direct);\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _invoke(body, then) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(then);\n\t}\n\treturn then(result);\n}\n\n// Asynchronously call a function and swallow the result\nexport function _invokeIgnored(body) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(_empty);\n\t}\n}\n\n// Asynchronously call a function and send errors to recovery continuation\nexport function _catch(body, recover) {\n\ttry {\n\t\tvar result = body();\n\t} catch(e) {\n\t\treturn recover(e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(void 0, recover);\n\t}\n\treturn result;\n}\n\n// Asynchronously await a promise and pass the result to a finally continuation\nexport function _finallyRethrows(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer(true, e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n\t}\n\treturn finalizer(false, result);\n}\n\n// Asynchronously await a promise and invoke a finally continuation that always overrides the result\nexport function _finally(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer();\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer, finalizer);\n\t}\n\treturn finalizer();\n}\n\n// Rethrow or return a value from a finally continuation\nexport function _rethrow(thrown, value) {\n\tif (thrown)\n\t\tthrow value;\n\treturn value;\n}\n\n// Empty function to implement break and other control flow that ignores asynchronous results\nexport function _empty() {\n}\n\n// Sentinel value for early returns in generators \nexport const _earlyReturn = /*#__PURE__*/ {};\n\n// Asynchronously call a function and send errors to recovery continuation, skipping early returns\nexport function _catchInGenerator(body, recover) {\n\treturn _catch(body, function(e) {\n\t\tif (e === _earlyReturn) {\n\t\t\tthrow e;\n\t\t}\n\t\treturn recover(e);\n\t});\n}\n\n// Asynchronous generator class; accepts the entrypoint of the generator, to which it passes itself when the generator should start\nexport const _AsyncGenerator = /*#__PURE__*/(function() {\n\tfunction _AsyncGenerator(entry) {\n\t\tthis._entry = entry;\n\t\tthis._pact = null;\n\t\tthis._resolve = null;\n\t\tthis._return = null;\n\t\tthis._promise = null;\n\t}\n\n\tfunction _wrapReturnedValue(value) {\n\t\treturn { value: value, done: true };\n\t}\n\tfunction _wrapYieldedValue(value) {\n\t\treturn { value: value, done: false };\n\t}\n\n\t_AsyncGenerator.prototype._yield = function(value) {\n\t\t// Yield the value to the pending next call\n\t\tthis._resolve(value && value.then ? value.then(_wrapYieldedValue) : _wrapYieldedValue(value));\n\t\t// Return a pact for an upcoming next/return/throw call\n\t\treturn this._pact = new _Pact();\n\t};\n\t_AsyncGenerator.prototype.next = function(value) {\n\t\t// Advance the generator, starting it if it has yet to be started\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tconst _entry = _this._entry;\n\t\t\t\tif (_entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the next call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Start the generator\n\t\t\t\t_this._entry = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\tfunction returnValue(value) {\n\t\t\t\t\t_this._resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t_this._resolve = null;\n\t\t\t\t}\n\t\t\t\tvar result = _entry(_this);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tresult.then(returnValue, function(error) {\n\t\t\t\t\t\tif (error === _earlyReturn) {\n\t\t\t\t\t\t\treturnValue(_this._return);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst pact = new _Pact();\n\t\t\t\t\t\t\t_this._resolve(pact);\n\t\t\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t\t\t_this._resolve = null;\n\t\t\t\t\t\t\t_resolve(pact, 2, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturnValue(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Generator is started and a yield expression is pending, settle it\n\t\t\t\t_this._pact = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\t_settle(_pact, 1, value);\n\t\t\t}\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.return = function(value) {\n\t\t// Early return from the generator if started, otherwise abandons the generator\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the return call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return the specified value\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t}\n\t\t\t// Settle the yield expression with a rejected \"early return\" value\n\t\t\t_this._return = value;\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, _earlyReturn);\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.throw = function(error) {\n\t\t// Inject an exception into the pending yield expression\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve, reject) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the throw call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return a rejected Promise containing the error\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t\t// Settle the yield expression with the value as a rejection\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, error);\n\t\t});\n\t};\n\n\t_AsyncGenerator.prototype[_asyncIteratorSymbol] = function() {\n\t\treturn this;\n\t};\n\t\n\treturn _AsyncGenerator;\n})();\n","import Web3 from 'web3'\nimport NetworkInfo from '../models/NetworkInfo'\nimport networksData from '../data/networks.json'\nimport ProviderInfo, {\n EProvider,\n getProviderInfo,\n} from '../models/ProviderInfo'\nimport ConnectionStatus from '../models/Enums'\n\ndeclare global {\n interface Window {\n ethereum: any // FIXME: This should be properly typed as per metamask\n web3: Web3\n }\n}\n\nexport function getWeb3(\n provider: EProvider = EProvider.METAMASK,\n): Promise {\n return new Promise((resolve, reject) => {\n switch (provider) {\n // Injected Web3 wallet like MetaMask or Nifty\n case EProvider.NIFTY:\n case EProvider.METAMASK: {\n // New MetaMask\n if (window.ethereum) {\n const web3 = new Web3(window.ethereum)\n window.ethereum\n .enable()\n .then(() => resolve(web3))\n .catch(reject)\n } else if (window.web3) {\n // Older versions of MetaMask or other\n resolve(new Web3(window.web3.currentProvider))\n } else reject(new Error('No injected web3 found'))\n break\n }\n\n // Localhost\n case EProvider.LOCAL: {\n const localhostProvider = new Web3.providers.HttpProvider(\n \"'http://127.0.0.1:4444'\",\n )\n resolve(new Web3(localhostProvider))\n break\n }\n\n // Unknown & not implemented\n default: {\n reject(\n new Error(\n `Provider not implemented or unknown. Chosen provider ${provider}`,\n ),\n )\n break\n }\n }\n })\n}\n\nexport const getNetworkInfo = (\n networkId: number,\n chainId?: number,\n): NetworkInfo | undefined => networksData.find((n) => (chainId\n ? n.networkId === networkId && n.chainId === chainId\n : n.networkId === networkId)) as NetworkInfo\n\nexport const getNetworkInfoFromWeb3 = async (\n web3: Web3,\n): Promise => {\n // set networkId and chainId\n let networkId: number | undefined\n let chainId: number | undefined\n try {\n networkId = await web3.eth.net.getId()\n\n if (networkId) {\n chainId = await web3.eth.getChainId()\n }\n } catch (error) {}\n let networkInfo: NetworkInfo | undefined\n\n if (networkId) {\n try {\n networkInfo = getNetworkInfo(networkId, chainId)\n } catch (error) {}\n }\n return networkInfo\n}\n\nconst getWeb3Provider = (): any => {\n // New Metamask\n if (window.ethereum) return window.ethereum\n\n // Older versions of Metamask or other\n if (window.web3) return window.web3.currentProvider\n return undefined\n}\n\n/* eslint-disable complexity */\nexport const getAvailableProviders = (): ProviderInfo[] | undefined => {\n const result: ProviderInfo[] = []\n\n const currentProvider = getWeb3Provider()\n\n if (!currentProvider) return undefined\n\n if (currentProvider.isMetaMask) {\n // Nifty is also MetaMask\n result.push(\n currentProvider.isNiftyWallet\n ? getProviderInfo(EProvider.NIFTY)\n : getProviderInfo(EProvider.METAMASK),\n )\n }\n\n if (currentProvider.isTrust) result.push(getProviderInfo(EProvider.TRUST))\n\n if (currentProvider.isGoWallet) result.push(getProviderInfo(EProvider.GO_WALLET))\n\n if (currentProvider.isAlphaWallet) result.push(getProviderInfo(EProvider.ALPHA_WALLET))\n\n if (currentProvider.isStatus) result.push(getProviderInfo(EProvider.STATUS))\n\n if (currentProvider.isToshi) result.push(getProviderInfo(EProvider.COINBASE))\n\n // eslint-disable-next-line no-underscore-dangle\n if (typeof (window as any).__CIPHER__ !== 'undefined') result.push(getProviderInfo(EProvider.CIPHER))\n\n if (currentProvider.constructor.name === 'EthereumProvider') result.push(getProviderInfo(EProvider.MIST))\n\n if (currentProvider.constructor.name === 'Web3FrameProvider') result.push(getProviderInfo(EProvider.PARITY))\n\n if (currentProvider.host && currentProvider.host.indexOf('infura') !== -1) result.push(getProviderInfo(EProvider.INFURA))\n\n if (currentProvider.host && currentProvider.host.indexOf('localhost') !== -1) result.push(getProviderInfo(EProvider.LOCAL))\n\n return result\n}\n\nexport const getConnectionStatus = (\n web3?: Web3,\n requiredNetworkId?: number,\n currentNetworkId?: number,\n account?: string,\n): ConnectionStatus => {\n if (!web3) return ConnectionStatus.LoggedOut\n\n if (currentNetworkId !== requiredNetworkId) {\n return ConnectionStatus.WrongNetwork\n }\n\n if (account) {\n return ConnectionStatus.LoggedIn\n }\n return ConnectionStatus.WalletLocked\n}\n","import React, { FC, useState, useEffect } from 'react'\nimport Web3 from 'web3'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Popover from '@material-ui/core/Popover'\nimport Typography from '@material-ui/core/Typography'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport { shortenString } from '../../utils'\nimport { Button, NetworkIndicator } from '../atoms'\nimport { colors, fonts } from '../../theme'\nimport { AccountModal, WrongNetworkModal } from '../molecules'\nimport ConnectionStatus from '../../models/Enums'\nimport { getConnectionStatus } from '../../services/Web3Service'\nimport NetworkInfo from '../../models/NetworkInfo'\n\nexport interface AccountProps {\n requiredNetworkName: string\n setProvider?: (provider: EProvider) => Promise\n web3?: Web3\n networkInfo?: NetworkInfo\n account?: string\n availableProviders?: ProviderInfo[]\n requiredNetworkId?: number\n onCorrectNetworkMessage?: string\n onNetworkMismatchMessage?: string\n noNetworkMessage?: string\n modalInitiallyOpened?: boolean\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n accountText: {\n fontSize: fonts.size.tiny,\n textAlign: 'center',\n },\n button: {\n border: `1px solid ${colors.white}`,\n '&:hover': {\n border: `1px solid ${colors.transparent}`,\n },\n },\n networkIndicator: {\n marginRight: theme.spacing(1),\n },\n rightNetwork: {\n padding: theme.spacing(2),\n },\n}))\n\nconst Account: FC = (props) => {\n const {\n web3,\n networkInfo,\n account,\n setProvider,\n availableProviders,\n requiredNetworkId,\n onCorrectNetworkMessage,\n onNetworkMismatchMessage,\n noNetworkMessage,\n requiredNetworkName,\n modalInitiallyOpened = false,\n } = props\n const classes = useStyles()\n\n const [accountModalOpen, setAccountModalOpen] = useState(modalInitiallyOpened)\n const handleAccountModalClose = (): void => setAccountModalOpen(false)\n const handleAccountModalOpen = (): void => setAccountModalOpen(true)\n const [wrongNetModalOpen, setWrongNetModalOpen] = useState(false)\n const openWrongNetModal = (): void => setWrongNetModalOpen(true)\n const closeWrongNetModal = (): void => setWrongNetModalOpen(false)\n const connectionStatus: ConnectionStatus = getConnectionStatus(web3, requiredNetworkId, networkInfo?.networkId, account)\n\n // TODO: extract popover functionallity into new component\n const [anchorEl, setAnchorEl] = React.useState(null)\n\n const popoverOpen = Boolean(anchorEl)\n const id = popoverOpen ? 'right-net-popover' : undefined\n\n const handlePopoverClose = () => {\n setAnchorEl(null)\n }\n\n useEffect(() => {\n if (connectionStatus === ConnectionStatus.WrongNetwork) {\n openWrongNetModal()\n } else {\n closeWrongNetModal()\n handlePopoverClose()\n }\n }, [connectionStatus])\n\n const accountText = (): string => {\n if (connectionStatus === ConnectionStatus.LoggedOut) return 'Connect wallet'\n\n if (connectionStatus === ConnectionStatus.WrongNetwork) return 'Wrong Network'\n\n if (account) {\n // means connectionStatus === ConnectionStatus.LoggedIn\n return shortenString(account)\n }\n return 'Unlock your wallet'\n }\n\n const onAccountClicked = (event: React.MouseEvent): void | null => {\n if (connectionStatus === ConnectionStatus.WrongNetwork) return openWrongNetModal()\n\n if (connectionStatus === ConnectionStatus.LoggedOut) return handleAccountModalOpen()\n\n if (connectionStatus === ConnectionStatus.LoggedIn) return setAnchorEl(event.currentTarget)\n return null\n }\n\n return (\n \n \n {/* TODO: extract molecule */}\n \n \n {`You are successfully connected to ${networkInfo?.name}.`}\n \n \n \n \n \n )\n}\n\nexport default Account\n","import React, { FC } from 'react'\nimport {\n AppBar, Grid, ListItemIcon, Toolbar,\n} from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { NavLink } from 'react-router-dom'\nimport Typography from '@material-ui/core/Typography'\nimport { ActionHeaderItemProps, HeaderProps, NavItemProps } from './HeaderProps'\nimport { LogoNavbar } from '../../atoms'\nimport { colors, fonts, globalConstants } from '../../../theme'\nimport { removeEmptySpaces } from '../../../utils'\n\nconst useStyles = makeStyles((theme: Theme) => ({\n activeNavlink: {\n color: `${colors.white} !important`,\n fontWeight: fonts.weight.medium,\n },\n navLink: {\n alignItems: 'center',\n color: colors.white,\n display: 'flex',\n paddingLeft: theme.spacing(5),\n paddingRight: theme.spacing(5),\n textAlign: 'center',\n textDecoration: 'none',\n '&:hover': {\n color: colors.gray5,\n textDecoration: 'none',\n },\n },\n navLinkContainer: {\n display: 'flex',\n },\n root: {\n boxShadow: 'none',\n // this height needs to be equal to the marginTop of PageTemplate\n height: theme.spacing(globalConstants.headerHeight),\n },\n}))\n\nconst HeaderDesktop: FC = ({\n hreflogo, itemsStart, itemsEnd, login,\n}) => {\n const classes = useStyles()\n const Login = login\n\n return (\n \n \n \n \n \n \n \n \n \n {\n !!itemsStart?.length\n && itemsStart.map((navItem: NavItemProps) => (\n \n \n {navItem.title}\n \n \n ))\n }\n
\n \n {\n !!itemsEnd?.length\n && itemsEnd.map(({ icon, ...rest }: ActionHeaderItemProps) => (\n \n {icon}\n \n ))\n }\n
\n \n
\n \n
\n \n \n \n \n )\n}\n\nexport default HeaderDesktop\n","import React, { FC, useState } from 'react'\nimport {\n AppBar,\n Divider,\n Drawer, Toolbar,\n IconButton, List, ListItem,\n ListItemText, ListItemIcon, Grid,\n} from '@material-ui/core'\nimport { NavLink } from 'react-router-dom'\nimport MenuIcon from '@material-ui/icons/Menu'\nimport ChevronLeftIcon from '@material-ui/icons/ChevronLeft'\nimport { Theme, createStyles, makeStyles } from '@material-ui/core/styles'\nimport { ActionHeaderItemProps, HeaderProps, NavItemProps } from './HeaderProps'\nimport { colors, globalConstants } from '../../../theme'\nimport { LogoNavbar } from '../../atoms'\nimport { removeEmptySpaces } from '../../../utils'\n\nconst drawerWidth = 240\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n drawerHeader: {\n display: 'flex',\n alignItems: 'center',\n padding: theme.spacing(0, 1),\n // necessary for content to be below app bar\n ...theme.mixins.toolbar,\n justifyContent: 'flex-end',\n },\n drawerPaper: {\n width: drawerWidth,\n },\n mobileAppBar: {\n boxShadow: 'none',\n // this height needs to be equal to the marginTop of PageTemplate\n height: theme.spacing(globalConstants.headerHeight),\n transition: theme.transitions.create(['margin', 'width'], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n },\n mobileAppBarShift: {\n width: `calc(100% - ${drawerWidth}px)`,\n marginLeft: drawerWidth,\n transition: theme.transitions.create(['margin', 'width'], {\n easing: theme.transitions.easing.easeOut,\n duration: theme.transitions.duration.enteringScreen,\n }),\n },\n mobileNavLink: {\n alignItems: 'center',\n color: colors.gray4,\n display: 'flex',\n textDecoration: 'none',\n width: '100%',\n '&:hover': {\n color: colors.gray5,\n textDecoration: 'none',\n },\n },\n mobileNavLinkActive: {\n color: `${colors.primary} !important`,\n },\n}))\n\nconst HeaderMobile: FC = ({\n hreflogo, itemsStart, itemsEnd, login: Login,\n}) => {\n const classes = useStyles()\n const [open, setOpen] = useState(false)\n\n const toggleDrawer = (isOpen: boolean) => (\n event: React.KeyboardEvent | React.MouseEvent,\n ): void => {\n if (\n event.type === 'keydown'\n && ((event as React.KeyboardEvent).key === 'Tab'\n || (event as React.KeyboardEvent).key === 'Shift')\n ) {\n return\n }\n setOpen(isOpen)\n }\n\n return (\n \n \n \n {!open && (\n \n \n \n \n \n \n \n \n \n \n \n \n {\n !!itemsEnd?.length\n && itemsEnd.map(({ icon, ...rest }: ActionHeaderItemProps) => (\n \n {icon}\n \n ))\n }\n \n \n
\n \n
\n
\n \n )}\n
\n \n \n
\n \n \n \n
\n \n \n {\n !!itemsStart?.length\n && itemsStart.map((headerItem: NavItemProps) => (\n \n \n \n {headerItem.icon}\n \n \n \n \n ))\n }\n \n \n \n\n )\n}\n\nexport default HeaderMobile\n","import React, { FC } from 'react'\nimport Hidden from '@material-ui/core/Hidden'\nimport { HeaderProps } from './HeaderProps'\nimport HeaderDesktop from './HeaderDesktop'\nimport HeaderMobile from './HeaderMobile'\n\nconst Header: FC = (props) => (\n \n \n \n \n \n \n \n \n)\n\nexport default Header\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../../theme'\nimport { headerTongueImg } from '../../../assets/images'\n\nexport interface HeaderTongueProps {\n description: string\n titleLine1: string\n titleLine2: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n textContainer: {\n alignItems: 'center',\n backgroundColor: colors.primary,\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n },\n textContent: {\n color: colors.white,\n display: 'flex',\n flexDirection: 'column',\n textAlign: 'center',\n [theme.breakpoints.down('sm')]: {\n maxWidth: '90%',\n },\n [theme.breakpoints.up('md')]: {\n maxWidth: '65%',\n },\n [theme.breakpoints.up('xl')]: {\n maxWidth: '55%',\n },\n },\n titleContent: {\n marginBottom: theme.spacing(1),\n fontSize: theme.spacing(5),\n fontWeight: fonts.weight.regular,\n },\n tongueImg: {\n width: '100%',\n },\n}))\n\nconst HeaderTongue: FC = (\n { description, titleLine1, titleLine2 },\n) => {\n const classes = useStyles()\n\n return (\n \n
\n
\n \n {titleLine1}\n
\n {' '}\n {titleLine2}\n \n {description}\n
\n
\n \n
\n )\n}\n\nexport default HeaderTongue\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport FAQSection, { FAQSectionProps } from '../molecules/FAQSection'\nimport { colors } from '../../theme'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FAQPageTemplateProps {\n className?: string\n mainTitle: string\n questionsAndAnswers: FAQSectionProps[]\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n marginTop: theme.spacing(3),\n },\n container: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n [theme.breakpoints.up('md')]: {\n maxWidth: '80%',\n },\n },\n grayBackground: {\n backgroundColor: colors.gray1,\n },\n mainTitle: {\n fontSize: theme.typography.pxToRem(50),\n margin: theme.spacing(2, 0),\n },\n questionsSection: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n marginTop: theme.spacing(2),\n },\n}))\n\nconst FAQPageTemplate: FC = ({ className = '', mainTitle, questionsAndAnswers }) => {\n const classes = useStyles()\n return (\n
\n
\n {mainTitle}\n
\n {\n questionsAndAnswers.map((qAndA: FAQSectionProps, i) => (\n \n ))\n }\n
\n
\n
\n )\n}\n\nexport default FAQPageTemplate\n","import React, { FC, HTMLAttributes } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { globalConstants } from '../../theme'\n\nexport type PageTemplateProps = HTMLAttributes;\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n // as the header has fixed position, we need to match its height\n marginTop: theme.spacing(globalConstants.headerHeight),\n width: '100%',\n },\n}))\n\nconst PageTemplate: FC = ({ children, className = '', ...props }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default PageTemplate\n","import React, {\n Component, createContext, ReactNode,\n} from 'react'\nimport Web3 from 'web3'\nimport {\n getWeb3, getNetworkInfoFromWeb3, getAvailableProviders,\n} from '../services/Web3Service'\nimport NetworkInfo from '../models/NetworkInfo'\nimport ProviderInfo, { EProvider } from '../models/ProviderInfo'\n\nexport interface Web3ProviderProps {\n state: {\n provider?: EProvider\n web3?: Web3\n account?: string\n networkInfo?: NetworkInfo\n requiredNetworkId?: number\n }\n actions: {\n setProvider?: (\n provider: EProvider,\n onStateChanged?: (account?: string) => void\n ) => Promise\n onConnectedNetworkChange?: () => void\n onConnectedAccountChange?: () => void\n }\n requiredNetworkId?: number\n requiredChainId?: number\n availableProviders?: ProviderInfo[]\n}\n\nexport const defaultWeb3State: Web3ProviderState = {\n provider: undefined,\n web3: undefined,\n account: undefined,\n networkInfo: undefined,\n}\n\nexport const Web3Store = createContext({\n state: defaultWeb3State,\n actions: {\n setProvider: (): Promise => Promise.resolve(),\n onConnectedNetworkChange: (): any => 0,\n onConnectedAccountChange: (): any => 0,\n },\n requiredNetworkId: undefined,\n requiredChainId: undefined,\n})\n\ninterface Web3ProviderState {\n provider?: EProvider\n web3?: Web3\n account?: string\n networkInfo?: NetworkInfo\n}\n\nconst getAccountFromEthAccounts = (accounts: string[] | string): string | undefined => {\n let account: string\n\n if (Array.isArray(accounts)) [account] = accounts\n else account = accounts\n return account\n}\n\n/**\n * The provider will not read the account when a requiredNetworkId was provided\n * and it does not match the networkId of current networkInfo, same applies to\n * chainId. Nothing happens if the requiredNetworkId was not specified\n * @param requiredNetworkId given on the props of the provider\n * @param requiredChainId given on the props of the provider\n * @param networkInfo obtained from the wallet\n */\nconst shouldReadAccount = (\n requiredNetworkId?: number,\n requiredChainId?: number,\n networkInfo?: NetworkInfo,\n): boolean => {\n // the consumer did not provide enough information to validate the network, so we do not check\n if (!requiredNetworkId) return true\n\n if (requiredNetworkId === networkInfo?.networkId) {\n // only when chainId is provided we compare it\n if (requiredChainId) return requiredChainId === networkInfo?.chainId\n return true\n }\n return false\n}\n\nclass Web3Provider extends Component {\n private readonly requiredNetworkId?: number\n\n private readonly requiredChainId?: number\n\n private availableProviders?: ProviderInfo[]\n\n constructor(props: Web3ProviderProps) {\n super(props)\n this.state = defaultWeb3State\n this.requiredNetworkId = props.requiredNetworkId\n this.requiredChainId = props.requiredChainId\n this.onConnectedNetworkChange = props.actions.onConnectedNetworkChange\n this.onConnectedAccountChange = props.actions.onConnectedAccountChange\n this.setProvider = this.setProvider.bind(this)\n this.initialize()\n }\n\n private readonly onConnectedNetworkChange?: () => void\n\n private readonly onConnectedAccountChange?: () => void\n\n public async setProvider(provider: EProvider,\n onStateChanged?: (account?: string) => void): Promise {\n const web3 = await getWeb3(provider)\n const accounts = await web3.eth.getAccounts()\n const networkInfo = await getNetworkInfoFromWeb3(web3)\n // only validate requiredNetworkId and requiredChainId when are provided\n const shouldSetAccount = shouldReadAccount(this.requiredNetworkId, this.requiredChainId, networkInfo)\n\n const account = shouldSetAccount\n ? getAccountFromEthAccounts(accounts)\n : undefined\n\n this.setState(\n {\n web3,\n provider,\n account,\n networkInfo,\n },\n () => (onStateChanged && onStateChanged(account)),\n )\n }\n\n private initialize(): void {\n if (!window.ethereum) {\n return\n }\n this.availableProviders = getAvailableProviders()\n\n window.ethereum.autoRefreshOnNetworkChange = false\n // handle on networkChange\n window.ethereum.on('networkChanged', async (_netId) => {\n const { networkInfo } = this.state\n\n if (!networkInfo) return // wallet is not connected\n const { provider } = this.state\n const web3 = await getWeb3(provider)\n const accounts = await web3.eth.getAccounts()\n const newNetworkInfo = await getNetworkInfoFromWeb3(web3)\n\n // we do not want to set the account if we know it is the wrong network\n const shouldSetAccount = shouldReadAccount(\n this.requiredNetworkId,\n this.requiredChainId,\n newNetworkInfo,\n )\n const account = shouldSetAccount\n ? getAccountFromEthAccounts(accounts)\n : undefined\n\n this.setState(\n {\n networkInfo: newNetworkInfo,\n account,\n },\n () => this.onConnectedNetworkChange && this.onConnectedNetworkChange(),\n )\n })\n // handle on accountsChanged\n window.ethereum.on('accountsChanged', (accounts: string | string[]) => {\n const { networkInfo } = this.state\n\n if (!networkInfo) return // wallet is not connected\n // we only care about this change if it is on the right network\n // or if we can not validate the required network\n const shouldSetAccount = shouldReadAccount(\n this.requiredNetworkId, this.requiredChainId, networkInfo,\n )\n\n if (shouldSetAccount) {\n const account = getAccountFromEthAccounts(accounts)\n\n if (account) {\n this.setState({\n account,\n },\n () => this.onConnectedAccountChange\n && this.onConnectedAccountChange())\n }\n }\n })\n }\n\n public render(): ReactNode {\n const {\n provider,\n web3,\n account,\n networkInfo,\n } = this.state\n const {\n setProvider,\n onConnectedNetworkChange,\n onConnectedAccountChange,\n availableProviders,\n } = this\n\n const { children } = this.props\n\n return (\n \n {children}\n \n )\n }\n}\n\nexport default { Consumer: Web3Store.Consumer, Provider: Web3Provider }\n"],"names":["useStyles","makeStyles","block","width","noShadow","boxShadow","rounded","borderRadius","Button","className","shadow","children","rest","classes","React","MUIButton","trim","colors","black","primary","darkBlue","gray1","gray2","gray3","gray4","gray5","gray6","transparent","white","fonts","family","size","tiny","small","normal","medium","subtitleSmall","subtitleBig","weight","light","regular","bold","globalConstants","headerHeight","theme","createMuiTheme","palette","main","secondary","typography","fontFamily","button","textTransform","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","body1","fontWeight","props","overrides","MuiButton","root","MuiFormControlLabel","color","MuiSlider","rail","height","opacity","track","thumb","marginLeft","MuiTextField","createStyles","unCheckedIcon","checkedIcon","Checkbox","checked","isChecked","setIsChecked","useState","handleChange","event","newChecked","onChange","MUICheckbox","CheckBoxSharp","icon","CheckBoxOutlineBlankSharp","require","EProvider","getProviderInfo","eProvider","METAMASK","name","iconImg","metaMaskIconImg","NIFTY","niftyIconImg","LEDGER","TREZOR","TRUST","GO_WALLET","ALPHA_WALLET","STATUS","COINBASE","MIST","PARITY","INFURA","LOCAL","Error","padding","margin","content","display","alignItems","maxHeight","spacing","justifyContent","imageWrapper","marginRight","LoginOption","onClick","providerInfo","providerContent","src","alt","handleOnClick","window","open","variant","Tooltip","arrow","title","Logo","logoFullWhite","LogoNavbar","fontSize","pxToRem","selected","borderBottom","StyledNavTab","Tab","component","NavLink","disableRipple","defaultonCorrectNetworkMessage","deaulftonNetworkMismatchMessage","defaultNoNetworkMessage","NetworkStatus","getNetworkStatus","currentNetworkId","requiredNetworkId","NO_NETWORK","CORRECT_NETWORK","NETWORK_MISSMATCH","NetworkIndicator","iconClassName","onCorrectNetworkMessage","onNetworkMismatchMessage","noNetworkMessage","networkStatus","iconPerNetworkStatus","Map","set","WarningIcon","style","yellow","ErrorIcon","CheckCircleOutlineOutlinedIcon","green","get","paper","backgroundColor","background","border","shadows","left","minWidth","position","top","transform","Modal","MUIModal","ModalHeader","ModalTitle","Typography","borderTop","paddingTop","ModalFooter","ModalBody","overlay","zIndex","spinner","animation","WithSpinner","WrappedComponent","Spinner","isLoading","logoBlueIcon","heading","accordionSummary","Accordion","expanded","id","isExpanded","setIsExpanded","MUIAccordion","AccordionSummary","expandIcon","ExpandMoreIcon","AccordionDetails","AccountModal","setProvider","availableProviders","onClose","onProviderSet","Fragment","length","map","key","tooltipTitle","CopyTextTooltip","displayElement","fullText","isCopied","setIsCopied","tooltipContent","FileCopyIcon","interactive","navigator","clipboard","writeText","then","headingExpanded","headingCollapsed","panelDetails","answerContainer","breakpoints","up","maxWidth","answerText","FAQSection","initiallyExpanded","question","answer","RemoveIcon","AddIcon","LabeledCheckbox","labelText","labelClassName","FormControlLabel","label","control","FilterCheckboxCard","items","item","i","shortenString","str","largerThan","charsShownCount","substr","removeEmptySpaces","replace","maxSupportedNumber","minSupportedNumber","validatedNumber","num","flexDirection","footerLink","textDecoration","footerTitle","textAlign","FooterColumn","links","link","isExternal","href","to","toString","target","ModalDialogue","footer","input","paddingLeft","inputContainer","paddingRight","units","unitsContainer","alignSelf","UnitsInput","maxValue","minValue","value","step","handleOnBlur","handleOnChange","Grid","container","xs","Input","onBlur","type","fullWidth","inputProps","min","max","inputsContainer","toContainer","RangeSliderWithInputs","values","start","startValue","end","endValue","unit","handleStartInputChange","newStartValue","Number","handleEndInputChange","newEndValue","handleSliderChange","_","newSliderValue","handleStartValueBlur","handleEndValueBlur","getCommonInputValues","Slider","ShortenTextTooltip","maxLength","indicator","StyledTabs","Tabs","a11yProps","index","minHeight","overflow","tabContainer","tab","outlineStyle","tabIndicator","tabSelected","SwitchTabs","label1","label2","controlledValue","newValue","MUITabs","TabIndicatorProps","MUITab","TooltipIconButton","iconButtonProps","IconButton","boxContainer","marginTop","loaderContainer","WrongNetworkModal","currentNetworkName","requiredNetworkName","gutterBottom","align","Box","sm","CircularProgress","copyright","copyrightContent","footerContainer","paddingBottom","footerContent","linksColumn","marginBottom","logoColumn","tongue","borderTopLeftRadius","borderTopRightRadius","Footer","copyrightText","linksColumns","direction","md","lg","logoBlackAndBlue","linkColumn","ConnectionStatus","getWeb3","provider","Promise","resolve","reject","ethereum","web3","Web3","enable","catch","currentProvider","localhostProvider","providers","HttpProvider","getNetworkInfo","networkId","chainId","networksData","find","n","getNetworkInfoFromWeb3","networkInfo","error","eth","net","getId","getChainId","getWeb3Provider","undefined","getAvailableProviders","result","isMetaMask","push","isNiftyWallet","isTrust","isGoWallet","isAlphaWallet","isStatus","isToshi","__CIPHER__","CIPHER","constructor","host","indexOf","getConnectionStatus","account","LoggedOut","WrongNetwork","LoggedIn","WalletLocked","accountText","networkIndicator","rightNetwork","Account","modalInitiallyOpened","accountModalOpen","setAccountModalOpen","handleAccountModalClose","handleAccountModalOpen","wrongNetModalOpen","setWrongNetModalOpen","openWrongNetModal","closeWrongNetModal","connectionStatus","anchorEl","setAnchorEl","popoverOpen","Boolean","handlePopoverClose","useEffect","onAccountClicked","currentTarget","Popover","anchorOrigin","vertical","horizontal","transformOrigin","activeNavlink","navLink","navLinkContainer","HeaderDesktop","hreflogo","itemsStart","itemsEnd","login","Login","AppBar","Toolbar","xl","justify","navItem","activeClassName","alignContent","ListItemIcon","drawerWidth","drawerHeader","mixins","toolbar","drawerPaper","mobileAppBar","transition","transitions","create","easing","sharp","duration","leavingScreen","mobileAppBarShift","easeOut","enteringScreen","mobileNavLink","mobileNavLinkActive","HeaderMobile","setOpen","toggleDrawer","isOpen","role","onKeyDown","MenuIcon","Drawer","anchor","ChevronLeftIcon","Divider","List","headerItem","ListItem","ListItemText","Header","Hidden","smDown","mdUp","textContainer","textContent","down","titleContent","tongueImg","HeaderTongue","description","titleLine1","titleLine2","headerTongueImg","grayBackground","mainTitle","questionsSection","FAQPageTemplate","questionsAndAnswers","qAndA","PageTemplate","defaultWeb3State","Web3Store","createContext","state","actions","onConnectedNetworkChange","onConnectedAccountChange","requiredChainId","getAccountFromEthAccounts","accounts","Array","isArray","shouldReadAccount","Web3Provider","Component","bind","initialize","onStateChanged","getAccounts","shouldSetAccount","setState","autoRefreshOnNetworkChange","on","_netId","newNetworkInfo","render","Provider","Consumer"],"mappings":"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C,OAAO,MAAM,CAAC;AACf,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"} \ No newline at end of file diff --git a/dist/index.modern.js b/dist/index.modern.js deleted file mode 100644 index ad98fda5..00000000 --- a/dist/index.modern.js +++ /dev/null @@ -1,3277 +0,0 @@ -import React__default, { useState, useEffect, createContext, Component } from 'react'; -import { Button as Button$1, makeStyles as makeStyles$1, createStyles, Checkbox as Checkbox$1, Tooltip, Modal as Modal$1, Accordion as Accordion$1, FormControlLabel, Tabs as Tabs$1, Tab as Tab$1, Grid as Grid$1, AppBar, Toolbar, ListItemIcon, IconButton as IconButton$1, Drawer, Divider, List, ListItem, ListItemText } from '@material-ui/core'; -import { makeStyles, createMuiTheme, createStyles as createStyles$1 } from '@material-ui/core/styles'; -import { CheckBoxSharp, CheckBoxOutlineBlankSharp } from '@material-ui/icons'; -import Tab from '@material-ui/core/Tab'; -import { NavLink } from 'react-router-dom'; -import Tooltip$1 from '@material-ui/core/Tooltip'; -import CheckCircleOutlineOutlinedIcon from '@material-ui/icons/CheckCircleOutlineOutlined'; -import ErrorIcon from '@material-ui/icons/Error'; -import WarningIcon from '@material-ui/icons/Warning'; -import { yellow, green } from '@material-ui/core/colors'; -import Typography from '@material-ui/core/Typography'; -import AccordionDetails from '@material-ui/core/AccordionDetails'; -import AccordionSummary from '@material-ui/core/AccordionSummary'; -import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; -import FileCopyIcon from '@material-ui/icons/FileCopy'; -import Accordion$2 from '@material-ui/core/Accordion'; -import AddIcon from '@material-ui/icons/Add'; -import RemoveIcon from '@material-ui/icons/Remove'; -import Slider from '@material-ui/core/Slider'; -import Input from '@material-ui/core/Input'; -import Grid from '@material-ui/core/Grid'; -import Tabs from '@material-ui/core/Tabs'; -import IconButton from '@material-ui/core/IconButton'; -import Box from '@material-ui/core/Box'; -import CircularProgress from '@material-ui/core/CircularProgress'; -import Popover from '@material-ui/core/Popover'; -import Web3 from 'web3'; -import Hidden from '@material-ui/core/Hidden'; -import MenuIcon from '@material-ui/icons/Menu'; -import ChevronLeftIcon from '@material-ui/icons/ChevronLeft'; - -const useStyles = makeStyles(() => ({ - block: { - width: '100%' - }, - noShadow: { - boxShadow: 'none' - }, - rounded: { - borderRadius: 50 - } -})); - -const Button = ({ - className: _className = '', - block, - shadow, - rounded, - children, - ...rest -}) => { - const classes = useStyles(); - return React__default.createElement(Button$1, Object.assign({ - className: `${rounded ? classes.rounded : ''} - ${shadow ? '' : classes.noShadow} - ${block ? classes.block : ''} ${_className}`.trim() - }, rest), children); -}; - -const colors = { - black: '#000000', - primary: '#008FF7', - darkBlue: '#197DC6', - gray1: '#F8F7F7', - gray2: '#E5E5E5', - gray3: '#C4C4C4', - gray4: '#919191', - gray5: '#4D4C4C', - gray6: '#15171B', - transparent: '#FFFFFF00', - white: '#FFFFFF' -}; -const fonts = { - family: 'Rubik', - size: { - tiny: 10, - small: 12, - normal: 14, - medium: 16, - subtitleSmall: 18, - subtitleBig: 22 - }, - weight: { - light: 300, - regular: 400, - medium: 500, - bold: 700 - } -}; -const globalConstants = { - headerHeight: 8 -}; -const theme = createMuiTheme({ - palette: { - primary: { - main: colors.primary - }, - secondary: { - main: colors.gray4 - } - }, - typography: { - fontFamily: fonts.family, - button: { - textTransform: 'none' - }, - fontWeightLight: fonts.weight.light, - fontWeightRegular: fonts.weight.regular, - fontWeightMedium: fonts.weight.medium, - fontWeightBold: fonts.weight.bold, - body1: { - fontWeight: fonts.weight.light - } - }, - props: {}, - overrides: { - MuiButton: { - root: { - fontWeight: fonts.weight.light - } - }, - MuiFormControlLabel: { - root: { - color: colors.gray3 - } - }, - MuiSlider: { - rail: { - color: colors.gray3, - height: 4, - opacity: 1 - }, - root: { - width: '100%', - color: colors.primary, - height: 4 - }, - track: { - height: 4 - }, - thumb: { - marginLeft: -4, - height: 14, - width: 14 - } - }, - MuiTextField: { - root: { - color: colors.gray3, - '&:hover': { - color: colors.gray2 - } - } - } - } -}); - -const useStyles$1 = makeStyles$1(() => createStyles({ - unCheckedIcon: { - color: colors.gray4 - }, - checkedIcon: { - color: colors.primary - } -})); - -const Checkbox = props => { - const classes = useStyles$1(); - const { - checked - } = props; - const [isChecked, setIsChecked] = useState(!!checked); - - const handleChange = (event, newChecked) => { - setIsChecked(newChecked); - const { - onChange - } = props; - if (onChange) onChange(event, newChecked); - }; - - return React__default.createElement(Checkbox$1, Object.assign({ - checkedIcon: React__default.createElement(CheckBoxSharp, { - className: classes.checkedIcon - }), - icon: React__default.createElement(CheckBoxOutlineBlankSharp, { - className: classes.unCheckedIcon - }) - }, props, { - checked: isChecked, - onChange: handleChange - })); -}; - -var doneThumbsUp = require("./doneThumbsUp~bbkTwQsx.svg"); - -var footerTongue = require("./footerTongue~bbJNSCWG.svg"); - -var headerTongueImg = require("./headerTongue~VLlRBGMc.svg"); - -var tickWide = require("./tickWide~bmvsBAER.svg"); - -var metaMaskIconImg = require("./metaMask~bnTqJLxK.svg"); - -var nameService = require("./nameService~UWbtQqmT.svg"); - -var niftyIconImg = require("./nifty~RMIWdZeg.png"); - -var rifCom = require("./rifCom~udwpaCym.png"); - -var rifDir = require("./rifDir~bottaDNJ.png"); - -var rifGat = require("./rifGat~balFpEzC.png"); - -var rifMar = require("./rifMar~IDqKMWpK.png"); - -var rifPay = require("./rifPay~bdtOAceT.png"); - -var rifSto = require("./rifSto~fMRetflo.png"); - -var storage = require("./storage~fCGkZtHN.svg"); - -var logoBlackAndBlue = require("./logoBlackAndBlue~YbWCBYrQ.svg"); - -var logoBlueIcon = require("./logoBlueIcon~qRLrrgXR.svg"); - -var logoFullWhite = require("./logoFullWhite~geFkQihC.svg"); - -var rskLogo = require("./rskLogo~bdMEZSPk.svg"); - -var EProvider; - -(function (EProvider) { - EProvider["METAMASK"] = "Metamask"; - EProvider["NIFTY"] = "Nifty"; - EProvider["LEDGER"] = "Ledger"; - EProvider["TREZOR"] = "Trezor"; - EProvider["TRUST"] = "Trust"; - EProvider["LOCAL"] = "Localhost"; - EProvider["GO_WALLET"] = "GoWallet"; - EProvider["ALPHA_WALLET"] = "AlphaWallet"; - EProvider["STATUS"] = "status"; - EProvider["CIPHER"] = "cipher"; - EProvider["COINBASE"] = "coinbase"; - EProvider["MIST"] = "mist"; - EProvider["PARITY"] = "parity"; - EProvider["INFURA"] = "infura"; -})(EProvider || (EProvider = {})); - -const getProviderInfo = eProvider => { - switch (eProvider) { - case EProvider.METAMASK: - return { - name: 'MetaMask', - eProvider, - iconImg: metaMaskIconImg - }; - - case EProvider.NIFTY: - return { - name: 'Nifty', - eProvider, - iconImg: niftyIconImg - }; - - case EProvider.LEDGER: - return { - name: 'Ledger', - eProvider - }; - - case EProvider.TREZOR: - return { - name: 'Trezor', - eProvider - }; - - case EProvider.TRUST: - return { - name: 'Trust', - eProvider - }; - - case EProvider.GO_WALLET: - return { - name: 'Go Wallet', - eProvider - }; - - case EProvider.ALPHA_WALLET: - return { - name: 'Alpha Wallet', - eProvider - }; - - case EProvider.STATUS: - return { - name: 'Status', - eProvider - }; - - case EProvider.COINBASE: - return { - name: 'Coinbase', - eProvider - }; - - case EProvider.MIST: - return { - name: 'Mist', - eProvider - }; - - case EProvider.PARITY: - return { - name: 'Parity', - eProvider - }; - - case EProvider.INFURA: - return { - name: 'Infura', - eProvider - }; - - case EProvider.LOCAL: - return { - name: 'Localhost', - eProvider - }; - - default: - { - throw new Error(`EProvider not implemented or unknown. Chosen provider ${eProvider}`); - } - } -}; - -const useStyles$2 = makeStyles$1(theme => ({ - root: { - padding: 5, - margin: 5, - width: '100%' - }, - content: { - display: 'flex', - alignItems: 'center', - width: '100%', - maxHeight: theme.spacing(5), - justifyContent: 'center' - }, - imageWrapper: { - maxHeight: theme.spacing(4), - marginRight: theme.spacing(2) - } -})); - -const LoginOption = ({ - className: _className = '', - onClick, - providerInfo, - ...rest -}) => { - const classes = useStyles$2(); - const providerContent = React__default.createElement("div", { - className: classes.content - }, (providerInfo === null || providerInfo === void 0 ? void 0 : providerInfo.iconImg) && React__default.createElement("img", { - className: classes.imageWrapper, - src: providerInfo === null || providerInfo === void 0 ? void 0 : providerInfo.iconImg, - alt: `${providerInfo === null || providerInfo === void 0 ? void 0 : providerInfo.name} icon` - }), providerInfo === null || providerInfo === void 0 ? void 0 : providerInfo.name); - - const handleOnClick = () => { - if (onClick) { - return onClick(); - } - - return window.open('https://www.poa.network/for-users/nifty-wallet/getting-started', '_blank'); - }; - - return React__default.createElement(Button, Object.assign({ - className: `${classes.root} ${_className}`, - block: true, - rounded: true, - variant: "outlined", - color: "primary", - onClick: handleOnClick - }, rest), !!providerInfo && providerInfo.eProvider === EProvider.NIFTY && React__default.createElement(Tooltip, { - arrow: true, - title: "Please, make sure you only have one browser wallet enabled." - }, providerContent), !!providerInfo && providerInfo.eProvider !== EProvider.NIFTY && providerContent, !providerInfo && React__default.createElement("div", { - className: classes.content - }, React__default.createElement("img", { - className: classes.imageWrapper, - src: niftyIconImg, - alt: "Nifty wallet icon" - }), "Install Nifty wallet")); -}; - -const Logo = ({ - alt: _alt = 'RIF OS logo', - ...rest -}) => React__default.createElement("img", Object.assign({ - src: logoFullWhite, - alt: _alt -}, rest)); - -const LogoNavbar = ({ - alt: _alt = 'navbar logo', - height: _height = '44px', - ...rest -}) => React__default.createElement("img", Object.assign({ - src: logoFullWhite, - alt: _alt, - height: _height -}, rest)); - -const useStyles$3 = makeStyles(theme => ({ - root: { - textTransform: 'none', - color: colors.gray5, - fontWeight: theme.typography.fontWeightRegular, - fontSize: theme.typography.pxToRem(15), - marginRight: theme.spacing(1), - '&:focus': { - opacity: 1 - } - }, - selected: { - fontWeight: theme.typography.fontWeightMedium, - borderBottom: '2px solid #000000' - } -})); - -const StyledNavTab = props => { - const classes = useStyles$3(); - return React__default.createElement(Tab, Object.assign({ - classes: classes, - component: NavLink, - disableRipple: true - }, props)); -}; - -const defaultonCorrectNetworkMessage = 'You are on the right network'; -const deaulftonNetworkMismatchMessage = 'You are on the wrong network'; -const defaultNoNetworkMessage = 'You are not connected to any network'; -var NetworkStatus; - -(function (NetworkStatus) { - NetworkStatus[NetworkStatus["NO_NETWORK"] = 1] = "NO_NETWORK"; - NetworkStatus[NetworkStatus["NETWORK_MISSMATCH"] = 2] = "NETWORK_MISSMATCH"; - NetworkStatus[NetworkStatus["CORRECT_NETWORK"] = 3] = "CORRECT_NETWORK"; -})(NetworkStatus || (NetworkStatus = {})); - -const getNetworkStatus = (currentNetworkId, requiredNetworkId) => { - if (!currentNetworkId) return NetworkStatus.NO_NETWORK; - if (currentNetworkId === requiredNetworkId) return NetworkStatus.CORRECT_NETWORK; - return NetworkStatus.NETWORK_MISSMATCH; -}; - -const NetworkIndicator = ({ - iconClassName: _iconClassName = '', - currentNetworkId, - requiredNetworkId, - onCorrectNetworkMessage, - onNetworkMismatchMessage, - noNetworkMessage -}) => { - const networkStatus = getNetworkStatus(currentNetworkId, requiredNetworkId); - const iconPerNetworkStatus = new Map(); - iconPerNetworkStatus.set(NetworkStatus.NO_NETWORK, React__default.createElement(Tooltip$1, { - title: noNetworkMessage || defaultNoNetworkMessage - }, React__default.createElement(WarningIcon, { - className: _iconClassName, - style: { - color: yellow[800] - } - }))); - iconPerNetworkStatus.set(NetworkStatus.NETWORK_MISSMATCH, React__default.createElement(Tooltip$1, { - title: onNetworkMismatchMessage || deaulftonNetworkMismatchMessage - }, React__default.createElement(ErrorIcon, { - className: _iconClassName, - color: "error" - }))); - iconPerNetworkStatus.set(NetworkStatus.CORRECT_NETWORK, React__default.createElement(Tooltip$1, { - title: onCorrectNetworkMessage || defaultonCorrectNetworkMessage - }, React__default.createElement(CheckCircleOutlineOutlinedIcon, { - className: _iconClassName, - style: { - color: green[300] - } - }))); - return iconPerNetworkStatus.get(networkStatus); -}; - -const useStyles$4 = makeStyles(theme => ({ - paper: { - backgroundColor: theme.palette.background.paper, - border: `2px solid ${colors.primary}`, - boxShadow: theme.shadows[5], - left: '50%', - minWidth: 400, - padding: theme.spacing(2, 4, 3), - position: 'absolute', - top: '50%', - transform: 'translate(-50%, -50%)' - } -})); - -const Modal = ({ - children, - ...rest -}) => { - const classes = useStyles$4(); - return React__default.createElement(Modal$1, Object.assign({}, rest), React__default.createElement("div", { - className: classes.paper - }, children)); -}; - -const useStyles$5 = makeStyles(() => ({ - root: { - borderBottom: `1px solid ${colors.gray2}`, - color: colors.primary, - display: 'flex', - justifyContent: 'center', - width: '100%' - } -})); - -const ModalHeader = ({ - children, - className: _className = '' -}) => { - const classes = useStyles$5(); - return React__default.createElement("div", { - className: `${classes.root} ${_className}`.trim() - }, children); -}; - -const ModalTitle = ({ - children, - ...rest -}) => React__default.createElement(Typography, Object.assign({ - variant: "h5" -}, rest), children); - -const useStyles$6 = makeStyles(theme => ({ - root: { - borderTop: `1px solid ${colors.gray2}`, - display: 'flex', - justifyContent: 'center', - paddingTop: theme.spacing(1), - width: '100%' - } -})); - -const ModalFooter = ({ - children, - className: _className = '' -}) => { - const classes = useStyles$6(); - return React__default.createElement("div", { - className: `${classes.root} ${_className}`.trim() - }, children); -}; - -const useStyles$7 = makeStyles(theme => ({ - root: { - padding: theme.spacing(3, 0), - width: '100%' - } -})); - -const ModalBody = ({ - children, - className: _className = '' -}) => { - const classes = useStyles$7(); - return React__default.createElement("div", { - className: `${classes.root} ${_className}`.trim() - }, children); -}; - -const useStyles$8 = makeStyles(() => ({ - '@keyframes spin': { - '0%': { - transform: 'rotate(0deg)' - }, - '100%': { - transform: 'rotate(360deg)' - } - }, - root: { - position: 'relative' - }, - overlay: { - position: 'absolute', - zIndex: 2, - height: '100%', - width: '100%', - display: 'flex', - justifyContent: 'center', - alignItems: 'center', - background: '#FFFFFF55' - }, - spinner: { - display: 'inline-block', - zIndex: 3, - width: '50px', - height: '50px', - border: 'none', - animation: '$spin 2s ease-in-out infinite' - } -})); - -const WithSpinner = WrappedComponent => { - const Spinner = ({ - isLoading, - ...props - }) => { - const classes = useStyles$8(); - return React__default.createElement("div", { - className: classes.root - }, isLoading && React__default.createElement("div", { - className: classes.overlay - }, React__default.createElement("img", { - className: classes.spinner, - src: logoBlueIcon, - alt: "logo" - })), React__default.createElement(WrappedComponent, Object.assign({}, props))); - }; - - return Spinner; -}; - -const useStyles$9 = makeStyles(theme => createStyles$1({ - root: { - boxShadow: 'none', - color: colors.gray4, - width: '100%' - }, - heading: { - color: colors.gray4, - fontSize: theme.typography.pxToRem(15), - fontWeight: theme.typography.fontWeightRegular, - width: '100%' - }, - accordionSummary: { - borderBottom: `1px solid ${colors.gray2}` - } -})); - -const Accordion = ({ - children, - expanded, - id, - title -}) => { - const classes = useStyles$9(); - const [isExpanded, setIsExpanded] = useState(!!expanded); - - const onChange = () => setIsExpanded(!isExpanded); - - return React__default.createElement(Accordion$1, { - className: classes.root, - expanded: isExpanded, - onChange: onChange - }, React__default.createElement(AccordionSummary, { - className: classes.accordionSummary, - expandIcon: React__default.createElement(ExpandMoreIcon, null), - "aria-controls": `panel-${id}-content`, - id: id - }, React__default.createElement(Typography, { - className: classes.heading - }, title)), React__default.createElement(AccordionDetails, null, children)); -}; - -const AccountModal = ({ - setProvider, - availableProviders, - open, - onClose, - onProviderSet -}) => React__default.createElement(Modal, { - open: open, - onClose: onClose, - "aria-labelledby": "account-modal-title", - "aria-describedby": "account-modal-description" -}, React__default.createElement(React__default.Fragment, null, React__default.createElement(ModalHeader, null, React__default.createElement(ModalTitle, null, "Connect a wallet to get started")), React__default.createElement(ModalBody, null, availableProviders && availableProviders.length && availableProviders.map(providerInfo => React__default.createElement(LoginOption, { - providerInfo: providerInfo, - key: providerInfo.eProvider, - onClick: async () => { - if (setProvider) await setProvider(providerInfo.eProvider, onProviderSet); - } -})), !availableProviders && React__default.createElement(LoginOption, null)), React__default.createElement(ModalFooter, null, React__default.createElement(Button, { - variant: "outlined", - color: "secondary", - block: true, - onClick: onClose -}, "Close")))); - -const useStyles$a = makeStyles(() => ({ - tooltipTitle: { - display: 'flex', - alignItems: 'center' - } -})); - -const CopyTextTooltip = ({ - displayElement, - fullText -}) => { - const [isCopied, setIsCopied] = useState(false); - const classes = useStyles$a(); - const tooltipContent = React__default.createElement("div", { - className: classes.tooltipTitle - }, React__default.createElement(FileCopyIcon, null), React__default.createElement(Typography, { - variant: "body2" - }, fullText)); - return React__default.createElement(Tooltip$1, { - interactive: true, - title: isCopied ? React__default.createElement(Typography, { - variant: "body2" - }, "Copied!") : tooltipContent, - onClick: () => { - navigator.clipboard.writeText(fullText).then(() => { - setIsCopied(true); - }); - }, - onClose: () => { - setIsCopied(false); - } - }, displayElement); -}; - -const useStyles$b = makeStyles(theme => ({ - root: { - boxShadow: 'none', - color: colors.gray4, - width: '100%' - }, - heading: { - display: 'flex', - justifyContent: 'center', - color: colors.gray5, - fontSize: fonts.size.subtitleSmall, - width: '100%' - }, - headingExpanded: { - color: colors.primary - }, - headingCollapsed: { - fontWeight: fonts.weight.regular - }, - panelDetails: { - display: 'flex', - justifyContent: 'center' - }, - answerContainer: { - [theme.breakpoints.up('md')]: { - maxWidth: '80%' - } - }, - answerText: { - color: colors.gray5 - } -})); - -const FAQSection = ({ - className: _className = '', - initiallyExpanded, - question, - answer -}) => { - const classes = useStyles$b(); - const [isExpanded, setIsExpanded] = useState(!!initiallyExpanded); - - const onChange = () => setIsExpanded(!isExpanded); - - return React__default.createElement(Accordion$2, { - className: `${classes.root} ${_className}`.trim(), - expanded: isExpanded, - onChange: onChange - }, React__default.createElement(AccordionSummary, { - expandIcon: isExpanded ? React__default.createElement(RemoveIcon, null) : React__default.createElement(AddIcon, null) - }, React__default.createElement(Typography, { - className: `${classes.heading} ${isExpanded ? classes.headingExpanded : classes.headingCollapsed}`.trim() - }, question)), React__default.createElement(AccordionDetails, { - className: classes.panelDetails - }, React__default.createElement("div", { - className: classes.answerContainer - }, React__default.createElement(Typography, { - className: classes.answerText - }, answer)))); -}; - -const useStyles$c = makeStyles(() => ({ - root: { - color: colors.gray4, - width: '100%' - } -})); - -const LabeledCheckbox = ({ - labelText, - labelClassName: _labelClassName = '', - ...rest -}) => { - const classes = useStyles$c(); - return React__default.createElement(FormControlLabel, { - className: `${classes.root} ${_labelClassName.trim()}`, - label: labelText, - control: React__default.createElement(Checkbox, Object.assign({}, rest)) - }); -}; - -const FilterCheckboxCard = ({ - className: _className = '', - onClick, - items -}) => React__default.createElement("div", { - className: _className -}, items.map((item, i) => React__default.createElement(LabeledCheckbox, Object.assign({ - onClick: onClick, - key: `labeledCheckbox-${item.id}` || `labeledCheckbox-${i}-${_className}`.trim(), - labelClassName: item.labelClassName -}, item)))); - -const shortenString = (str, largerThan = 16, charsShownCount = 6) => str.length > largerThan ? `${str.substr(0, charsShownCount)}...${str.substr(str.length - 4)}` : str; - -const removeEmptySpaces = str => str.replace(/\s/g, ''); - -const maxSupportedNumber = 99999999999999; -const minSupportedNumber = 0.000001; - -const validatedNumber = num => { - if (num > 0) { - if (num > maxSupportedNumber) return maxSupportedNumber; - if (num < minSupportedNumber) return minSupportedNumber; - } - - if (num < 0) { - if (num < -maxSupportedNumber) return -maxSupportedNumber; - if (num > -minSupportedNumber) return -minSupportedNumber; - } - - return num; -}; - -const useStyles$d = makeStyles(() => ({ - root: { - alignItems: 'center', - display: 'flex', - flexDirection: 'column' - }, - footerLink: { - color: colors.gray4, - fontWeight: fonts.weight.light, - textDecoration: 'none', - '&:hover': { - fontWeight: fonts.weight.regular - } - }, - footerTitle: { - fontSize: fonts.size.subtitleBig, - textAlign: 'center' - } -})); - -const FooterColumn = ({ - title, - links, - className: _className = '' -}) => { - const classes = useStyles$d(); - return React__default.createElement("div", { - className: `${classes.root} ${_className}`.trim() - }, React__default.createElement(Typography, { - className: classes.footerTitle, - variant: "subtitle1", - color: "primary" - }, title), links.map(link => { - const key = removeEmptySpaces(link.title); - - if (link.isExternal) { - const href = (link.to || '#').toString(); - return React__default.createElement("a", { - className: classes.footerLink, - target: link.target, - color: "secondary", - key: key, - href: href - }, link.title); - } - - return React__default.createElement(NavLink, { - className: classes.footerLink, - target: link.target, - color: "secondary", - key: key, - to: link.to - }, link.title); - })); -}; - -const ModalDialogue = ({ - title, - footer, - children, - ...props -}) => React__default.createElement(Modal, Object.assign({}, props), React__default.createElement(React__default.Fragment, null, React__default.createElement(ModalHeader, null, React__default.createElement(ModalTitle, null, title)), React__default.createElement(ModalBody, null, children), React__default.createElement(ModalFooter, null, footer))); - -const useStyles$e = makeStyles(theme => ({ - root: { - color: colors.gray4, - display: 'flex' - }, - input: { - color: colors.gray4, - paddingLeft: theme.spacing(0.1), - textAlign: 'center', - '&::before': { - borderBottom: `1px solid ${colors.gray4}` - } - }, - inputContainer: { - paddingRight: '0 !important' - }, - units: { - color: colors.gray4, - display: 'flex', - fontSize: fonts.size.tiny - }, - unitsContainer: { - alignSelf: 'center', - color: colors.gray4, - display: 'flex', - fontSize: fonts.size.normal, - paddingLeft: '0 !important' - } -})); - -const UnitsInput = ({ - maxValue, - minValue, - units, - value, - step: _step = 1, - handleOnBlur, - handleOnChange, - ...rest -}) => { - const classes = useStyles$e(); - return React__default.createElement(React__default.Fragment, null, React__default.createElement(Grid, { - className: classes.root, - container: true, - spacing: 1 - }, React__default.createElement(Grid, { - className: classes.inputContainer, - item: true, - xs: 8 - }, React__default.createElement(Input, Object.assign({ - className: classes.input, - classes: { - input: classes.input - }, - value: value, - onChange: handleOnChange, - onBlur: handleOnBlur, - type: "number", - fullWidth: true, - inputProps: { - step: _step, - min: minValue, - max: maxValue, - 'aria-labelledby': 'input-slider' - } - }, rest))), React__default.createElement(Grid, { - item: true, - xs: 4, - className: classes.unitsContainer - }, React__default.createElement(Typography, { - className: classes.units - }, units)))); -}; - -const useStyles$f = makeStyles(() => ({ - root: { - width: '100%' - }, - inputsContainer: { - alignSelf: 'center', - display: 'flex', - justifyContent: 'space-between', - width: '100%' - }, - toContainer: { - alignSelf: 'center', - display: 'flex', - justifyContent: 'center', - width: '100%', - fontWeight: fonts.weight.regular - } -})); - -const RangeSliderWithInputs = ({ - values: { - start: startValue, - end: endValue - }, - unit, - handleChange, - className, - ...rest -}) => { - const classes = useStyles$f(); - const maxValue = rest.max || endValue; - const minValue = rest.min || startValue; - const step = rest.step || 1; - - const handleStartInputChange = event => { - const newStartValue = validatedNumber(Number(event.target.value)) || minValue; - handleChange({ - min: newStartValue, - max: endValue - }); - }; - - const handleEndInputChange = event => { - const newEndValue = validatedNumber(Number(event.target.value)) || endValue; - handleChange({ - min: startValue, - max: newEndValue - }); - }; - - const handleSliderChange = (_, newSliderValue) => { - handleChange({ - min: newSliderValue[0], - max: newSliderValue[1] - }); - }; - - const handleStartValueBlur = () => { - if (startValue < minValue) { - handleChange({ - min: minValue, - max: endValue - }); - } else if (startValue > endValue) { - handleChange({ - min: endValue, - max: endValue - }); - } - }; - - const handleEndValueBlur = () => { - if (endValue < startValue) { - handleChange({ - min: minValue, - max: startValue - }); - } else if (endValue > maxValue) { - handleChange({ - min: minValue, - max: maxValue - }); - } - }; - - const getCommonInputValues = () => ({ - maxValue, - minValue, - step, - units: unit - }); - - return React__default.createElement("div", { - className: `${classes.root} ${className}`.trim() - }, React__default.createElement(Slider, Object.assign({ - value: [startValue, endValue] - }, rest, { - onChange: handleSliderChange - })), React__default.createElement("div", { - className: classes.inputsContainer - }, React__default.createElement(UnitsInput, Object.assign({ - handleOnBlur: handleStartValueBlur, - handleOnChange: handleStartInputChange - }, getCommonInputValues(), { - value: startValue - })), React__default.createElement(Typography, { - className: classes.toContainer - }, "to"), React__default.createElement(UnitsInput, Object.assign({ - handleOnBlur: handleEndValueBlur, - handleOnChange: handleEndInputChange - }, getCommonInputValues(), { - value: endValue - })))); -}; - -const ShortenTextTooltip = ({ - value, - maxLength: _maxLength = 20, - charsShownCount -}) => React__default.createElement(React__default.Fragment, null, value.length > _maxLength && React__default.createElement(CopyTextTooltip, { - displayElement: React__default.createElement(Typography, { - variant: "body2" - }, shortenString(value, _maxLength, charsShownCount || _maxLength - 5)), - fullText: value -}), value.length <= _maxLength && value); - -const useStyles$g = makeStyles({ - indicator: { - display: 'flex', - justifyContent: 'center', - backgroundColor: 'transparent' - }, - root: { - borderBottom: `1px solid ${colors.gray3}` - } -}); - -const StyledTabs = props => { - const { - children - } = props; - const classes = useStyles$g(); - return React__default.createElement(Tabs, Object.assign({ - classes: classes - }, props), children); -}; - -const a11yProps = index => ({ - id: `full-width-tab-${index}`, - 'aria-controls': `full-width-tabpanel-${index}` -}); - -const useStyles$h = makeStyles(() => ({ - root: { - backgroundColor: colors.white, - minHeight: 20, - width: '100%', - border: `${colors.primary} solid 1px`, - borderRadius: 50, - overflow: 'hidden' - }, - tabContainer: { - minHeight: 20, - width: '100%' - }, - tab: { - '&:hover': { - color: colors.primary - }, - borderRadius: 50, - color: colors.gray3, - fontWeight: fonts.weight.light, - maxWidth: '50%', - minHeight: '100%', - minWidth: '50%', - outlineStyle: 'none', - padding: 0, - textTransform: 'capitalize', - zIndex: 1, - '&:focus': { - outlineStyle: 'none' - } - }, - tabIndicator: { - backgroundColor: colors.primary, - borderRadius: 50, - height: '100%' - }, - tabSelected: { - backgroundColor: `${colors.primary} !important`, - color: `${colors.white} !important` - } -})); - -const SwitchTabs = ({ - label1, - label2, - value: controlledValue, - onChange -}) => { - const classes = useStyles$h(); - - const handleChange = (event, newValue) => { - onChange(event, newValue); - }; - - return React__default.createElement("div", { - className: classes.root - }, React__default.createElement(Tabs$1, { - "aria-label": "tabs switch", - className: classes.tabContainer, - onChange: handleChange, - TabIndicatorProps: { - className: classes.tabIndicator - }, - value: controlledValue, - variant: "fullWidth" - }, React__default.createElement(Tab$1, Object.assign({}, a11yProps(0), { - classes: { - selected: classes.tabSelected - }, - className: classes.tab, - label: label1 - })), React__default.createElement(Tab$1, Object.assign({}, a11yProps(1), { - classes: { - selected: classes.tabSelected - }, - className: classes.tab, - label: label2 - })))); -}; - -const TooltipIconButton = ({ - tooltipTitle, - iconButtonProps, - icon -}) => React__default.createElement(Tooltip$1, { - title: tooltipTitle -}, React__default.createElement("span", null, React__default.createElement(IconButton, Object.assign({ - color: "primary" -}, iconButtonProps), icon))); - -const useStyles$i = makeStyles(theme => ({ - boxContainer: { - border: `1px solid ${colors.primary}`, - padding: theme.spacing(5), - marginTop: theme.spacing(3) - }, - loaderContainer: { - display: 'flex', - justifyContent: 'center' - } -})); - -const WrongNetworkModal = ({ - open, - currentNetworkName: _currentNetworkName = 'Private network', - requiredNetworkName, - onClose -}) => { - const classes = useStyles$i(); - return React__default.createElement(ModalDialogue, { - title: `Switch to the ${requiredNetworkName} network`, - open: open, - onClose: onClose - }, React__default.createElement(React__default.Fragment, null, React__default.createElement(Typography, { - gutterBottom: true, - align: "center", - color: "secondary", - component: "div" - }, "This dApp only works on the", ' ', requiredNetworkName, ". You are currently on", ' ', React__default.createElement(Box, { - display: "inline", - fontWeight: "fontWeightMedium" - }, _currentNetworkName), "."), React__default.createElement(Grid, { - container: true, - className: classes.boxContainer, - alignItems: "center" - }, React__default.createElement(Grid, { - item: true, - sm: 3, - className: classes.loaderContainer - }, React__default.createElement(CircularProgress, null)), React__default.createElement(Grid, { - item: true, - sm: 9 - }, React__default.createElement(Typography, { - gutterBottom: true, - color: "secondary" - }, "Waiting for the right network..."), React__default.createElement(Typography, { - color: "primary", - component: "div" - }, React__default.createElement(Box, { - fontWeight: "fontWeightMedium" - }, "Switch networks on your wallet")))))); -}; - -const useStyles$j = makeStyles(theme => ({ - copyright: { - display: 'flex', - justifyContent: 'center' - }, - copyrightContent: { - color: colors.gray4, - fontSize: fonts.size.tiny - }, - footerContainer: { - backgroundColor: colors.gray2, - display: 'flex', - justifyContent: 'center', - paddingBottom: theme.spacing(2), - width: '100%' - }, - footerContent: { - marginTop: theme.spacing(2), - maxWidth: '80%', - width: '100%' - }, - linksColumn: { - marginBottom: theme.spacing(1) - }, - logoColumn: { - display: 'flex', - justifyContent: 'center', - padding: theme.spacing(5) - }, - root: { - alignItems: 'center', - display: 'flex', - flexDirection: 'column', - paddingTop: theme.spacing(4), - width: '100%' - }, - tongue: { - backgroundColor: colors.gray2, - borderTopLeftRadius: '50% 80%', - borderTopRightRadius: '50% 80%', - height: theme.spacing(10), - width: '100%' - } -})); - -const Footer = ({ - className: _className = '', - copyrightText, - linksColumns, - ...rest -}) => { - const classes = useStyles$j(); - return React__default.createElement("footer", Object.assign({ - className: `${classes.root} ${_className}`.trim() - }, rest), React__default.createElement("div", { - className: classes.tongue - }), React__default.createElement("div", { - className: classes.footerContainer - }, React__default.createElement("div", { - className: classes.footerContent - }, React__default.createElement(Grid$1, { - container: true, - direction: "row" - }, React__default.createElement(Grid$1, { - className: classes.logoColumn, - item: true, - xs: 12, - md: 3, - lg: 3 - }, React__default.createElement("img", { - src: logoBlackAndBlue, - height: "75px", - alt: "logo" - })), linksColumns.map(linkColumn => React__default.createElement(Grid$1, { - key: `fc-${removeEmptySpaces(linkColumn.title)}`, - item: true, - xs: 12, - sm: 12, - md: 2, - lg: 2 - }, React__default.createElement(FooterColumn, Object.assign({ - className: classes.linksColumn - }, linkColumn))))), React__default.createElement("div", { - className: classes.copyright - }, React__default.createElement(Typography, { - className: classes.copyrightContent - }, copyrightText))))); -}; - -var ConnectionStatus; - -(function (ConnectionStatus) { - ConnectionStatus[ConnectionStatus["LoggedIn"] = 0] = "LoggedIn"; - ConnectionStatus[ConnectionStatus["LoggedOut"] = 1] = "LoggedOut"; - ConnectionStatus[ConnectionStatus["WalletLocked"] = 2] = "WalletLocked"; - ConnectionStatus[ConnectionStatus["WrongNetwork"] = 3] = "WrongNetwork"; -})(ConnectionStatus || (ConnectionStatus = {})); - -var ConnectionStatus$1 = ConnectionStatus; - -var networksData = [ - { - name: "Ethereum Mainnet", - chainId: 1, - shortName: "eth", - chain: "ETH", - network: "mainnet", - networkId: 1, - nativeCurrency: { - name: "Ether", - symbol: "ETH", - decimals: 18 - }, - rpc: [ - "https://mainnet.infura.io/v3/${INFURA_API_KEY}", - "https://api.mycryptoapi.com/eth" - ], - faucets: [ - ], - infoURL: "https://ethereum.org" - }, - { - name: "xDAI Chain", - chainId: 100, - shortName: "xdai", - chain: "XDAI", - network: "mainnet", - networkId: 100, - nativeCurrency: { - name: "xDAI", - symbol: "xDAI", - decimals: 18 - }, - rpc: [ - "https://dai.poa.network" - ], - faucets: [ - ], - infoURL: "https://forum.poa.network/c/xdai-chain" - }, - { - name: "EtherInc", - chainId: 101, - shortName: "eti", - chain: "ETI", - network: "mainnet", - networkId: 1, - nativeCurrency: { - name: "EtherInc Ether", - symbol: "ETI", - decimals: 18 - }, - rpc: [ - "https://api.einc.io/jsonrpc/mainnet" - ], - faucets: [ - ], - infoURL: "https://einc.io" - }, - { - name: "ThunderCore Mainnet", - chainId: 108, - shortName: "TT", - chain: "TT", - network: "mainnet", - networkId: 108, - nativeCurrency: { - name: "ThunderCore Mainnet Ether", - symbol: "TT", - decimals: 18 - }, - rpc: [ - "https://mainnet-rpc.thundercore.com" - ], - faucets: [ - "https://faucet.thundercore.com" - ], - infoURL: "https://thundercore.com" - }, - { - name: "Metadium Mainnet", - chainId: 11, - shortName: "meta", - chain: "META", - network: "mainnet", - networkId: 11, - nativeCurrency: { - name: "Metadium Mainnet Ether", - symbol: "META", - decimals: 18 - }, - rpc: [ - "https://api.metadium.com/prod" - ], - faucets: [ - ], - infoURL: "https://metadium.com" - }, - { - name: "IPOS Network", - chainId: 1122334455, - shortName: "ipos", - chain: "IPOS", - network: "mainnet", - networkId: 1122334455, - nativeCurrency: { - name: "IPOS Network Ether", - symbol: "IPOS", - decimals: 18 - }, - rpc: [ - "https://rpc.iposlab.com", - "https://rpc2.iposlab.com" - ], - faucets: [ - ], - infoURL: "https://iposlab.com" - }, - { - name: "Metadium Testnet", - chainId: 12, - shortName: "kal", - chain: "META", - network: "testnet", - networkId: 12, - nativeCurrency: { - name: "Metadium Testnet Ether", - symbol: "KAL", - decimals: 18 - }, - rpc: [ - "https://api.metadium.com/dev" - ], - faucets: [ - ], - infoURL: "https://metadium.com" - }, - { - name: "Fuse Mainnet", - chainId: 122, - shortName: "fuse", - chain: "FUSE", - network: "mainnet", - networkId: 122, - nativeCurrency: { - name: "Fuse", - symbol: "FUSE", - decimals: 18 - }, - rpc: [ - "https://rpc.fuse.io" - ], - faucets: [ - ], - infoURL: "https://fuse.io/" - }, - { - name: "Ether-1", - chainId: 1313114, - shortName: "etho", - chain: "ETHO", - network: "mainnet", - networkId: 1313114, - nativeCurrency: { - name: "Ether-1 Ether", - symbol: "ETHO", - decimals: 18 - }, - rpc: [ - "https://rpc.ether1.org" - ], - faucets: [ - ], - infoURL: "https://ether1.org" - }, - { - name: "Xerom", - chainId: 1313500, - shortName: "xero", - chain: "XERO", - network: "mainnet", - networkId: 1313500, - nativeCurrency: { - name: "Xerom Ether", - symbol: "XERO", - decimals: 18 - }, - rpc: [ - "https://rpc.xerom.org" - ], - faucets: [ - ], - infoURL: "https://xerom.org" - }, - { - name: "PepChain Churchill", - chainId: 13371337, - shortName: "tpep", - chain: "PEP", - network: "testnet", - networkId: 13371337, - nativeCurrency: { - name: "PepChain Churchill Ether", - symbol: "TPEP", - decimals: 18 - }, - rpc: [ - "https://churchill-rpc.pepchain.io" - ], - faucets: [ - ], - infoURL: "https://pepchain.io" - }, - { - name: "Lightstreams Testnet", - chainId: 162, - shortName: "tpht", - chain: "PHT", - network: "sirius", - networkId: 162, - nativeCurrency: { - name: "Lightstreams PHT", - symbol: "PHT", - decimals: 18 - }, - rpc: [ - "https://node.sirius.lightstreams.io" - ], - faucets: [ - "https://discuss.lightstreams.network/t/request-test-tokens" - ], - infoURL: "https://explorer.sirius.lightstreams.io" - }, - { - name: "Atheios", - chainId: 1620, - shortName: "ath", - chain: "ATH", - network: "mainnet", - networkId: 11235813, - nativeCurrency: { - name: "Atheios Ether", - symbol: "ATH", - decimals: 18 - }, - rpc: [ - "https://wallet.atheios.com:8797" - ], - faucets: [ - ], - infoURL: "https://atheios.com" - }, - { - name: "Lightstreams Mainnet", - chainId: 163, - shortName: "pht", - chain: "PHT", - network: "mainnet", - networkId: 163, - nativeCurrency: { - name: "Lightstreams PHT", - symbol: "PHT", - decimals: 18 - }, - rpc: [ - "https://node.mainnet.lightstreams.io" - ], - faucets: [ - ], - infoURL: "https://explorer.lightstreams.io" - }, - { - name: "ThunderCore Testnet", - chainId: 18, - shortName: "TST", - chain: "TST", - network: "testnet", - networkId: 18, - nativeCurrency: { - name: "ThunderCore Testnet Ether", - symbol: "TST", - decimals: 18 - }, - rpc: [ - "https://testnet-rpc.thundercore.com" - ], - faucets: [ - "https://faucet-testnet.thundercore.com" - ], - infoURL: "https://thundercore.com" - }, - { - name: "IOLite", - chainId: 18289463, - shortName: "ilt", - chain: "ILT", - network: "mainnet", - networkId: 18289463, - nativeCurrency: { - name: "IOLite Ether", - symbol: "ILT", - decimals: 18 - }, - rpc: [ - "https://net.iolite.io" - ], - faucets: [ - ], - infoURL: "https://iolite.io" - }, - { - name: "Teslafunds", - chainId: 1856, - shortName: "tsf", - chain: "TSF", - network: "mainnet", - networkId: 1, - nativeCurrency: { - name: "Teslafunds Ether", - symbol: "TSF", - decimals: 18 - }, - rpc: [ - "https://tsfapi.europool.me" - ], - faucets: [ - ], - infoURL: "https://teslafunds.io" - }, - { - name: "EtherGem", - chainId: 1987, - shortName: "egem", - chain: "EGEM", - network: "mainnet", - networkId: 1987, - nativeCurrency: { - name: "EtherGem Ether", - symbol: "EGEM", - decimals: 18 - }, - rpc: [ - "https://jsonrpc.egem.io/custom" - ], - faucets: [ - ], - infoURL: "https://egem.io" - }, - { - name: "Expanse Network", - chainId: 2, - shortName: "exp", - chain: "EXP", - network: "mainnet", - networkId: 1, - nativeCurrency: { - name: "Expanse Network Ether", - symbol: "EXP", - decimals: 18 - }, - rpc: [ - "https://node.expanse.tech" - ], - faucets: [ - ], - infoURL: "https://expanse.tech" - }, - { - name: "ELA-ETH-Sidechain Mainnet", - chainId: 20, - shortName: "ELAETHSC", - chain: "ETH", - network: "mainnet", - networkId: 1, - nativeCurrency: { - name: "Ether", - symbol: "ETH", - decimals: 18 - }, - rpc: [ - "https://mainrpc.elaeth.io" - ], - faucets: [ - ], - infoURL: "https://www.elastos.org/" - }, - { - name: "Akaroma", - chainId: 200625, - shortName: "aka", - chain: "AKA", - network: "mainnet", - networkId: 200625, - nativeCurrency: { - name: "Akaroma Ether", - symbol: "AKA", - decimals: 18 - }, - rpc: [ - "https://remote.akroma.io" - ], - faucets: [ - ], - infoURL: "https://akroma.io" - }, - { - name: "ELA-ETH-Sidechain Testnet", - chainId: 21, - shortName: "ELAETHSC", - chain: "ETH", - network: "testnet", - networkId: 2, - nativeCurrency: { - name: "Ether", - symbol: "ETH", - decimals: 18 - }, - rpc: [ - "https://rpc.elaeth.io" - ], - faucets: [ - "https://faucet.elaeth.io/" - ], - infoURL: "https://elaeth.io/" - }, - { - name: "Freight Trust Network", - chainId: 211, - shortName: "EDI", - chain: "EDI", - network: "freight & trade network", - networkId: 0, - nativeCurrency: { - name: "Freight Trust Native", - symbol: "0xF", - decimals: 18 - }, - rpc: [ - "http://13.57.207.168:3435", - "https://app.freighttrust.net/ftn/${API_KEY}" - ], - faucets: [ - "http://faucet.freight.sh" - ], - infoURL: "https://freighttrust.com" - }, - { - name: "Webchain", - chainId: 24484, - shortName: "web", - chain: "WEB", - network: "mainnet", - networkId: 37129, - nativeCurrency: { - name: "Webchain Ether", - symbol: "WEB", - decimals: 18 - }, - rpc: [ - "https://node1.webchain.network" - ], - faucets: [ - ], - infoURL: "https://webchain.network" - }, - { - name: "ARTIS sigma1", - chainId: 246529, - shortName: "ats", - chain: "ARTIS", - network: "sigma1", - networkId: 246529, - nativeCurrency: { - name: "ARTIS sigma1 Ether", - symbol: "ATS", - decimals: 18 - }, - rpc: [ - "https://rpc.sigma1.artis.network" - ], - faucets: [ - ], - infoURL: "https://artis.eco" - }, - { - name: "ARTIS tau1", - chainId: 246785, - shortName: "ats", - chain: "ARTIS", - network: "tau1", - networkId: 246785, - nativeCurrency: { - name: "ARTIS tau1 Ether", - symbol: "ATS", - decimals: 18 - }, - rpc: [ - "https://rpc.tau1.artis.network" - ], - faucets: [ - ], - infoURL: "https://artis.network" - }, - { - name: "Fantom Opera", - chainId: 250, - shortName: "ftm", - chain: "FTM", - network: "mainnet", - networkId: 250, - nativeCurrency: { - name: "Fantom", - symbol: "FTM", - decimals: 18 - }, - rpc: [ - "https://rpc.fantom.network", - "https://fantomscan.io/rpc" - ], - faucets: [ - ], - infoURL: "https://fantom.foundation" - }, - { - name: "High Performance Blockchain", - chainId: 269, - shortName: "hpb", - chain: "HPB", - network: "mainnet", - networkId: 100, - nativeCurrency: { - name: "High Performance Blockchain Ether", - symbol: "HPB", - decimals: 18 - }, - rpc: [ - "https://node.hpb.blue" - ], - faucets: [ - ], - infoURL: "https://hpb.io" - }, - { - name: "Auxilium Network Mainnet", - chainId: 28945486, - shortName: "aux", - chain: "AUX", - network: "mainnet", - networkId: 28945486, - nativeCurrency: { - name: "Auxilium coin", - symbol: "AUX", - decimals: 18 - }, - rpc: [ - "https://rpc.auxilium.global" - ], - faucets: [ - ], - infoURL: "https://auxilium.global" - }, - { - name: "Ethereum Testnet Ropsten", - chainId: 3, - shortName: "rop", - chain: "ETH", - network: "ropsten", - networkId: 3, - nativeCurrency: { - name: "Ropsten Ether", - symbol: "ROP", - decimals: 18 - }, - rpc: [ - "https://ropsten.infura.io/v3/${INFURA_API_KEY}" - ], - faucets: [ - "https://faucet.ropsten.be?${ADDRESS}" - ], - infoURL: "https://github.com/ethereum/ropsten" - }, - { - name: "RSK Mainnet", - chainId: 30, - shortName: "rsk", - chain: "RSK", - network: "mainnet", - networkId: 30, - nativeCurrency: { - name: "RSK Mainnet Ether", - symbol: "RSK", - decimals: 18 - }, - rpc: [ - "https://public-node.rsk.co", - "https://mycrypto.rsk.co" - ], - faucets: [ - ], - infoURL: "https://rsk.co" - }, - { - name: "RSK Testnet", - chainId: 31, - shortName: "trsk", - chain: "RSK", - network: "testnet", - networkId: 31, - nativeCurrency: { - name: "RSK Testnet Ether", - symbol: "TRSK", - decimals: 18 - }, - rpc: [ - "https://public-node.testnet.rsk.co", - "https://mycrypto.testnet.rsk.co" - ], - faucets: [ - "https://faucet.testnet.rsk.co" - ], - infoURL: "https://rsk.co" - }, - { - name: "Ethersocial Network", - chainId: 31102, - shortName: "esn", - chain: "ESN", - network: "mainnet", - networkId: 1, - nativeCurrency: { - name: "Ethersocial Network Ether", - symbol: "ESN", - decimals: 18 - }, - rpc: [ - "https://api.esn.gonspool.com" - ], - faucets: [ - ], - infoURL: "https://ethersocial.org" - }, - { - name: "Pirl", - chainId: 3125659152, - shortName: "pirl", - chain: "PIRL", - network: "mainnet", - networkId: 3125659152, - nativeCurrency: { - name: "Pirl Ether", - symbol: "PIRL", - decimals: 18 - }, - rpc: [ - "https://wallrpc.pirl.io" - ], - faucets: [ - ], - infoURL: "https://pirl.io" - }, - { - name: "Lisinski", - chainId: 385, - shortName: "lisinski", - chain: "CRO", - network: "mainnet", - networkId: 385, - nativeCurrency: { - name: "Lisinski Ether", - symbol: "LISINSKI", - decimals: 18 - }, - rpc: [ - "https://rpc-bitfalls1.lisinski.online" - ], - faucets: [ - "https://pipa.lisinski.online" - ], - infoURL: "https://lisinski.online" - }, - { - name: "Energi Mainnet", - chainId: 39797, - shortName: "nrg", - chain: "NRG", - network: "mainnet", - networkId: 39797, - nativeCurrency: { - name: "Energi", - symbol: "NRG", - decimals: 18 - }, - rpc: [ - "https://nodeapi.gen3.energi.network" - ], - faucets: [ - ], - infoURL: "https://www.energi.world/" - }, - { - name: "Ethereum Testnet Rinkeby", - chainId: 4, - shortName: "rin", - chain: "ETH", - network: "rinkeby", - networkId: 4, - nativeCurrency: { - name: "Rinkeby Ether", - symbol: "RIN", - decimals: 18 - }, - rpc: [ - "https://rinkeby.infura.io/v3/${INFURA_API_KEY}" - ], - faucets: [ - "https://faucet.rinkeby.io" - ], - infoURL: "https://www.rinkeby.io" - }, - { - name: "Ethereum Testnet Kovan", - chainId: 42, - shortName: "kov", - chain: "ETH", - network: "kovan", - networkId: 42, - nativeCurrency: { - name: "Kovan Ether", - symbol: "KOV", - decimals: 18 - }, - rpc: [ - "https://kovan.infura.io/v3/${INFURA_API_KEY}" - ], - faucets: [ - "https://faucet.kovan.network", - "https://gitter.im/kovan-testnet/faucet" - ], - infoURL: "https://kovan-testnet.github.io/website" - }, - { - name: "Athereum", - chainId: 43110, - shortName: "ath", - chain: "ATH", - network: "athereum", - networkId: 43110, - nativeCurrency: { - name: "Athereum Ether", - symbol: "ATH", - decimals: 18 - }, - rpc: [ - "https://ava.network:21015/ext/evm/rpc" - ], - faucets: [ - "http://athfaucet.ava.network//?address=${ADDRESS}" - ], - infoURL: "https://athereum.ava.network" - }, - { - name: "Energi Testnet", - chainId: 49797, - shortName: "tnrg", - chain: "NRG", - network: "testnet", - networkId: 49797, - nativeCurrency: { - name: "Energi", - symbol: "tNRG", - decimals: 18 - }, - rpc: [ - "https://nodeapi.test3.energi.network" - ], - faucets: [ - ], - infoURL: "https://www.energi.world/" - }, - { - name: "Ethereum Testnet Görli", - chainId: 5, - shortName: "gor", - chain: "ETH", - network: "goerli", - networkId: 5, - nativeCurrency: { - name: "Görli Ether", - symbol: "GOR", - decimals: 18 - }, - rpc: [ - "https://rpc.goerli.mudit.blog/", - "https://rpc.slock.it/goerli ", - "https://goerli.prylabs.net/" - ], - faucets: [ - "https://goerli-faucet.slock.it/?address=${ADDRESS}", - "https://faucet.goerli.mudit.blog" - ], - infoURL: "https://goerli.net/#about" - }, - { - name: "Ethereum Classic Testnet Kotti", - chainId: 6, - shortName: "kot", - chain: "ETC", - network: "kotti", - networkId: 6, - nativeCurrency: { - name: "Kotti Ether", - symbol: "KOT", - decimals: 18 - }, - rpc: [ - ], - faucets: [ - ], - infoURL: "https://explorer.jade.builders/?network=kotti" - }, - { - name: "GoChain", - chainId: 60, - shortName: "go", - chain: "GO", - network: "mainnet", - networkId: 60, - nativeCurrency: { - name: "GoChain Ether", - symbol: "GO", - decimals: 18 - }, - rpc: [ - "https://rpc.gochain.io" - ], - faucets: [ - ], - infoURL: "https://gochain.io" - }, - { - name: "Ethereum Classic Mainnet", - chainId: 61, - shortName: "etc", - chain: "ETC", - network: "mainnet", - networkId: 1, - nativeCurrency: { - name: "Ethereum Classic Ether", - symbol: "ETC", - decimals: 18 - }, - rpc: [ - "https://ethereumclassic.network" - ], - faucets: [ - ], - infoURL: "https://ethereumclassic.org" - }, - { - name: "Aquachain", - chainId: 61717561, - shortName: "aqua", - chain: "AQUA", - network: "mainnet", - networkId: 61717561, - nativeCurrency: { - name: "Aquachain Ether", - symbol: "AQUA", - decimals: 18 - }, - rpc: [ - "https://c.onical.org", - "https://tx.aquacha.in/api" - ], - faucets: [ - "https://aquacha.in/faucet" - ], - infoURL: "https://aquachain.github.io" - }, - { - name: "Ethereum Classic Testnet Morden", - chainId: 62, - shortName: "tetc", - chain: "ETC", - network: "testnet", - networkId: 2, - nativeCurrency: { - name: "Ethereum Classic Testnet Ether", - symbol: "TETC", - decimals: 18 - }, - rpc: [ - ], - faucets: [ - ], - infoURL: "https://ethereumclassic.org" - }, - { - name: "Ethereum Classic Testnet Mordor", - chainId: 63, - shortName: "metc", - chain: "ETC", - network: "testnet", - networkId: 7, - nativeCurrency: { - name: "Mordor Classic Testnet Ether", - symbol: "METC", - decimals: 18 - }, - rpc: [ - ], - faucets: [ - ], - infoURL: "https://github.com/eth-classic/mordor/" - }, - { - name: "Ellaism", - chainId: 64, - shortName: "ella", - chain: "ELLA", - network: "mainnet", - networkId: 64, - nativeCurrency: { - name: "Ellaism Ether", - symbol: "ELLA", - decimals: 18 - }, - rpc: [ - "https://jsonrpc.ellaism.org" - ], - faucets: [ - ], - infoURL: "https://ellaism.org" - }, - { - name: "ThaiChain", - chainId: 7, - shortName: "tch", - chain: "TCH", - network: "mainnet", - networkId: 7, - nativeCurrency: { - name: "ThaiChain Ether", - symbol: "TCH", - decimals: 18 - }, - rpc: [ - "https://rpc.dome.cloud" - ], - faucets: [ - ], - infoURL: "https://thaichain.io" - }, - { - name: "Mix", - chainId: 76, - shortName: "mix", - chain: "MIX", - network: "mainnet", - networkId: 76, - nativeCurrency: { - name: "Mix Ether", - symbol: "MIX", - decimals: 18 - }, - rpc: [ - "https://rpc2.mix-blockchain.org:8647" - ], - faucets: [ - ], - infoURL: "https://mix-blockchain.org" - }, - { - name: "POA Network Sokol", - chainId: 77, - shortName: "poa", - chain: "POA", - network: "sokol", - networkId: 77, - nativeCurrency: { - name: "POA Sokol Ether", - symbol: "POA", - decimals: 18 - }, - rpc: [ - "https://sokol.poa.network" - ], - faucets: [ - "https://faucet-sokol.herokuapp.com" - ], - infoURL: "https://poa.network" - }, - { - name: "Musicoin", - chainId: 7762959, - shortName: "music", - chain: "MUSIC", - network: "mainnet", - networkId: 7762959, - nativeCurrency: { - name: "Musicoin", - symbol: "MUSIC", - decimals: 18 - }, - rpc: [ - "https://mewapi.musicoin.tw" - ], - faucets: [ - ], - infoURL: "https://musicoin.tw" - }, - { - name: "Firenze test network", - chainId: 78110, - shortName: "firenze", - chain: "ETH", - network: "testnet", - networkId: 78110, - nativeCurrency: { - name: "Firenze Ether", - symbol: "FIN", - decimals: 18 - }, - rpc: [ - "https://ethnode.primusmoney.com/firenze" - ], - faucets: [ - ], - infoURL: "https://primusmoney.com" - }, - { - name: "Ubiq Network Mainnet", - chainId: 8, - shortName: "ubq", - chain: "UBQ", - network: "mainnet", - networkId: 88, - nativeCurrency: { - name: "Ubiq Ether", - symbol: "UBQ", - decimals: 18 - }, - rpc: [ - "https://rpc.octano.dev", - "https://pyrus2.ubiqscan.io" - ], - faucets: [ - ], - infoURL: "https://ubiqsmart.com" - }, - { - name: "Callisto Mainnet", - chainId: 820, - shortName: "clo", - chain: "CLO", - network: "mainnet", - networkId: 1, - nativeCurrency: { - name: "Callisto Mainnet Ether", - symbol: "CLO", - decimals: 18 - }, - rpc: [ - "https://clo-geth.0xinfra.com" - ], - faucets: [ - ], - infoURL: "https://callisto.network" - }, - { - name: "Callisto Testnet", - chainId: 821, - shortName: "tclo", - chain: "CLO", - network: "testnet", - networkId: 2, - nativeCurrency: { - name: "Callisto Testnet Ether", - symbol: "TCLO", - decimals: 18 - }, - rpc: [ - ], - faucets: [ - ], - infoURL: "https://callisto.network" - }, - { - name: "TomoChain", - chainId: 88, - shortName: "tomo", - chain: "TOMO", - network: "mainnet", - networkId: 88, - nativeCurrency: { - name: "TomoChain Ether", - symbol: "TOMO", - decimals: 18 - }, - rpc: [ - "https://core.tomocoin.io" - ], - faucets: [ - ], - infoURL: "https://tomocoin.io" - }, - { - name: "Ubiq Network Testnet", - chainId: 9, - shortName: "tubq", - chain: "UBQ", - network: "mainnet", - networkId: 2, - nativeCurrency: { - name: "Ubiq Testnet Ether", - symbol: "TUBQ", - decimals: 18 - }, - rpc: [ - ], - faucets: [ - ], - infoURL: "https://ethersocial.org" - }, - { - name: "Nepal Blockchain Network", - chainId: 977, - shortName: "yeti", - chain: "YETI", - network: "mainnet", - networkId: 977, - nativeCurrency: { - name: "Nepal Blockchain Network Ether", - symbol: "YETI", - decimals: 18 - }, - rpc: [ - "https://api.nepalblockchain.dev", - "https://api.nepalblockchain.network" - ], - faucets: [ - "https://faucet.nepalblockchain.network" - ], - infoURL: "https://nepalblockchain.network" - }, - { - name: "POA Network Core", - chainId: 99, - shortName: "skl", - chain: "POA", - network: "core", - networkId: 99, - nativeCurrency: { - name: "POA Network Core Ether", - symbol: "SKL", - decimals: 18 - }, - rpc: [ - "https://core.poa.network" - ], - faucets: [ - ], - infoURL: "https://poa.network" - }, - { - name: "Local Tests", - chainId: 1337, - shortName: "test", - chain: "localtests", - network: "localTests", - networkId: 8545, - nativeCurrency: { - name: "Local Tests Ether", - symbol: "LT", - decimals: 18 - }, - rpc: [ - "http://localhost:8545" - ], - faucets: [ - "http://localhost:8545" - ], - infoURL: "http://localhost:8545" - } -]; - -function getWeb3(provider = EProvider.METAMASK) { - return new Promise((resolve, reject) => { - switch (provider) { - case EProvider.NIFTY: - case EProvider.METAMASK: - { - if (window.ethereum) { - const web3 = new Web3(window.ethereum); - window.ethereum.enable().then(() => resolve(web3)).catch(reject); - } else if (window.web3) { - resolve(new Web3(window.web3.currentProvider)); - } else reject(new Error('No injected web3 found')); - - break; - } - - case EProvider.LOCAL: - { - const localhostProvider = new Web3.providers.HttpProvider("'http://127.0.0.1:4444'"); - resolve(new Web3(localhostProvider)); - break; - } - - default: - { - reject(new Error(`Provider not implemented or unknown. Chosen provider ${provider}`)); - break; - } - } - }); -} -const getNetworkInfo = (networkId, chainId) => networksData.find(n => chainId ? n.networkId === networkId && n.chainId === chainId : n.networkId === networkId); -const getNetworkInfoFromWeb3 = async web3 => { - let networkId; - let chainId; - - try { - networkId = await web3.eth.net.getId(); - - if (networkId) { - chainId = await web3.eth.getChainId(); - } - } catch (error) {} - - let networkInfo; - - if (networkId) { - try { - networkInfo = getNetworkInfo(networkId, chainId); - } catch (error) {} - } - - return networkInfo; -}; - -const getWeb3Provider = () => { - if (window.ethereum) return window.ethereum; - if (window.web3) return window.web3.currentProvider; - return undefined; -}; - -const getAvailableProviders = () => { - const result = []; - const currentProvider = getWeb3Provider(); - if (!currentProvider) return undefined; - - if (currentProvider.isMetaMask) { - result.push(currentProvider.isNiftyWallet ? getProviderInfo(EProvider.NIFTY) : getProviderInfo(EProvider.METAMASK)); - } - - if (currentProvider.isTrust) result.push(getProviderInfo(EProvider.TRUST)); - if (currentProvider.isGoWallet) result.push(getProviderInfo(EProvider.GO_WALLET)); - if (currentProvider.isAlphaWallet) result.push(getProviderInfo(EProvider.ALPHA_WALLET)); - if (currentProvider.isStatus) result.push(getProviderInfo(EProvider.STATUS)); - if (currentProvider.isToshi) result.push(getProviderInfo(EProvider.COINBASE)); - if (typeof window.__CIPHER__ !== 'undefined') result.push(getProviderInfo(EProvider.CIPHER)); - if (currentProvider.constructor.name === 'EthereumProvider') result.push(getProviderInfo(EProvider.MIST)); - if (currentProvider.constructor.name === 'Web3FrameProvider') result.push(getProviderInfo(EProvider.PARITY)); - if (currentProvider.host && currentProvider.host.indexOf('infura') !== -1) result.push(getProviderInfo(EProvider.INFURA)); - if (currentProvider.host && currentProvider.host.indexOf('localhost') !== -1) result.push(getProviderInfo(EProvider.LOCAL)); - return result; -}; -const getConnectionStatus = (web3, requiredNetworkId, currentNetworkId, account) => { - if (!web3) return ConnectionStatus$1.LoggedOut; - - if (currentNetworkId !== requiredNetworkId) { - return ConnectionStatus$1.WrongNetwork; - } - - if (account) { - return ConnectionStatus$1.LoggedIn; - } - - return ConnectionStatus$1.WalletLocked; -}; - -const useStyles$k = makeStyles(theme => ({ - accountText: { - fontSize: fonts.size.tiny, - textAlign: 'center' - }, - button: { - border: `1px solid ${colors.white}`, - '&:hover': { - border: `1px solid ${colors.transparent}` - } - }, - networkIndicator: { - marginRight: theme.spacing(1) - }, - rightNetwork: { - padding: theme.spacing(2) - } -})); - -const Account = props => { - const { - web3, - networkInfo, - account, - setProvider, - availableProviders, - requiredNetworkId, - onCorrectNetworkMessage, - onNetworkMismatchMessage, - noNetworkMessage, - requiredNetworkName, - modalInitiallyOpened = false - } = props; - const classes = useStyles$k(); - const [accountModalOpen, setAccountModalOpen] = useState(modalInitiallyOpened); - - const handleAccountModalClose = () => setAccountModalOpen(false); - - const handleAccountModalOpen = () => setAccountModalOpen(true); - - const [wrongNetModalOpen, setWrongNetModalOpen] = useState(false); - - const openWrongNetModal = () => setWrongNetModalOpen(true); - - const closeWrongNetModal = () => setWrongNetModalOpen(false); - - const connectionStatus = getConnectionStatus(web3, requiredNetworkId, networkInfo === null || networkInfo === void 0 ? void 0 : networkInfo.networkId, account); - const [anchorEl, setAnchorEl] = React__default.useState(null); - const popoverOpen = Boolean(anchorEl); - const id = popoverOpen ? 'right-net-popover' : undefined; - - const handlePopoverClose = () => { - setAnchorEl(null); - }; - - useEffect(() => { - if (connectionStatus === ConnectionStatus$1.WrongNetwork) { - openWrongNetModal(); - } else { - closeWrongNetModal(); - handlePopoverClose(); - } - }, [connectionStatus]); - - const accountText = () => { - if (connectionStatus === ConnectionStatus$1.LoggedOut) return 'Connect wallet'; - if (connectionStatus === ConnectionStatus$1.WrongNetwork) return 'Wrong Network'; - - if (account) { - return shortenString(account); - } - - return 'Unlock your wallet'; - }; - - const onAccountClicked = event => { - if (connectionStatus === ConnectionStatus$1.WrongNetwork) return openWrongNetModal(); - if (connectionStatus === ConnectionStatus$1.LoggedOut) return handleAccountModalOpen(); - if (connectionStatus === ConnectionStatus$1.LoggedIn) return setAnchorEl(event.currentTarget); - return null; - }; - - return React__default.createElement(React__default.Fragment, null, React__default.createElement(Button, { - onClick: onAccountClicked, - className: classes.button, - variant: "contained", - color: "primary", - rounded: true - }, !!requiredNetworkId && React__default.createElement(NetworkIndicator, { - iconClassName: classes.networkIndicator, - currentNetworkId: networkInfo === null || networkInfo === void 0 ? void 0 : networkInfo.networkId, - requiredNetworkId: requiredNetworkId, - onCorrectNetworkMessage: onCorrectNetworkMessage, - onNetworkMismatchMessage: onNetworkMismatchMessage, - noNetworkMessage: noNetworkMessage - }), React__default.createElement(Typography, { - className: classes.accountText - }, accountText())), React__default.createElement(Popover, { - id: id, - open: popoverOpen, - anchorEl: anchorEl, - onClose: handlePopoverClose, - anchorOrigin: { - vertical: 'bottom', - horizontal: 'center' - }, - transformOrigin: { - vertical: 'top', - horizontal: 'center' - } - }, React__default.createElement(Typography, { - className: classes.rightNetwork - }, `You are successfully connected to ${networkInfo === null || networkInfo === void 0 ? void 0 : networkInfo.name}.`)), React__default.createElement(AccountModal, { - open: accountModalOpen, - onClose: handleAccountModalClose, - web3: web3, - onProviderSet: handleAccountModalClose, - setProvider: setProvider, - availableProviders: availableProviders - }), React__default.createElement(WrongNetworkModal, { - open: wrongNetModalOpen, - onClose: closeWrongNetModal, - requiredNetworkName: requiredNetworkName, - currentNetworkName: networkInfo === null || networkInfo === void 0 ? void 0 : networkInfo.name - })); -}; - -const useStyles$l = makeStyles(theme => ({ - activeNavlink: { - color: `${colors.white} !important`, - fontWeight: fonts.weight.medium - }, - navLink: { - alignItems: 'center', - color: colors.white, - display: 'flex', - paddingLeft: theme.spacing(5), - paddingRight: theme.spacing(5), - textAlign: 'center', - textDecoration: 'none', - '&:hover': { - color: colors.gray5, - textDecoration: 'none' - } - }, - navLinkContainer: { - display: 'flex' - }, - root: { - boxShadow: 'none', - height: theme.spacing(globalConstants.headerHeight) - } -})); - -const HeaderDesktop = ({ - hreflogo, - itemsStart, - itemsEnd, - login -}) => { - const classes = useStyles$l(); - const Login = login; - return React__default.createElement(AppBar, { - position: "fixed", - className: classes.root - }, React__default.createElement(Toolbar, null, React__default.createElement(Grid$1, { - container: true - }, React__default.createElement(Grid$1, { - item: true, - xs: 1 - }, React__default.createElement(NavLink, { - to: hreflogo - }, React__default.createElement(LogoNavbar, null))), React__default.createElement(Grid$1, { - item: true, - xs: 6, - xl: 8, - container: true, - justify: "flex-start" - }, !!(itemsStart === null || itemsStart === void 0 ? void 0 : itemsStart.length) && itemsStart.map(navItem => React__default.createElement(Typography, { - className: classes.navLinkContainer, - key: `hi-${removeEmptySpaces(navItem.title)}` - }, React__default.createElement(NavLink, Object.assign({ - className: classes.navLink, - activeClassName: classes.activeNavlink - }, navItem), navItem.title)))), React__default.createElement(Grid$1, { - item: true, - xs: 3, - xl: 2, - container: true, - justify: "flex-end", - alignContent: "center" - }, !!(itemsEnd === null || itemsEnd === void 0 ? void 0 : itemsEnd.length) && itemsEnd.map(({ - icon, - ...rest - }) => React__default.createElement(ListItemIcon, Object.assign({ - key: icon.key - }, rest), icon))), React__default.createElement(Grid$1, { - item: true, - container: true, - xs: 2, - xl: 1, - justify: "flex-end", - alignContent: "center" - }, React__default.createElement("div", null, React__default.createElement(Login, null)))))); -}; - -const drawerWidth = 240; -const useStyles$m = makeStyles(theme => createStyles$1({ - drawerHeader: { - display: 'flex', - alignItems: 'center', - padding: theme.spacing(0, 1), - ...theme.mixins.toolbar, - justifyContent: 'flex-end' - }, - drawerPaper: { - width: drawerWidth - }, - mobileAppBar: { - boxShadow: 'none', - height: theme.spacing(globalConstants.headerHeight), - transition: theme.transitions.create(['margin', 'width'], { - easing: theme.transitions.easing.sharp, - duration: theme.transitions.duration.leavingScreen - }) - }, - mobileAppBarShift: { - width: `calc(100% - ${drawerWidth}px)`, - marginLeft: drawerWidth, - transition: theme.transitions.create(['margin', 'width'], { - easing: theme.transitions.easing.easeOut, - duration: theme.transitions.duration.enteringScreen - }) - }, - mobileNavLink: { - alignItems: 'center', - color: colors.gray4, - display: 'flex', - textDecoration: 'none', - width: '100%', - '&:hover': { - color: colors.gray5, - textDecoration: 'none' - } - }, - mobileNavLinkActive: { - color: `${colors.primary} !important` - } -})); - -const HeaderMobile = ({ - hreflogo, - itemsStart, - itemsEnd, - login: Login -}) => { - const classes = useStyles$m(); - const [open, setOpen] = useState(false); - - const toggleDrawer = isOpen => event => { - if (event.type === 'keydown' && (event.key === 'Tab' || event.key === 'Shift')) { - return; - } - - setOpen(isOpen); - }; - - return React__default.createElement("div", { - role: "presentation", - onKeyDown: toggleDrawer(false) - }, React__default.createElement(AppBar, { - position: "fixed", - className: `${classes.mobileAppBar} ${open ? classes.mobileAppBarShift : ''}`.trim() - }, React__default.createElement(Toolbar, null, !open && React__default.createElement(Grid$1, { - container: true - }, React__default.createElement(Grid$1, { - item: true, - xs: 1 - }, React__default.createElement(IconButton$1, { - color: "inherit", - "aria-label": "open drawer", - onClick: toggleDrawer(true) - }, React__default.createElement(MenuIcon, null))), React__default.createElement(Grid$1, { - item: true, - xs: 3 - }, React__default.createElement(NavLink, { - to: hreflogo - }, React__default.createElement(LogoNavbar, null))), React__default.createElement(Grid$1, { - item: true, - md: 6, - sm: 5, - xs: 4, - container: true, - justify: "flex-end", - alignContent: "center" - }, !!(itemsEnd === null || itemsEnd === void 0 ? void 0 : itemsEnd.length) && itemsEnd.map(({ - icon, - ...rest - }) => React__default.createElement(ListItemIcon, Object.assign({ - key: icon.key - }, rest), icon))), React__default.createElement(Grid$1, { - item: true, - md: 2, - sm: 3, - xs: 4, - container: true, - justify: "flex-end", - alignContent: "center" - }, React__default.createElement("div", null, React__default.createElement(Login, null)))))), React__default.createElement(Drawer, { - anchor: "left", - open: open, - onClose: toggleDrawer(false), - classes: { - paper: classes.drawerPaper - }, - onClick: toggleDrawer(false) - }, React__default.createElement("div", { - className: classes.drawerHeader - }, React__default.createElement(IconButton$1, { - onClick: toggleDrawer(false) - }, React__default.createElement(ChevronLeftIcon, null))), React__default.createElement(Divider, null), React__default.createElement(List, null, !!(itemsStart === null || itemsStart === void 0 ? void 0 : itemsStart.length) && itemsStart.map(headerItem => React__default.createElement(ListItem, { - button: true, - key: `him-${removeEmptySpaces(headerItem.title)}` - }, React__default.createElement(NavLink, { - to: headerItem.to, - className: classes.mobileNavLink, - activeClassName: classes.mobileNavLinkActive - }, React__default.createElement(ListItemIcon, null, headerItem.icon), React__default.createElement(ListItemText, { - primary: headerItem.title - }))))))); -}; - -const Header = props => React__default.createElement(React__default.Fragment, null, React__default.createElement(Hidden, { - smDown: true -}, React__default.createElement(HeaderDesktop, Object.assign({}, props))), React__default.createElement(Hidden, { - mdUp: true -}, React__default.createElement(HeaderMobile, Object.assign({}, props)))); - -const useStyles$n = makeStyles(theme => ({ - textContainer: { - alignItems: 'center', - backgroundColor: colors.primary, - display: 'flex', - justifyContent: 'center', - width: '100%' - }, - textContent: { - color: colors.white, - display: 'flex', - flexDirection: 'column', - textAlign: 'center', - [theme.breakpoints.down('sm')]: { - maxWidth: '90%' - }, - [theme.breakpoints.up('md')]: { - maxWidth: '65%' - }, - [theme.breakpoints.up('xl')]: { - maxWidth: '55%' - } - }, - titleContent: { - marginBottom: theme.spacing(1), - fontSize: theme.spacing(5), - fontWeight: fonts.weight.regular - }, - tongueImg: { - width: '100%' - } -})); - -const HeaderTongue = ({ - description, - titleLine1, - titleLine2 -}) => { - const classes = useStyles$n(); - return React__default.createElement(React__default.Fragment, null, React__default.createElement("div", { - className: classes.textContainer - }, React__default.createElement("div", { - className: classes.textContent - }, React__default.createElement(Typography, { - className: classes.titleContent, - variant: "h3" - }, titleLine1, React__default.createElement("br", null), ' ', titleLine2), React__default.createElement(Typography, { - variant: "subtitle1" - }, description))), React__default.createElement("img", { - className: classes.tongueImg, - src: headerTongueImg, - alt: "headerTongueImg" - })); -}; - -const useStyles$o = makeStyles(theme => ({ - root: { - alignItems: 'center', - display: 'flex', - flexDirection: 'column', - marginTop: theme.spacing(3) - }, - container: { - alignItems: 'center', - display: 'flex', - flexDirection: 'column', - [theme.breakpoints.up('md')]: { - maxWidth: '80%' - } - }, - grayBackground: { - backgroundColor: colors.gray1 - }, - mainTitle: { - fontSize: theme.typography.pxToRem(50), - margin: theme.spacing(2, 0) - }, - questionsSection: { - alignItems: 'center', - display: 'flex', - flexDirection: 'column', - marginTop: theme.spacing(2) - } -})); - -const FAQPageTemplate = ({ - className: _className = '', - mainTitle, - questionsAndAnswers -}) => { - const classes = useStyles$o(); - return React__default.createElement("div", { - className: `${classes.root} ${_className}`.trim() - }, React__default.createElement("div", { - className: classes.container - }, React__default.createElement(Typography, { - className: classes.mainTitle, - variant: "h1", - color: "primary" - }, mainTitle), React__default.createElement("div", { - className: classes.questionsSection - }, questionsAndAnswers.map((qAndA, i) => React__default.createElement(FAQSection, Object.assign({ - className: `${i % 2 === 0 ? classes.grayBackground : ''}`, - key: `faq-${removeEmptySpaces(qAndA.question)}` - }, qAndA)))))); -}; - -const useStyles$p = makeStyles(theme => ({ - root: { - marginTop: theme.spacing(globalConstants.headerHeight), - width: '100%' - } -})); - -const PageTemplate = ({ - children, - className: _className = '', - ...props -}) => { - const classes = useStyles$p(); - return React__default.createElement("div", Object.assign({ - className: `${classes.root} ${_className}`.trim() - }, props), children); -}; - -const defaultWeb3State = { - provider: undefined, - web3: undefined, - account: undefined, - networkInfo: undefined -}; -const Web3Store = createContext({ - state: defaultWeb3State, - actions: { - setProvider: () => Promise.resolve(), - onConnectedNetworkChange: () => 0, - onConnectedAccountChange: () => 0 - }, - requiredNetworkId: undefined, - requiredChainId: undefined -}); - -const getAccountFromEthAccounts = accounts => { - let account; - if (Array.isArray(accounts)) [account] = accounts;else account = accounts; - return account; -}; - -const shouldReadAccount = (requiredNetworkId, requiredChainId, networkInfo) => { - if (!requiredNetworkId) return true; - - if (requiredNetworkId === (networkInfo === null || networkInfo === void 0 ? void 0 : networkInfo.networkId)) { - if (requiredChainId) return requiredChainId === (networkInfo === null || networkInfo === void 0 ? void 0 : networkInfo.chainId); - return true; - } - - return false; -}; - -class Web3Provider extends Component { - constructor(props) { - super(props); - this.state = defaultWeb3State; - this.requiredNetworkId = props.requiredNetworkId; - this.requiredChainId = props.requiredChainId; - this.onConnectedNetworkChange = props.actions.onConnectedNetworkChange; - this.onConnectedAccountChange = props.actions.onConnectedAccountChange; - this.setProvider = this.setProvider.bind(this); - this.initialize(); - } - - async setProvider(provider, onStateChanged) { - const web3 = await getWeb3(provider); - const accounts = await web3.eth.getAccounts(); - const networkInfo = await getNetworkInfoFromWeb3(web3); - const shouldSetAccount = shouldReadAccount(this.requiredNetworkId, this.requiredChainId, networkInfo); - const account = shouldSetAccount ? getAccountFromEthAccounts(accounts) : undefined; - this.setState({ - web3, - provider, - account, - networkInfo - }, () => onStateChanged && onStateChanged(account)); - } - - initialize() { - var _this = this; - - if (!window.ethereum) { - return; - } - - this.availableProviders = getAvailableProviders(); - window.ethereum.autoRefreshOnNetworkChange = false; - window.ethereum.on('networkChanged', async function (_netId) { - const { - networkInfo - } = _this.state; - if (!networkInfo) return; - const { - provider - } = _this.state; - const web3 = await getWeb3(provider); - const accounts = await web3.eth.getAccounts(); - const newNetworkInfo = await getNetworkInfoFromWeb3(web3); - const shouldSetAccount = shouldReadAccount(_this.requiredNetworkId, _this.requiredChainId, newNetworkInfo); - const account = shouldSetAccount ? getAccountFromEthAccounts(accounts) : undefined; - - _this.setState({ - networkInfo: newNetworkInfo, - account - }, () => _this.onConnectedNetworkChange && _this.onConnectedNetworkChange()); - }); - window.ethereum.on('accountsChanged', accounts => { - const { - networkInfo - } = this.state; - if (!networkInfo) return; - const shouldSetAccount = shouldReadAccount(this.requiredNetworkId, this.requiredChainId, networkInfo); - - if (shouldSetAccount) { - const account = getAccountFromEthAccounts(accounts); - - if (account) { - this.setState({ - account - }, () => this.onConnectedAccountChange && this.onConnectedAccountChange()); - } - } - }); - } - - render() { - const { - provider, - web3, - account, - networkInfo - } = this.state; - const { - setProvider, - onConnectedNetworkChange, - onConnectedAccountChange, - availableProviders - } = this; - const { - children - } = this.props; - return React__default.createElement(Web3Store.Provider, { - value: { - actions: { - setProvider, - onConnectedNetworkChange, - onConnectedAccountChange - }, - state: { - provider, - web3, - account, - networkInfo - }, - availableProviders - } - }, children); - } - -} - -var Web3Provider$1 = { - Consumer: Web3Store.Consumer, - Provider: Web3Provider -}; - -export { Accordion, Account, AccountModal, Button, Checkbox, CopyTextTooltip, FAQPageTemplate, FAQSection, FilterCheckboxCard, Footer, FooterColumn, Header, HeaderTongue, LabeledCheckbox, LoginOption, Logo, LogoNavbar, Modal, ModalBody, ModalDialogue, ModalFooter, ModalHeader, ModalTitle, NetworkIndicator, PageTemplate, RangeSliderWithInputs, ShortenTextTooltip, StyledNavTab, StyledTabs, SwitchTabs, TooltipIconButton, UnitsInput, Web3Provider$1 as Web3Provider, Web3Store, WithSpinner, WrongNetworkModal, colors, defaultWeb3State, doneThumbsUp as doneThumbsUpImg, fonts, footerTongue as footerTongueImg, globalConstants, headerTongueImg, logoBlackAndBlue, logoBlueIcon, logoFullWhite, maxSupportedNumber, metaMaskIconImg, minSupportedNumber, nameService as nameServiceImg, niftyIconImg, removeEmptySpaces, rifCom as rifComImg, rifDir as rifDirImg, rifGat as rifGatImg, rifMar as rifMarImg, rifPay as rifPayImg, rifSto as rifStoImg, rskLogo, shortenString, storage as storageImg, theme, tickWide as tickWideImg, validatedNumber }; -//# sourceMappingURL=index.modern.js.map diff --git a/dist/index.modern.js.map b/dist/index.modern.js.map deleted file mode 100644 index ecff5697..00000000 --- a/dist/index.modern.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.modern.js","sources":["../src/components/atoms/Button.tsx","../src/theme/theme.ts","../src/components/atoms/Checkbox.tsx","../src/assets/images/icons/nifty.png","../src/assets/images/icons/rifCom.png","../src/assets/images/icons/rifDir.png","../src/assets/images/icons/rifGat.png","../src/assets/images/icons/rifMar.png","../src/assets/images/icons/rifPay.png","../src/assets/images/icons/rifSto.png","../src/models/ProviderInfo.ts","../src/components/atoms/LoginOption.tsx","../src/components/atoms/Logo.tsx","../src/components/atoms/LogoNavbar.tsx","../src/components/atoms/StyledNavTab.tsx","../src/components/atoms/NetworkIndicator.tsx","../src/components/atoms/modal/Modal.tsx","../src/components/atoms/modal/ModalHeader.tsx","../src/components/atoms/modal/ModalTitle.tsx","../src/components/atoms/modal/ModalFooter.tsx","../src/components/atoms/modal/ModalBody.tsx","../src/components/hoc/WithSpinner.tsx","../src/components/molecules/Accordion.tsx","../src/components/molecules/AccountModal.tsx","../src/components/molecules/CopyTextTooltip.tsx","../src/components/molecules/FAQSection.tsx","../src/components/molecules/LabeledCheckbox.tsx","../src/components/molecules/FilterCheckboxCard.tsx","../src/utils.ts","../src/components/molecules/FooterColumn.tsx","../src/components/molecules/ModalDialogue.tsx","../src/components/molecules/UnitsInput.tsx","../src/components/molecules/RangeSliderWithInputs.tsx","../src/components/molecules/ShortenTextTooltip.tsx","../src/components/molecules/StyledTabs.tsx","../src/components/molecules/SwitchTabs.tsx","../src/components/molecules/TooltipIconButton.tsx","../src/components/molecules/WrongNetworkModal.tsx","../src/components/organisms/Footer.tsx","../src/models/Enums.ts","../src/services/Web3Service.ts","../src/components/organisms/Account.tsx","../src/components/organisms/Header/HeaderDesktop.tsx","../src/components/organisms/Header/HeaderMobile.tsx","../src/components/organisms/Header/Header.tsx","../src/components/organisms/Header/HeaderTongue.tsx","../src/components/templates/FAQPageTemplate.tsx","../src/components/templates/PageTemplate.tsx","../src/providers/Web3Provider.tsx"],"sourcesContent":["import React, { FC } from 'react'\nimport { Button as MUIButton, ButtonProps as MUIButtonProps } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\n\nexport interface ButtonProps extends MUIButtonProps {\n block?: boolean\n shadow?: boolean\n rounded?: boolean\n}\n\nconst useStyles = makeStyles(() => ({\n block: {\n width: '100%',\n },\n noShadow: {\n boxShadow: 'none',\n },\n rounded: {\n borderRadius: 50,\n },\n}))\n\nconst Button: FC = ({\n className = '', block, shadow, rounded, children, ...rest\n}) => {\n const classes = useStyles()\n\n return (\n \n {children}\n \n )\n}\n\nexport default Button\n","import { createMuiTheme } from '@material-ui/core/styles'\nimport '../assets/css/fonts/rubik.css'\n\nexport const colors = {\n black: '#000000',\n primary: '#008FF7',\n darkBlue: '#197DC6',\n gray1: '#F8F7F7',\n gray2: '#E5E5E5',\n gray3: '#C4C4C4',\n gray4: '#919191',\n gray5: '#4D4C4C',\n gray6: '#15171B',\n transparent: '#FFFFFF00',\n white: '#FFFFFF',\n}\n\nexport const fonts = {\n family: 'Rubik',\n size: {\n tiny: 10,\n small: 12,\n normal: 14,\n medium: 16,\n subtitleSmall: 18,\n subtitleBig: 22,\n },\n weight: {\n light: 300,\n regular: 400,\n medium: 500,\n bold: 700,\n },\n}\n\nexport const globalConstants = {\n headerHeight: 8,\n}\n\nconst theme = createMuiTheme({\n palette: {\n primary: {\n main: colors.primary,\n },\n secondary: {\n main: colors.gray4,\n },\n },\n typography: {\n fontFamily: fonts.family,\n button: {\n textTransform: 'none',\n },\n fontWeightLight: fonts.weight.light,\n fontWeightRegular: fonts.weight.regular,\n fontWeightMedium: fonts.weight.medium,\n fontWeightBold: fonts.weight.bold,\n body1: {\n fontWeight: fonts.weight.light,\n },\n },\n props: {},\n overrides: {\n MuiButton: {\n root: {\n fontWeight: fonts.weight.light,\n },\n },\n MuiFormControlLabel: {\n root: {\n color: colors.gray3,\n },\n },\n MuiSlider: {\n rail: {\n color: colors.gray3,\n height: 4,\n opacity: 1,\n },\n root: {\n width: '100%',\n color: colors.primary,\n height: 4,\n },\n track: {\n height: 4,\n },\n thumb: {\n marginLeft: -4,\n height: 14,\n width: 14,\n },\n },\n MuiTextField: {\n root: {\n color: colors.gray3,\n '&:hover': {\n color: colors.gray2,\n },\n },\n },\n },\n})\n\nexport default theme\n","import React, { FC, useState } from 'react'\nimport {\n Checkbox as MUICheckbox,\n CheckboxProps as MUICheckboxProps,\n makeStyles,\n createStyles,\n} from '@material-ui/core'\nimport { CheckBoxOutlineBlankSharp, CheckBoxSharp } from '@material-ui/icons'\nimport { colors } from '../../theme'\n\nexport type CheckboxProps = MUICheckboxProps;\n\nconst useStyles = makeStyles(() => createStyles({\n unCheckedIcon: {\n color: colors.gray4,\n },\n checkedIcon: {\n color: colors.primary,\n },\n}))\n\nconst Checkbox: FC = (props) => {\n const classes = useStyles()\n const { checked } = props\n const [isChecked, setIsChecked] = useState(!!checked)\n\n const handleChange = (event: React.ChangeEvent,\n newChecked: boolean): void => {\n setIsChecked(newChecked)\n const { onChange } = props\n\n if (onChange) onChange(event, newChecked)\n }\n\n return (\n \n }\n icon={\n \n }\n {...props}\n checked={isChecked}\n onChange={handleChange}\n />\n )\n}\n\nexport default Checkbox\n","/* loaded by smart-asset */\nexport default require(\"./nifty~RMIWdZeg.png\")","/* loaded by smart-asset */\nexport default require(\"./rifCom~udwpaCym.png\")","/* loaded by smart-asset */\nexport default require(\"./rifDir~bottaDNJ.png\")","/* loaded by smart-asset */\nexport default require(\"./rifGat~balFpEzC.png\")","/* loaded by smart-asset */\nexport default require(\"./rifMar~IDqKMWpK.png\")","/* loaded by smart-asset */\nexport default require(\"./rifPay~bdtOAceT.png\")","/* loaded by smart-asset */\nexport default require(\"./rifSto~fMRetflo.png\")","import { metaMaskIconImg, niftyIconImg } from '../assets/images'\n\nexport default interface ProviderInfo {\n name: string\n eProvider: EProvider\n iconImg?: string\n}\n\nexport enum EProvider {\n METAMASK = 'Metamask',\n NIFTY = 'Nifty',\n LEDGER = 'Ledger',\n TREZOR = 'Trezor',\n TRUST = 'Trust',\n LOCAL = 'Localhost',\n GO_WALLET = 'GoWallet',\n ALPHA_WALLET = 'AlphaWallet',\n STATUS = 'status',\n CIPHER = 'cipher',\n COINBASE = 'coinbase',\n MIST = 'mist',\n PARITY = 'parity',\n INFURA = 'infura'\n}\n\nexport const getProviderInfo = (eProvider: EProvider): ProviderInfo => {\n switch (eProvider) {\n case EProvider.METAMASK:\n return {\n name: 'MetaMask',\n eProvider,\n iconImg: metaMaskIconImg,\n }\n case EProvider.NIFTY:\n return {\n name: 'Nifty',\n eProvider,\n iconImg: niftyIconImg,\n }\n case EProvider.LEDGER:\n return {\n name: 'Ledger',\n eProvider,\n }\n case EProvider.TREZOR:\n return {\n name: 'Trezor',\n eProvider,\n }\n case EProvider.TRUST:\n return {\n name: 'Trust',\n eProvider,\n }\n case EProvider.GO_WALLET:\n return {\n name: 'Go Wallet',\n eProvider,\n }\n case EProvider.ALPHA_WALLET:\n return {\n name: 'Alpha Wallet',\n eProvider,\n }\n case EProvider.STATUS:\n return {\n name: 'Status',\n eProvider,\n }\n case EProvider.COINBASE:\n return {\n name: 'Coinbase',\n eProvider,\n }\n case EProvider.MIST:\n return {\n name: 'Mist',\n eProvider,\n }\n case EProvider.PARITY:\n return {\n name: 'Parity',\n eProvider,\n }\n case EProvider.INFURA:\n return {\n name: 'Infura',\n eProvider,\n }\n case EProvider.LOCAL:\n return {\n name: 'Localhost',\n eProvider,\n }\n default: {\n throw new Error(\n `EProvider not implemented or unknown. Chosen provider ${eProvider}`,\n )\n }\n }\n}\n","import React, { FC } from 'react'\nimport { makeStyles, Theme, Tooltip } from '@material-ui/core'\nimport Button from './Button'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport { niftyIconImg } from '../../assets/images'\n\nexport interface LoginOptionProps {\n className?: string\n onClick?: () => void\n providerInfo?: ProviderInfo\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n padding: 5,\n margin: 5,\n width: '100%',\n },\n content: {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n maxHeight: theme.spacing(5),\n justifyContent: 'center',\n },\n imageWrapper: {\n maxHeight: theme.spacing(4),\n marginRight: theme.spacing(2),\n },\n}))\n\n/**\n * If not providerInfo is received, we assume there's no provider available and so suggest to install Nifty wallet\n * Same happens when no onClick is provided. We open the Nifty page on a new tab\n */\nconst LoginOption: FC = ({\n className = '',\n onClick,\n providerInfo,\n ...rest\n}) => {\n const classes = useStyles()\n\n const providerContent = (\n
\n {\n providerInfo?.iconImg\n && (\n \n )\n }\n {providerInfo?.name}\n
\n )\n\n const handleOnClick = () => {\n if (onClick) {\n return onClick()\n }\n return window.open('https://www.poa.network/for-users/nifty-wallet/getting-started', '_blank')\n }\n\n return (\n \n {/* only with Nifty we display the Tooltip because atm we can't check if MetaMask is also enabled */}\n {!!providerInfo && providerInfo.eProvider === EProvider.NIFTY\n && (\n \n {providerContent}\n \n )}\n {!!providerInfo && providerInfo.eProvider !== EProvider.NIFTY\n && providerContent}\n {!providerInfo\n && (\n
\n \n Install Nifty wallet\n
\n )}\n \n )\n}\n\nexport default LoginOption\n","import React, { FC } from 'react'\nimport { logoFullWhite } from '../../assets/images'\n\nconst Logo: FC> = (\n { alt = 'RIF OS logo', ...rest },\n) => {alt}\n\nexport default Logo\n","import React, { FC } from 'react'\nimport { logoFullWhite } from '../../assets/images'\n\ninterface LogoProps extends React.Props {\n alt?: string\n height?: string | number\n style?: React.CSSProperties\n}\n\nconst LogoNavbar: FC = ({ alt = 'navbar logo', height = '44px', ...rest }) => (\n \n)\nexport default LogoNavbar\n","import React, { FC } from 'react'\nimport { Theme, makeStyles } from '@material-ui/core/styles'\nimport Tab from '@material-ui/core/Tab'\nimport { NavLink } from 'react-router-dom'\nimport { colors } from '../../theme'\n\nexport interface StyledNavTabProps {\n label: string\n to: string\n value: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n textTransform: 'none',\n color: colors.gray5,\n fontWeight: theme.typography.fontWeightRegular,\n fontSize: theme.typography.pxToRem(15),\n marginRight: theme.spacing(1),\n '&:focus': {\n opacity: 1,\n },\n },\n selected: {\n fontWeight: theme.typography.fontWeightMedium,\n borderBottom: '2px solid #000000',\n },\n}))\n\nconst StyledNavTab: FC = (props: StyledNavTabProps) => {\n const classes = useStyles()\n return \n}\n\nexport default StyledNavTab\n","import React, { FC } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport CheckCircleOutlineOutlinedIcon from '@material-ui/icons/CheckCircleOutlineOutlined'\nimport ErrorIcon from '@material-ui/icons/Error'\nimport WarningIcon from '@material-ui/icons/Warning'\nimport { green, yellow } from '@material-ui/core/colors'\n\nexport interface NetworkIndicatorProps {\n iconClassName?: string\n currentNetworkId?: number\n requiredNetworkId?: number\n onCorrectNetworkMessage?: string\n onNetworkMismatchMessage?: string\n noNetworkMessage?: string\n}\n\nconst defaultonCorrectNetworkMessage = 'You are on the right network'\nconst deaulftonNetworkMismatchMessage = 'You are on the wrong network'\nconst defaultNoNetworkMessage = 'You are not connected to any network'\n\nexport enum NetworkStatus {\n NO_NETWORK = 1,\n NETWORK_MISSMATCH = 2,\n CORRECT_NETWORK = 3\n}\n\nconst getNetworkStatus = (currentNetworkId, requiredNetworkId): NetworkStatus => {\n if (!currentNetworkId) return NetworkStatus.NO_NETWORK\n\n if (currentNetworkId === requiredNetworkId) return NetworkStatus.CORRECT_NETWORK\n return NetworkStatus.NETWORK_MISSMATCH\n}\n\nconst NetworkIndicator: FC = ({\n iconClassName = '',\n currentNetworkId, requiredNetworkId, onCorrectNetworkMessage,\n onNetworkMismatchMessage, noNetworkMessage,\n}) => {\n const networkStatus = getNetworkStatus(currentNetworkId, requiredNetworkId)\n\n const iconPerNetworkStatus = new Map()\n iconPerNetworkStatus.set(NetworkStatus.NO_NETWORK, (\n \n \n \n ))\n iconPerNetworkStatus.set(NetworkStatus.NETWORK_MISSMATCH, (\n \n \n \n ))\n iconPerNetworkStatus.set(NetworkStatus.CORRECT_NETWORK, (\n \n \n \n ))\n\n return (\n iconPerNetworkStatus.get(networkStatus)\n )\n}\n\nexport default NetworkIndicator\n","import React, { FC } from 'react'\nimport { Modal as MUIModal, ModalProps as MUIModalProps } from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport type ModalProps = MUIModalProps;\n\nconst useStyles = makeStyles((theme: Theme) => ({\n paper: {\n backgroundColor: theme.palette.background.paper,\n border: `2px solid ${colors.primary}`,\n boxShadow: theme.shadows[5],\n left: '50%',\n minWidth: 400,\n padding: theme.spacing(2, 4, 3),\n position: 'absolute',\n top: '50%',\n transform: 'translate(-50%, -50%)',\n },\n}))\n\nconst Modal: FC = ({ children, ...rest }) => {\n const classes = useStyles()\n\n return (\n \n
\n {children}\n
\n
\n )\n}\n\nexport default Modal\n","import React, { FC } from 'react'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport interface ModalHeaderProps {\n className?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n borderBottom: `1px solid ${colors.gray2}`,\n color: colors.primary,\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n },\n}))\n\nconst ModalHeader: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalHeader\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\n\nexport interface ModalTitleProps {\n className?: string\n}\n\nconst ModalTitle: FC = ({ children, ...rest }) => (\n \n {children}\n \n)\n\nexport default ModalTitle\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../../theme'\n\nexport interface ModalFooterProps {\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n borderTop: `1px solid ${colors.gray2}`,\n display: 'flex',\n justifyContent: 'center',\n paddingTop: theme.spacing(1),\n width: '100%',\n },\n}))\n\nconst ModalFooter: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalFooter\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\n\nexport interface ModalBodyProps {\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n padding: theme.spacing(3, 0),\n width: '100%',\n },\n}))\n\nconst ModalBody: FC = ({ children, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default ModalBody\n","import React from 'react'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { logoBlueIcon } from '../../assets/images'\n\nconst useStyles = makeStyles(() => ({\n '@keyframes spin': {\n '0%': { transform: 'rotate(0deg)' },\n '100%': { transform: 'rotate(360deg)' },\n },\n root: {\n position: 'relative',\n },\n overlay: {\n position: 'absolute',\n zIndex: 2,\n height: '100%',\n width: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n background: '#FFFFFF55',\n },\n spinner: {\n display: 'inline-block',\n zIndex: 3,\n width: '50px',\n height: '50px',\n border: 'none',\n animation: '$spin 2s ease-in-out infinite',\n },\n}))\n\nconst WithSpinner = (WrappedComponent: React.ElementType) => {\n const Spinner = ({ isLoading, ...props }) => {\n const classes = useStyles()\n\n return (\n
\n {\n isLoading\n && (\n
\n \"logo\"\n
\n )\n }\n \n
\n )\n }\n return Spinner\n}\n\nexport default WithSpinner\n","import React, { FC, useState } from 'react'\nimport { Accordion as MUIAccordion, AccordionProps as MUIAccordionProps } from '@material-ui/core'\nimport Typography from '@material-ui/core/Typography'\nimport AccordionDetails from '@material-ui/core/AccordionDetails'\nimport AccordionSummary from '@material-ui/core/AccordionSummary'\nimport { makeStyles, Theme, createStyles } from '@material-ui/core/styles'\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore'\nimport { colors } from '../../theme'\n\ninterface AccordionProps extends MUIAccordionProps {\n id: string\n title?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n root: {\n boxShadow: 'none',\n color: colors.gray4,\n width: '100%',\n },\n heading: {\n color: colors.gray4,\n fontSize: theme.typography.pxToRem(15),\n fontWeight: theme.typography.fontWeightRegular,\n width: '100%',\n },\n accordionSummary: {\n borderBottom: `1px solid ${colors.gray2}`,\n },\n}))\n\nconst Accordion: FC = ({\n children, expanded, id, title,\n}) => {\n const classes = useStyles()\n const [isExpanded, setIsExpanded] = useState(!!expanded)\n\n const onChange = (): void => setIsExpanded(!isExpanded)\n\n return (\n \n }\n aria-controls={`panel-${id}-content`}\n id={id}\n >\n {title}\n \n \n {children}\n \n \n )\n}\n\nexport default Accordion\n","import React, { FC } from 'react'\nimport Web3 from 'web3'\nimport {\n Button, LoginOption, Modal, ModalBody, ModalFooter, ModalHeader, ModalTitle,\n} from '../atoms'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport NetworkInfo from '../../models/NetworkInfo'\n\nexport interface AccountModalProps {\n web3?: Web3\n networkInfo?: NetworkInfo\n setProvider?: (provider: EProvider, onProviderSet?:\n (account?: string) => void) => Promise\n availableProviders?: ProviderInfo[]\n onClose?: () => void\n onProviderSet?: (account) => void\n open: boolean\n}\n\nconst AccountModal: FC = ({\n setProvider,\n availableProviders,\n open,\n onClose,\n onProviderSet,\n}) => (\n \n \n \n Connect a wallet to get started\n \n \n {\n availableProviders && availableProviders.length && availableProviders.map(\n (providerInfo) => (\n => {\n if (setProvider) await setProvider(providerInfo.eProvider, onProviderSet)\n }}\n />\n ),\n )\n }\n {!availableProviders\n && (\n // TODO: Create LoginOptionTemplate to extract this\n // empty LoginOption means suggest to install Nifty wallet\n \n )}\n \n \n \n Close\n \n \n \n \n)\n\nexport default AccountModal\n","import React, { FC, useState } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport { makeStyles } from '@material-ui/core/styles'\nimport FileCopyIcon from '@material-ui/icons/FileCopy'\nimport Typography from '@material-ui/core/Typography'\n\nexport interface CopyTextTooltipProps {\n displayElement: React.ReactElement\n fullText: string\n}\n\nconst useStyles = makeStyles(() => ({\n tooltipTitle: {\n display: 'flex',\n alignItems: 'center',\n },\n}))\n\nconst CopyTextTooltip: FC = ({ displayElement, fullText }) => {\n const [isCopied, setIsCopied] = useState(false)\n\n const classes = useStyles()\n\n const tooltipContent = (\n
\n \n \n {fullText}\n \n
\n )\n\n return (\n Copied! : tooltipContent}\n onClick={() => {\n navigator.clipboard.writeText(fullText)\n .then(() => { setIsCopied(true) })\n }}\n onClose={() => {\n setIsCopied(false)\n }}\n >\n {displayElement}\n \n )\n}\n\nexport default CopyTextTooltip\n","import React, { FC, useState } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Accordion from '@material-ui/core/Accordion'\nimport AccordionDetails from '@material-ui/core/AccordionDetails'\nimport AccordionSummary from '@material-ui/core/AccordionSummary'\nimport Typography from '@material-ui/core/Typography'\nimport AddIcon from '@material-ui/icons/Add'\nimport RemoveIcon from '@material-ui/icons/Remove'\nimport { colors, fonts } from '../../theme'\n\nexport interface FAQSectionProps {\n answer: string\n initiallyExpanded?: boolean\n question: string\n className?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n boxShadow: 'none',\n color: colors.gray4,\n width: '100%',\n },\n heading: {\n display: 'flex',\n justifyContent: 'center',\n color: colors.gray5,\n fontSize: fonts.size.subtitleSmall,\n width: '100%',\n },\n headingExpanded: {\n color: colors.primary,\n },\n headingCollapsed: {\n fontWeight: fonts.weight.regular,\n },\n panelDetails: {\n display: 'flex',\n justifyContent: 'center',\n },\n answerContainer: {\n [theme.breakpoints.up('md')]: {\n maxWidth: '80%',\n },\n },\n answerText: {\n color: colors.gray5,\n },\n}))\n\nconst FAQSection: FC = ({\n className = '', initiallyExpanded, question, answer,\n}) => {\n const classes = useStyles()\n const [isExpanded, setIsExpanded] = useState(!!initiallyExpanded)\n\n const onChange = (): void => setIsExpanded(!isExpanded)\n\n return (\n \n : }\n >\n {question}\n \n \n
\n {answer}\n
\n
\n
\n )\n}\n\nexport default FAQSection\n","import React, { FC } from 'react'\nimport { FormControlLabel } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Checkbox, { CheckboxProps } from '../atoms/Checkbox'\nimport { colors } from '../../theme'\n\nexport interface LabeledCheckboxProps extends CheckboxProps {\n labelText: string\n labelClassName?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n color: colors.gray4,\n width: '100%',\n },\n}))\n\nconst LabeledCheckbox: FC = ({ labelText, labelClassName = '', ...rest }) => {\n const classes = useStyles()\n return (\n \n }\n />\n\n )\n}\n\nexport default LabeledCheckbox\n","import React, { FC } from 'react'\nimport LabeledCheckbox, { LabeledCheckboxProps } from './LabeledCheckbox'\n\nexport interface FilterCheckboxCardProps {\n className?: string\n items: LabeledCheckboxProps[]\n onClick?: (event: React.MouseEvent) => void\n}\n\nconst FilterCheckboxCard: FC = ({ className = '', onClick, items }) => (\n
\n {items.map((item: LabeledCheckboxProps, i) => (\n \n ))}\n
\n)\n\nexport default FilterCheckboxCard\n","const shortenString = (\n str: string,\n largerThan = 16,\n charsShownCount = 6,\n): string => (str.length > largerThan\n ? `${str.substr(0, charsShownCount)}...${str.substr(str.length - 4)}`\n : str)\n\nconst removeEmptySpaces = (str: string): string => str.replace(/\\s/g, '')\n\nconst maxSupportedNumber = 99999999999999\nconst minSupportedNumber = 0.000001\n\nconst validatedNumber = (num: number): number => {\n if (num > 0) {\n if (num > maxSupportedNumber) return maxSupportedNumber\n\n if (num < minSupportedNumber) return minSupportedNumber\n }\n\n if (num < 0) {\n if (num < -maxSupportedNumber) return -maxSupportedNumber\n\n if (num > -minSupportedNumber) return -minSupportedNumber\n }\n return num\n}\n\nexport {\n shortenString,\n removeEmptySpaces,\n maxSupportedNumber,\n minSupportedNumber,\n validatedNumber,\n}\n","import React, { FC } from 'react'\nimport { NavLinkProps, NavLink } from 'react-router-dom'\nimport { makeStyles } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../theme'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FooterColumnProps {\n className?: string\n links: FooterLinkProps[]\n title: string\n}\n\nexport interface FooterLinkProps extends NavLinkProps {\n isExternal?: boolean\n title: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n },\n footerLink: {\n color: colors.gray4,\n fontWeight: fonts.weight.light,\n textDecoration: 'none',\n '&:hover': {\n fontWeight: fonts.weight.regular,\n },\n },\n footerTitle: {\n fontSize: fonts.size.subtitleBig,\n textAlign: 'center',\n },\n}))\n\nconst FooterColumn: FC = ({ title, links, className = '' }) => {\n const classes = useStyles()\n\n return (\n
\n {title}\n {\n links.map((link: FooterLinkProps) => {\n const key = removeEmptySpaces(link.title)\n\n if (link.isExternal) {\n const href = (link.to || '#').toString()\n return (\n \n {link.title}\n \n )\n }\n return (\n \n {link.title}\n \n )\n })\n }\n
\n )\n}\n\nexport default FooterColumn\n","import React, { FC } from 'react'\nimport {\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n ModalTitle,\n} from '../atoms'\nimport { ModalProps } from '../atoms/modal/Modal'\n\nexport interface ModalDialogueProps extends ModalProps {\n title: string\n footer?: React.ReactElement\n}\n\nconst ModalDialogue: FC = ({\n title,\n footer,\n children,\n ...props\n}) => (\n \n \n \n {title}\n \n {children}\n {footer}\n \n \n)\n\nexport default ModalDialogue\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Input, { InputProps } from '@material-ui/core/Input'\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../theme'\n\nexport interface UnitsInputProps extends InputProps {\n handleOnChange: (event: React.ChangeEvent) => void\n handleOnBlur?: () => void\n maxValue?: number\n minValue?: number\n step?: number\n units?: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n color: colors.gray4,\n display: 'flex',\n },\n input: {\n color: colors.gray4,\n paddingLeft: theme.spacing(0.1),\n textAlign: 'center',\n '&::before': {\n borderBottom: `1px solid ${colors.gray4}`,\n },\n },\n inputContainer: {\n paddingRight: '0 !important',\n },\n units: {\n color: colors.gray4,\n display: 'flex',\n fontSize: fonts.size.tiny,\n },\n unitsContainer: {\n alignSelf: 'center',\n color: colors.gray4,\n display: 'flex',\n fontSize: fonts.size.normal,\n paddingLeft: '0 !important',\n },\n}))\n\nconst UnitsInput: FC = ({\n maxValue,\n minValue,\n units,\n value,\n step = 1,\n handleOnBlur,\n handleOnChange,\n ...rest\n}) => {\n const classes = useStyles()\n\n return (\n \n \n \n \n \n \n \n {units}\n \n \n \n \n )\n}\n\nexport default UnitsInput\n","import Slider, { SliderProps } from '@material-ui/core/Slider'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport UnitsInput from './UnitsInput'\nimport { validatedNumber } from '../../utils'\nimport { fonts } from '../../theme'\n\nexport interface RangeSliderWithInputsProps extends SliderProps {\n values: {\n start: number\n end: number\n }\n unit?: string\n handleChange: ({ min, max }) => void\n className?: string\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n width: '100%',\n },\n inputsContainer: {\n alignSelf: 'center',\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n },\n toContainer: {\n alignSelf: 'center',\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n fontWeight: fonts.weight.regular,\n },\n}))\n\nconst RangeSliderWithInputs: FC = ({\n values: {\n start: startValue, end: endValue,\n }, unit, handleChange, className, ...rest\n}) => {\n const classes = useStyles()\n\n const maxValue = rest.max || endValue\n const minValue = rest.min || startValue\n const step = rest.step || 1\n\n const handleStartInputChange = (\n event: React.ChangeEvent,\n ): void => {\n const newStartValue = validatedNumber(Number(event.target.value)) || minValue\n handleChange({ min: newStartValue, max: endValue })\n }\n\n const handleEndInputChange = (\n event: React.ChangeEvent,\n ): void => {\n const newEndValue = validatedNumber(Number(event.target.value)) || endValue\n handleChange({ min: startValue, max: newEndValue })\n }\n\n const handleSliderChange = (\n _: React.ChangeEvent<{}>, newSliderValue: number | number[],\n ): void => {\n handleChange({ min: newSliderValue[0], max: newSliderValue[1] })\n }\n\n const handleStartValueBlur = (): void => {\n if (startValue < minValue) {\n handleChange({ min: minValue, max: endValue })\n } else if (startValue > endValue) {\n handleChange({ min: endValue, max: endValue })\n }\n }\n\n const handleEndValueBlur = (): void => {\n if (endValue < startValue) {\n handleChange({ min: minValue, max: startValue })\n } else if (endValue > maxValue) {\n handleChange({ min: minValue, max: maxValue })\n }\n }\n\n const getCommonInputValues = (): {} => ({\n maxValue,\n minValue,\n step,\n units: unit,\n })\n\n return (\n
\n \n
\n \n \n to\n \n \n
\n
\n )\n}\n\nexport default RangeSliderWithInputs\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport CopyTextTooltip from './CopyTextTooltip'\nimport { shortenString } from '../../utils'\n\nexport interface ShortenTextTooltipProps {\n value: string\n maxLength?: number\n charsShownCount?: number\n}\n\nconst ShortenTextTooltip: FC = ({ value, maxLength = 20, charsShownCount }) => (\n \n {\n value.length > maxLength\n && (\n {shortenString(value, maxLength, charsShownCount || maxLength - 5)}}\n fullText={value}\n />\n )\n }\n {\n value.length <= maxLength\n && value\n }\n \n)\n\nexport default ShortenTextTooltip\n","import React, { FC } from 'react'\nimport Tabs, { TabsProps } from '@material-ui/core/Tabs'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { colors } from '../../theme'\n\nexport interface StyledTabsProps {\n value: string\n onChange: (event: React.ChangeEvent<{}>, newValue: string) => void\n}\n\nconst useStyles = makeStyles({\n indicator: {\n display: 'flex',\n justifyContent: 'center',\n backgroundColor: 'transparent',\n },\n root: {\n borderBottom: `1px solid ${colors.gray3}`,\n },\n})\n\nconst StyledTabs: FC = (props: TabsProps) => {\n const { children } = props\n const classes = useStyles()\n return (\n \n {children}\n \n )\n}\n\nexport default StyledTabs\n","import { Tab as MUITab, Tabs as MUITabs } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React, { FC } from 'react'\nimport { colors, fonts } from '../../theme'\n\nexport interface SwitchTabsProps {\n label1: string\n label2: string\n value?: 0 | 1\n onChange: (event: React.ChangeEvent<{}>, value: number) => void\n}\n\nconst a11yProps = (index: number): {} => ({\n id: `full-width-tab-${index}`,\n 'aria-controls': `full-width-tabpanel-${index}`,\n})\n\nconst useStyles = makeStyles(() => ({\n root: {\n backgroundColor: colors.white,\n minHeight: 20,\n width: '100%',\n border: `${colors.primary} solid 1px`,\n borderRadius: 50,\n overflow: 'hidden',\n },\n tabContainer: {\n minHeight: 20,\n width: '100%',\n },\n tab: {\n '&:hover': {\n color: colors.primary,\n },\n borderRadius: 50,\n color: colors.gray3,\n fontWeight: fonts.weight.light,\n maxWidth: '50%',\n minHeight: '100%',\n minWidth: '50%',\n outlineStyle: 'none',\n padding: 0,\n textTransform: 'capitalize',\n zIndex: 1,\n '&:focus': {\n outlineStyle: 'none',\n },\n },\n // shows the transition between tabs\n tabIndicator: {\n backgroundColor: colors.primary,\n borderRadius: 50,\n height: '100%',\n },\n tabSelected: {\n // the '!important' overrides the on hover functionality when it's active\n backgroundColor: `${colors.primary} !important`,\n color: `${colors.white} !important`,\n },\n}))\n\nconst SwitchTabs: FC = ({\n label1, label2, value: controlledValue, onChange,\n}) => {\n const classes = useStyles()\n\n const handleChange = (\n event: React.ChangeEvent<{}>, newValue: number,\n ): void => {\n onChange(event, newValue)\n }\n\n return (\n
\n \n \n \n \n
\n )\n}\n\nexport default SwitchTabs\n","import React, { FC } from 'react'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport IconButton, { IconButtonProps } from '@material-ui/core/IconButton'\n\nexport interface TooltipIconButtonProps {\n tooltipTitle: string\n iconButtonProps: IconButtonProps\n icon: React.ReactNode\n}\n\nconst TooltipIconButton: FC = ({\n tooltipTitle,\n iconButtonProps,\n icon,\n}) => (\n \n \n \n {icon}\n \n \n\n \n)\n\nexport default TooltipIconButton\n","import React, { FC } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport Box from '@material-ui/core/Box'\nimport Grid from '@material-ui/core/Grid'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { colors } from '../../theme'\nimport ModalDialogue from './ModalDialogue'\n\nexport interface WrongNetworkModalProps {\n open: boolean\n currentNetworkName?: string\n requiredNetworkName: string\n onClose: () => void\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n boxContainer: {\n border: `1px solid ${colors.primary}`,\n padding: theme.spacing(5),\n marginTop: theme.spacing(3),\n },\n loaderContainer: {\n display: 'flex',\n justifyContent: 'center',\n },\n}))\n\nconst WrongNetworkModal: FC = ({\n open, currentNetworkName = 'Private network', requiredNetworkName, onClose,\n}) => {\n const classes = useStyles()\n return (\n \n \n \n This dApp only works on the\n {' '}\n {requiredNetworkName}\n .\n You are currently on\n {' '}\n {currentNetworkName}\n .\n \n \n \n \n \n \n Waiting for the right network...\n \n Switch networks on your wallet\n \n \n \n \n \n )\n}\nexport default WrongNetworkModal\n","import React, { FC, HTMLAttributes } from 'react'\nimport { Grid } from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport FooterColumn, { FooterColumnProps } from '../molecules/FooterColumn'\nimport { colors, fonts } from '../../theme'\nimport { logoBlackAndBlue } from '../../assets/images'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FooterProps extends HTMLAttributes {\n className?: string\n copyrightText: string\n linksColumns: FooterColumnProps[]\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n copyright: {\n display: 'flex',\n justifyContent: 'center',\n },\n copyrightContent: {\n color: colors.gray4,\n fontSize: fonts.size.tiny,\n },\n footerContainer: {\n backgroundColor: colors.gray2,\n display: 'flex',\n justifyContent: 'center',\n paddingBottom: theme.spacing(2),\n width: '100%',\n },\n footerContent: {\n marginTop: theme.spacing(2),\n maxWidth: '80%',\n width: '100%',\n },\n linksColumn: {\n marginBottom: theme.spacing(1),\n },\n logoColumn: {\n display: 'flex',\n justifyContent: 'center',\n padding: theme.spacing(5),\n },\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n paddingTop: theme.spacing(4),\n width: '100%',\n },\n tongue: {\n backgroundColor: colors.gray2,\n borderTopLeftRadius: '50% 80%',\n borderTopRightRadius: '50% 80%',\n height: theme.spacing(10),\n width: '100%',\n },\n}))\n\nconst Footer: FC = ({\n className = '', copyrightText, linksColumns, ...rest\n}) => {\n const classes = useStyles()\n\n return (\n
\n
\n
\n
\n \n \n \"logo\"\n \n {\n linksColumns.map((linkColumn: FooterColumnProps) => (\n \n \n \n ))\n }\n \n
\n \n {copyrightText}\n \n
\n
\n
\n
\n )\n}\n\nexport default Footer\n","export enum ConnectionStatus {\n LoggedIn = 0,\n LoggedOut = 1,\n WalletLocked = 2,\n WrongNetwork = 3\n}\n\nexport default ConnectionStatus\n","import Web3 from 'web3'\nimport NetworkInfo from '../models/NetworkInfo'\nimport networksData from '../data/networks.json'\nimport ProviderInfo, {\n EProvider,\n getProviderInfo,\n} from '../models/ProviderInfo'\nimport ConnectionStatus from '../models/Enums'\n\ndeclare global {\n interface Window {\n ethereum: any // FIXME: This should be properly typed as per metamask\n web3: Web3\n }\n}\n\nexport function getWeb3(\n provider: EProvider = EProvider.METAMASK,\n): Promise {\n return new Promise((resolve, reject) => {\n switch (provider) {\n // Injected Web3 wallet like MetaMask or Nifty\n case EProvider.NIFTY:\n case EProvider.METAMASK: {\n // New MetaMask\n if (window.ethereum) {\n const web3 = new Web3(window.ethereum)\n window.ethereum\n .enable()\n .then(() => resolve(web3))\n .catch(reject)\n } else if (window.web3) {\n // Older versions of MetaMask or other\n resolve(new Web3(window.web3.currentProvider))\n } else reject(new Error('No injected web3 found'))\n break\n }\n\n // Localhost\n case EProvider.LOCAL: {\n const localhostProvider = new Web3.providers.HttpProvider(\n \"'http://127.0.0.1:4444'\",\n )\n resolve(new Web3(localhostProvider))\n break\n }\n\n // Unknown & not implemented\n default: {\n reject(\n new Error(\n `Provider not implemented or unknown. Chosen provider ${provider}`,\n ),\n )\n break\n }\n }\n })\n}\n\nexport const getNetworkInfo = (\n networkId: number,\n chainId?: number,\n): NetworkInfo | undefined => networksData.find((n) => (chainId\n ? n.networkId === networkId && n.chainId === chainId\n : n.networkId === networkId)) as NetworkInfo\n\nexport const getNetworkInfoFromWeb3 = async (\n web3: Web3,\n): Promise => {\n // set networkId and chainId\n let networkId: number | undefined\n let chainId: number | undefined\n try {\n networkId = await web3.eth.net.getId()\n\n if (networkId) {\n chainId = await web3.eth.getChainId()\n }\n } catch (error) {}\n let networkInfo: NetworkInfo | undefined\n\n if (networkId) {\n try {\n networkInfo = getNetworkInfo(networkId, chainId)\n } catch (error) {}\n }\n return networkInfo\n}\n\nconst getWeb3Provider = (): any => {\n // New Metamask\n if (window.ethereum) return window.ethereum\n\n // Older versions of Metamask or other\n if (window.web3) return window.web3.currentProvider\n return undefined\n}\n\n/* eslint-disable complexity */\nexport const getAvailableProviders = (): ProviderInfo[] | undefined => {\n const result: ProviderInfo[] = []\n\n const currentProvider = getWeb3Provider()\n\n if (!currentProvider) return undefined\n\n if (currentProvider.isMetaMask) {\n // Nifty is also MetaMask\n result.push(\n currentProvider.isNiftyWallet\n ? getProviderInfo(EProvider.NIFTY)\n : getProviderInfo(EProvider.METAMASK),\n )\n }\n\n if (currentProvider.isTrust) result.push(getProviderInfo(EProvider.TRUST))\n\n if (currentProvider.isGoWallet) result.push(getProviderInfo(EProvider.GO_WALLET))\n\n if (currentProvider.isAlphaWallet) result.push(getProviderInfo(EProvider.ALPHA_WALLET))\n\n if (currentProvider.isStatus) result.push(getProviderInfo(EProvider.STATUS))\n\n if (currentProvider.isToshi) result.push(getProviderInfo(EProvider.COINBASE))\n\n // eslint-disable-next-line no-underscore-dangle\n if (typeof (window as any).__CIPHER__ !== 'undefined') result.push(getProviderInfo(EProvider.CIPHER))\n\n if (currentProvider.constructor.name === 'EthereumProvider') result.push(getProviderInfo(EProvider.MIST))\n\n if (currentProvider.constructor.name === 'Web3FrameProvider') result.push(getProviderInfo(EProvider.PARITY))\n\n if (currentProvider.host && currentProvider.host.indexOf('infura') !== -1) result.push(getProviderInfo(EProvider.INFURA))\n\n if (currentProvider.host && currentProvider.host.indexOf('localhost') !== -1) result.push(getProviderInfo(EProvider.LOCAL))\n\n return result\n}\n\nexport const getConnectionStatus = (\n web3?: Web3,\n requiredNetworkId?: number,\n currentNetworkId?: number,\n account?: string,\n): ConnectionStatus => {\n if (!web3) return ConnectionStatus.LoggedOut\n\n if (currentNetworkId !== requiredNetworkId) {\n return ConnectionStatus.WrongNetwork\n }\n\n if (account) {\n return ConnectionStatus.LoggedIn\n }\n return ConnectionStatus.WalletLocked\n}\n","import React, { FC, useState, useEffect } from 'react'\nimport Web3 from 'web3'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Popover from '@material-ui/core/Popover'\nimport Typography from '@material-ui/core/Typography'\nimport ProviderInfo, { EProvider } from '../../models/ProviderInfo'\nimport { shortenString } from '../../utils'\nimport { Button, NetworkIndicator } from '../atoms'\nimport { colors, fonts } from '../../theme'\nimport { AccountModal, WrongNetworkModal } from '../molecules'\nimport ConnectionStatus from '../../models/Enums'\nimport { getConnectionStatus } from '../../services/Web3Service'\nimport NetworkInfo from '../../models/NetworkInfo'\n\nexport interface AccountProps {\n requiredNetworkName: string\n setProvider?: (provider: EProvider) => Promise\n web3?: Web3\n networkInfo?: NetworkInfo\n account?: string\n availableProviders?: ProviderInfo[]\n requiredNetworkId?: number\n onCorrectNetworkMessage?: string\n onNetworkMismatchMessage?: string\n noNetworkMessage?: string\n modalInitiallyOpened?: boolean\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n accountText: {\n fontSize: fonts.size.tiny,\n textAlign: 'center',\n },\n button: {\n border: `1px solid ${colors.white}`,\n '&:hover': {\n border: `1px solid ${colors.transparent}`,\n },\n },\n networkIndicator: {\n marginRight: theme.spacing(1),\n },\n rightNetwork: {\n padding: theme.spacing(2),\n },\n}))\n\nconst Account: FC = (props) => {\n const {\n web3,\n networkInfo,\n account,\n setProvider,\n availableProviders,\n requiredNetworkId,\n onCorrectNetworkMessage,\n onNetworkMismatchMessage,\n noNetworkMessage,\n requiredNetworkName,\n modalInitiallyOpened = false,\n } = props\n const classes = useStyles()\n\n const [accountModalOpen, setAccountModalOpen] = useState(modalInitiallyOpened)\n const handleAccountModalClose = (): void => setAccountModalOpen(false)\n const handleAccountModalOpen = (): void => setAccountModalOpen(true)\n const [wrongNetModalOpen, setWrongNetModalOpen] = useState(false)\n const openWrongNetModal = (): void => setWrongNetModalOpen(true)\n const closeWrongNetModal = (): void => setWrongNetModalOpen(false)\n const connectionStatus: ConnectionStatus = getConnectionStatus(web3, requiredNetworkId, networkInfo?.networkId, account)\n\n // TODO: extract popover functionallity into new component\n const [anchorEl, setAnchorEl] = React.useState(null)\n\n const popoverOpen = Boolean(anchorEl)\n const id = popoverOpen ? 'right-net-popover' : undefined\n\n const handlePopoverClose = () => {\n setAnchorEl(null)\n }\n\n useEffect(() => {\n if (connectionStatus === ConnectionStatus.WrongNetwork) {\n openWrongNetModal()\n } else {\n closeWrongNetModal()\n handlePopoverClose()\n }\n }, [connectionStatus])\n\n const accountText = (): string => {\n if (connectionStatus === ConnectionStatus.LoggedOut) return 'Connect wallet'\n\n if (connectionStatus === ConnectionStatus.WrongNetwork) return 'Wrong Network'\n\n if (account) {\n // means connectionStatus === ConnectionStatus.LoggedIn\n return shortenString(account)\n }\n return 'Unlock your wallet'\n }\n\n const onAccountClicked = (event: React.MouseEvent): void | null => {\n if (connectionStatus === ConnectionStatus.WrongNetwork) return openWrongNetModal()\n\n if (connectionStatus === ConnectionStatus.LoggedOut) return handleAccountModalOpen()\n\n if (connectionStatus === ConnectionStatus.LoggedIn) return setAnchorEl(event.currentTarget)\n return null\n }\n\n return (\n \n \n {/* TODO: extract molecule */}\n \n \n {`You are successfully connected to ${networkInfo?.name}.`}\n \n \n \n \n \n )\n}\n\nexport default Account\n","import React, { FC } from 'react'\nimport {\n AppBar, Grid, ListItemIcon, Toolbar,\n} from '@material-ui/core'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { NavLink } from 'react-router-dom'\nimport Typography from '@material-ui/core/Typography'\nimport { ActionHeaderItemProps, HeaderProps, NavItemProps } from './HeaderProps'\nimport { LogoNavbar } from '../../atoms'\nimport { colors, fonts, globalConstants } from '../../../theme'\nimport { removeEmptySpaces } from '../../../utils'\n\nconst useStyles = makeStyles((theme: Theme) => ({\n activeNavlink: {\n color: `${colors.white} !important`,\n fontWeight: fonts.weight.medium,\n },\n navLink: {\n alignItems: 'center',\n color: colors.white,\n display: 'flex',\n paddingLeft: theme.spacing(5),\n paddingRight: theme.spacing(5),\n textAlign: 'center',\n textDecoration: 'none',\n '&:hover': {\n color: colors.gray5,\n textDecoration: 'none',\n },\n },\n navLinkContainer: {\n display: 'flex',\n },\n root: {\n boxShadow: 'none',\n // this height needs to be equal to the marginTop of PageTemplate\n height: theme.spacing(globalConstants.headerHeight),\n },\n}))\n\nconst HeaderDesktop: FC = ({\n hreflogo, itemsStart, itemsEnd, login,\n}) => {\n const classes = useStyles()\n const Login = login\n\n return (\n \n \n \n \n \n \n \n \n \n {\n !!itemsStart?.length\n && itemsStart.map((navItem: NavItemProps) => (\n \n \n {navItem.title}\n \n \n ))\n }\n \n \n {\n !!itemsEnd?.length\n && itemsEnd.map(({ icon, ...rest }: ActionHeaderItemProps) => (\n \n {icon}\n \n ))\n }\n \n \n
\n \n
\n \n \n
\n
\n )\n}\n\nexport default HeaderDesktop\n","import React, { FC, useState } from 'react'\nimport {\n AppBar,\n Divider,\n Drawer, Toolbar,\n IconButton, List, ListItem,\n ListItemText, ListItemIcon, Grid,\n} from '@material-ui/core'\nimport { NavLink } from 'react-router-dom'\nimport MenuIcon from '@material-ui/icons/Menu'\nimport ChevronLeftIcon from '@material-ui/icons/ChevronLeft'\nimport { Theme, createStyles, makeStyles } from '@material-ui/core/styles'\nimport { ActionHeaderItemProps, HeaderProps, NavItemProps } from './HeaderProps'\nimport { colors, globalConstants } from '../../../theme'\nimport { LogoNavbar } from '../../atoms'\nimport { removeEmptySpaces } from '../../../utils'\n\nconst drawerWidth = 240\n\nconst useStyles = makeStyles((theme: Theme) => createStyles({\n drawerHeader: {\n display: 'flex',\n alignItems: 'center',\n padding: theme.spacing(0, 1),\n // necessary for content to be below app bar\n ...theme.mixins.toolbar,\n justifyContent: 'flex-end',\n },\n drawerPaper: {\n width: drawerWidth,\n },\n mobileAppBar: {\n boxShadow: 'none',\n // this height needs to be equal to the marginTop of PageTemplate\n height: theme.spacing(globalConstants.headerHeight),\n transition: theme.transitions.create(['margin', 'width'], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n },\n mobileAppBarShift: {\n width: `calc(100% - ${drawerWidth}px)`,\n marginLeft: drawerWidth,\n transition: theme.transitions.create(['margin', 'width'], {\n easing: theme.transitions.easing.easeOut,\n duration: theme.transitions.duration.enteringScreen,\n }),\n },\n mobileNavLink: {\n alignItems: 'center',\n color: colors.gray4,\n display: 'flex',\n textDecoration: 'none',\n width: '100%',\n '&:hover': {\n color: colors.gray5,\n textDecoration: 'none',\n },\n },\n mobileNavLinkActive: {\n color: `${colors.primary} !important`,\n },\n}))\n\nconst HeaderMobile: FC = ({\n hreflogo, itemsStart, itemsEnd, login: Login,\n}) => {\n const classes = useStyles()\n const [open, setOpen] = useState(false)\n\n const toggleDrawer = (isOpen: boolean) => (\n event: React.KeyboardEvent | React.MouseEvent,\n ): void => {\n if (\n event.type === 'keydown'\n && ((event as React.KeyboardEvent).key === 'Tab'\n || (event as React.KeyboardEvent).key === 'Shift')\n ) {\n return\n }\n setOpen(isOpen)\n }\n\n return (\n \n \n \n {!open && (\n \n \n \n \n \n \n \n \n \n \n \n \n {\n !!itemsEnd?.length\n && itemsEnd.map(({ icon, ...rest }: ActionHeaderItemProps) => (\n \n {icon}\n \n ))\n }\n \n \n
\n \n
\n
\n \n )}\n
\n \n \n
\n \n \n \n
\n \n \n {\n !!itemsStart?.length\n && itemsStart.map((headerItem: NavItemProps) => (\n \n \n \n {headerItem.icon}\n \n \n \n \n ))\n }\n \n \n \n\n )\n}\n\nexport default HeaderMobile\n","import React, { FC } from 'react'\nimport Hidden from '@material-ui/core/Hidden'\nimport { HeaderProps } from './HeaderProps'\nimport HeaderDesktop from './HeaderDesktop'\nimport HeaderMobile from './HeaderMobile'\n\nconst Header: FC = (props) => (\n \n \n \n \n \n \n \n \n)\n\nexport default Header\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport { colors, fonts } from '../../../theme'\nimport { headerTongueImg } from '../../../assets/images'\n\nexport interface HeaderTongueProps {\n description: string\n titleLine1: string\n titleLine2: string\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n textContainer: {\n alignItems: 'center',\n backgroundColor: colors.primary,\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n },\n textContent: {\n color: colors.white,\n display: 'flex',\n flexDirection: 'column',\n textAlign: 'center',\n [theme.breakpoints.down('sm')]: {\n maxWidth: '90%',\n },\n [theme.breakpoints.up('md')]: {\n maxWidth: '65%',\n },\n [theme.breakpoints.up('xl')]: {\n maxWidth: '55%',\n },\n },\n titleContent: {\n marginBottom: theme.spacing(1),\n fontSize: theme.spacing(5),\n fontWeight: fonts.weight.regular,\n },\n tongueImg: {\n width: '100%',\n },\n}))\n\nconst HeaderTongue: FC = (\n { description, titleLine1, titleLine2 },\n) => {\n const classes = useStyles()\n\n return (\n \n
\n
\n \n {titleLine1}\n
\n {' '}\n {titleLine2}\n \n {description}\n
\n
\n \n
\n )\n}\n\nexport default HeaderTongue\n","import React, { FC } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport FAQSection, { FAQSectionProps } from '../molecules/FAQSection'\nimport { colors } from '../../theme'\nimport { removeEmptySpaces } from '../../utils'\n\nexport interface FAQPageTemplateProps {\n className?: string\n mainTitle: string\n questionsAndAnswers: FAQSectionProps[]\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n marginTop: theme.spacing(3),\n },\n container: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n [theme.breakpoints.up('md')]: {\n maxWidth: '80%',\n },\n },\n grayBackground: {\n backgroundColor: colors.gray1,\n },\n mainTitle: {\n fontSize: theme.typography.pxToRem(50),\n margin: theme.spacing(2, 0),\n },\n questionsSection: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n marginTop: theme.spacing(2),\n },\n}))\n\nconst FAQPageTemplate: FC = ({ className = '', mainTitle, questionsAndAnswers }) => {\n const classes = useStyles()\n return (\n
\n
\n {mainTitle}\n
\n {\n questionsAndAnswers.map((qAndA: FAQSectionProps, i) => (\n \n ))\n }\n
\n
\n
\n )\n}\n\nexport default FAQPageTemplate\n","import React, { FC, HTMLAttributes } from 'react'\nimport { makeStyles, Theme } from '@material-ui/core/styles'\nimport { globalConstants } from '../../theme'\n\nexport type PageTemplateProps = HTMLAttributes;\n\nconst useStyles = makeStyles((theme: Theme) => ({\n root: {\n // as the header has fixed position, we need to match its height\n marginTop: theme.spacing(globalConstants.headerHeight),\n width: '100%',\n },\n}))\n\nconst PageTemplate: FC = ({ children, className = '', ...props }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default PageTemplate\n","import React, {\n Component, createContext, ReactNode,\n} from 'react'\nimport Web3 from 'web3'\nimport {\n getWeb3, getNetworkInfoFromWeb3, getAvailableProviders,\n} from '../services/Web3Service'\nimport NetworkInfo from '../models/NetworkInfo'\nimport ProviderInfo, { EProvider } from '../models/ProviderInfo'\n\nexport interface Web3ProviderProps {\n state: {\n provider?: EProvider\n web3?: Web3\n account?: string\n networkInfo?: NetworkInfo\n requiredNetworkId?: number\n }\n actions: {\n setProvider?: (\n provider: EProvider,\n onStateChanged?: (account?: string) => void\n ) => Promise\n onConnectedNetworkChange?: () => void\n onConnectedAccountChange?: () => void\n }\n requiredNetworkId?: number\n requiredChainId?: number\n availableProviders?: ProviderInfo[]\n}\n\nexport const defaultWeb3State: Web3ProviderState = {\n provider: undefined,\n web3: undefined,\n account: undefined,\n networkInfo: undefined,\n}\n\nexport const Web3Store = createContext({\n state: defaultWeb3State,\n actions: {\n setProvider: (): Promise => Promise.resolve(),\n onConnectedNetworkChange: (): any => 0,\n onConnectedAccountChange: (): any => 0,\n },\n requiredNetworkId: undefined,\n requiredChainId: undefined,\n})\n\ninterface Web3ProviderState {\n provider?: EProvider\n web3?: Web3\n account?: string\n networkInfo?: NetworkInfo\n}\n\nconst getAccountFromEthAccounts = (accounts: string[] | string): string | undefined => {\n let account: string\n\n if (Array.isArray(accounts)) [account] = accounts\n else account = accounts\n return account\n}\n\n/**\n * The provider will not read the account when a requiredNetworkId was provided\n * and it does not match the networkId of current networkInfo, same applies to\n * chainId. Nothing happens if the requiredNetworkId was not specified\n * @param requiredNetworkId given on the props of the provider\n * @param requiredChainId given on the props of the provider\n * @param networkInfo obtained from the wallet\n */\nconst shouldReadAccount = (\n requiredNetworkId?: number,\n requiredChainId?: number,\n networkInfo?: NetworkInfo,\n): boolean => {\n // the consumer did not provide enough information to validate the network, so we do not check\n if (!requiredNetworkId) return true\n\n if (requiredNetworkId === networkInfo?.networkId) {\n // only when chainId is provided we compare it\n if (requiredChainId) return requiredChainId === networkInfo?.chainId\n return true\n }\n return false\n}\n\nclass Web3Provider extends Component {\n private readonly requiredNetworkId?: number\n\n private readonly requiredChainId?: number\n\n private availableProviders?: ProviderInfo[]\n\n constructor(props: Web3ProviderProps) {\n super(props)\n this.state = defaultWeb3State\n this.requiredNetworkId = props.requiredNetworkId\n this.requiredChainId = props.requiredChainId\n this.onConnectedNetworkChange = props.actions.onConnectedNetworkChange\n this.onConnectedAccountChange = props.actions.onConnectedAccountChange\n this.setProvider = this.setProvider.bind(this)\n this.initialize()\n }\n\n private readonly onConnectedNetworkChange?: () => void\n\n private readonly onConnectedAccountChange?: () => void\n\n public async setProvider(provider: EProvider,\n onStateChanged?: (account?: string) => void): Promise {\n const web3 = await getWeb3(provider)\n const accounts = await web3.eth.getAccounts()\n const networkInfo = await getNetworkInfoFromWeb3(web3)\n // only validate requiredNetworkId and requiredChainId when are provided\n const shouldSetAccount = shouldReadAccount(this.requiredNetworkId, this.requiredChainId, networkInfo)\n\n const account = shouldSetAccount\n ? getAccountFromEthAccounts(accounts)\n : undefined\n\n this.setState(\n {\n web3,\n provider,\n account,\n networkInfo,\n },\n () => (onStateChanged && onStateChanged(account)),\n )\n }\n\n private initialize(): void {\n if (!window.ethereum) {\n return\n }\n this.availableProviders = getAvailableProviders()\n\n window.ethereum.autoRefreshOnNetworkChange = false\n // handle on networkChange\n window.ethereum.on('networkChanged', async (_netId) => {\n const { networkInfo } = this.state\n\n if (!networkInfo) return // wallet is not connected\n const { provider } = this.state\n const web3 = await getWeb3(provider)\n const accounts = await web3.eth.getAccounts()\n const newNetworkInfo = await getNetworkInfoFromWeb3(web3)\n\n // we do not want to set the account if we know it is the wrong network\n const shouldSetAccount = shouldReadAccount(\n this.requiredNetworkId,\n this.requiredChainId,\n newNetworkInfo,\n )\n const account = shouldSetAccount\n ? getAccountFromEthAccounts(accounts)\n : undefined\n\n this.setState(\n {\n networkInfo: newNetworkInfo,\n account,\n },\n () => this.onConnectedNetworkChange && this.onConnectedNetworkChange(),\n )\n })\n // handle on accountsChanged\n window.ethereum.on('accountsChanged', (accounts: string | string[]) => {\n const { networkInfo } = this.state\n\n if (!networkInfo) return // wallet is not connected\n // we only care about this change if it is on the right network\n // or if we can not validate the required network\n const shouldSetAccount = shouldReadAccount(\n this.requiredNetworkId, this.requiredChainId, networkInfo,\n )\n\n if (shouldSetAccount) {\n const account = getAccountFromEthAccounts(accounts)\n\n if (account) {\n this.setState({\n account,\n },\n () => this.onConnectedAccountChange\n && this.onConnectedAccountChange())\n }\n }\n })\n }\n\n public render(): ReactNode {\n const {\n provider,\n web3,\n account,\n networkInfo,\n } = this.state\n const {\n setProvider,\n onConnectedNetworkChange,\n onConnectedAccountChange,\n availableProviders,\n } = this\n\n const { children } = this.props\n\n return (\n \n {children}\n \n )\n }\n}\n\nexport default { Consumer: Web3Store.Consumer, Provider: Web3Provider }\n"],"names":["useStyles","makeStyles","block","width","noShadow","boxShadow","rounded","borderRadius","Button","className","shadow","children","rest","classes","React","MUIButton","trim","colors","black","primary","darkBlue","gray1","gray2","gray3","gray4","gray5","gray6","transparent","white","fonts","family","size","tiny","small","normal","medium","subtitleSmall","subtitleBig","weight","light","regular","bold","globalConstants","headerHeight","theme","createMuiTheme","palette","main","secondary","typography","fontFamily","button","textTransform","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","body1","fontWeight","props","overrides","MuiButton","root","MuiFormControlLabel","color","MuiSlider","rail","height","opacity","track","thumb","marginLeft","MuiTextField","createStyles","unCheckedIcon","checkedIcon","Checkbox","checked","isChecked","setIsChecked","useState","handleChange","event","newChecked","onChange","MUICheckbox","CheckBoxSharp","icon","CheckBoxOutlineBlankSharp","require","EProvider","getProviderInfo","eProvider","METAMASK","name","iconImg","metaMaskIconImg","NIFTY","niftyIconImg","LEDGER","TREZOR","TRUST","GO_WALLET","ALPHA_WALLET","STATUS","COINBASE","MIST","PARITY","INFURA","LOCAL","Error","padding","margin","content","display","alignItems","maxHeight","spacing","justifyContent","imageWrapper","marginRight","LoginOption","onClick","providerInfo","providerContent","src","alt","handleOnClick","window","open","variant","Tooltip","arrow","title","Logo","logoFullWhite","LogoNavbar","fontSize","pxToRem","selected","borderBottom","StyledNavTab","Tab","component","NavLink","disableRipple","defaultonCorrectNetworkMessage","deaulftonNetworkMismatchMessage","defaultNoNetworkMessage","NetworkStatus","getNetworkStatus","currentNetworkId","requiredNetworkId","NO_NETWORK","CORRECT_NETWORK","NETWORK_MISSMATCH","NetworkIndicator","iconClassName","onCorrectNetworkMessage","onNetworkMismatchMessage","noNetworkMessage","networkStatus","iconPerNetworkStatus","Map","set","WarningIcon","style","yellow","ErrorIcon","CheckCircleOutlineOutlinedIcon","green","get","paper","backgroundColor","background","border","shadows","left","minWidth","position","top","transform","Modal","MUIModal","ModalHeader","ModalTitle","Typography","borderTop","paddingTop","ModalFooter","ModalBody","overlay","zIndex","spinner","animation","WithSpinner","WrappedComponent","Spinner","isLoading","logoBlueIcon","heading","accordionSummary","Accordion","expanded","id","isExpanded","setIsExpanded","MUIAccordion","AccordionSummary","expandIcon","ExpandMoreIcon","AccordionDetails","AccountModal","setProvider","availableProviders","onClose","onProviderSet","Fragment","length","map","key","tooltipTitle","CopyTextTooltip","displayElement","fullText","isCopied","setIsCopied","tooltipContent","FileCopyIcon","interactive","navigator","clipboard","writeText","then","headingExpanded","headingCollapsed","panelDetails","answerContainer","breakpoints","up","maxWidth","answerText","FAQSection","initiallyExpanded","question","answer","RemoveIcon","AddIcon","LabeledCheckbox","labelText","labelClassName","FormControlLabel","label","control","FilterCheckboxCard","items","item","i","shortenString","str","largerThan","charsShownCount","substr","removeEmptySpaces","replace","maxSupportedNumber","minSupportedNumber","validatedNumber","num","flexDirection","footerLink","textDecoration","footerTitle","textAlign","FooterColumn","links","link","isExternal","href","to","toString","target","ModalDialogue","footer","input","paddingLeft","inputContainer","paddingRight","units","unitsContainer","alignSelf","UnitsInput","maxValue","minValue","value","step","handleOnBlur","handleOnChange","Grid","container","xs","Input","onBlur","type","fullWidth","inputProps","min","max","inputsContainer","toContainer","RangeSliderWithInputs","values","start","startValue","end","endValue","unit","handleStartInputChange","newStartValue","Number","handleEndInputChange","newEndValue","handleSliderChange","_","newSliderValue","handleStartValueBlur","handleEndValueBlur","getCommonInputValues","Slider","ShortenTextTooltip","maxLength","indicator","StyledTabs","Tabs","a11yProps","index","minHeight","overflow","tabContainer","tab","outlineStyle","tabIndicator","tabSelected","SwitchTabs","label1","label2","controlledValue","newValue","MUITabs","TabIndicatorProps","MUITab","TooltipIconButton","iconButtonProps","IconButton","boxContainer","marginTop","loaderContainer","WrongNetworkModal","currentNetworkName","requiredNetworkName","gutterBottom","align","Box","sm","CircularProgress","copyright","copyrightContent","footerContainer","paddingBottom","footerContent","linksColumn","marginBottom","logoColumn","tongue","borderTopLeftRadius","borderTopRightRadius","Footer","copyrightText","linksColumns","direction","md","lg","logoBlackAndBlue","linkColumn","ConnectionStatus","getWeb3","provider","Promise","resolve","reject","ethereum","web3","Web3","enable","catch","currentProvider","localhostProvider","providers","HttpProvider","getNetworkInfo","networkId","chainId","networksData","find","n","getNetworkInfoFromWeb3","eth","net","getId","getChainId","error","networkInfo","getWeb3Provider","undefined","getAvailableProviders","result","isMetaMask","push","isNiftyWallet","isTrust","isGoWallet","isAlphaWallet","isStatus","isToshi","__CIPHER__","CIPHER","constructor","host","indexOf","getConnectionStatus","account","LoggedOut","WrongNetwork","LoggedIn","WalletLocked","accountText","networkIndicator","rightNetwork","Account","modalInitiallyOpened","accountModalOpen","setAccountModalOpen","handleAccountModalClose","handleAccountModalOpen","wrongNetModalOpen","setWrongNetModalOpen","openWrongNetModal","closeWrongNetModal","connectionStatus","anchorEl","setAnchorEl","popoverOpen","Boolean","handlePopoverClose","useEffect","onAccountClicked","currentTarget","Popover","anchorOrigin","vertical","horizontal","transformOrigin","activeNavlink","navLink","navLinkContainer","HeaderDesktop","hreflogo","itemsStart","itemsEnd","login","Login","AppBar","Toolbar","xl","justify","navItem","activeClassName","alignContent","ListItemIcon","drawerWidth","drawerHeader","mixins","toolbar","drawerPaper","mobileAppBar","transition","transitions","create","easing","sharp","duration","leavingScreen","mobileAppBarShift","easeOut","enteringScreen","mobileNavLink","mobileNavLinkActive","HeaderMobile","setOpen","toggleDrawer","isOpen","role","onKeyDown","MenuIcon","Drawer","anchor","ChevronLeftIcon","Divider","List","headerItem","ListItem","ListItemText","Header","Hidden","smDown","mdUp","textContainer","textContent","down","titleContent","tongueImg","HeaderTongue","description","titleLine1","titleLine2","headerTongueImg","grayBackground","mainTitle","questionsSection","FAQPageTemplate","questionsAndAnswers","qAndA","PageTemplate","defaultWeb3State","Web3Store","createContext","state","actions","onConnectedNetworkChange","onConnectedAccountChange","requiredChainId","getAccountFromEthAccounts","accounts","Array","isArray","shouldReadAccount","Web3Provider","Component","bind","initialize","onStateChanged","getAccounts","shouldSetAccount","setState","autoRefreshOnNetworkChange","on","_netId","newNetworkInfo","render","Provider","Consumer"],"mappings":"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"} \ No newline at end of file diff --git a/dist/logoBlackAndBlue~YbWCBYrQ.svg b/dist/logoBlackAndBlue~YbWCBYrQ.svg deleted file mode 100644 index ca380f12..00000000 --- a/dist/logoBlackAndBlue~YbWCBYrQ.svg +++ /dev/null @@ -1,125 +0,0 @@ - - - - -RIF_Logo_Phase1_RGB_NoTagline - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/logoBlueIcon~qRLrrgXR.svg b/dist/logoBlueIcon~qRLrrgXR.svg deleted file mode 100644 index 3869ac7d..00000000 --- a/dist/logoBlueIcon~qRLrrgXR.svg +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/logoFullWhite~geFkQihC.svg b/dist/logoFullWhite~geFkQihC.svg deleted file mode 100644 index ee976693..00000000 --- a/dist/logoFullWhite~geFkQihC.svg +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - diff --git a/dist/metaMask~bnTqJLxK.svg b/dist/metaMask~bnTqJLxK.svg deleted file mode 100644 index 5276c2cb..00000000 --- a/dist/metaMask~bnTqJLxK.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/dist/models/Enums.d.ts b/dist/models/Enums.d.ts deleted file mode 100644 index 211d779f..00000000 --- a/dist/models/Enums.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -export declare enum ConnectionStatus { - LoggedIn = 0, - LoggedOut = 1, - WalletLocked = 2, - WrongNetwork = 3 -} -export default ConnectionStatus; diff --git a/dist/models/NetworkInfo.d.ts b/dist/models/NetworkInfo.d.ts deleted file mode 100644 index 5160e45b..00000000 --- a/dist/models/NetworkInfo.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -export default interface NetworkInfo { - name: string; - chainId?: number; - shortName: string; - chain: string; - network: string; - networkId: number; - nativeCurrency: { - name: string; - symbol: string; - decimals: number; - }; - rpc: string[]; - faucets: string[]; - infoURL: string; -} diff --git a/dist/models/ProviderInfo.d.ts b/dist/models/ProviderInfo.d.ts deleted file mode 100644 index fc5d671b..00000000 --- a/dist/models/ProviderInfo.d.ts +++ /dev/null @@ -1,22 +0,0 @@ -export default interface ProviderInfo { - name: string; - eProvider: EProvider; - iconImg?: string; -} -export declare enum EProvider { - METAMASK = "Metamask", - NIFTY = "Nifty", - LEDGER = "Ledger", - TREZOR = "Trezor", - TRUST = "Trust", - LOCAL = "Localhost", - GO_WALLET = "GoWallet", - ALPHA_WALLET = "AlphaWallet", - STATUS = "status", - CIPHER = "cipher", - COINBASE = "coinbase", - MIST = "mist", - PARITY = "parity", - INFURA = "infura" -} -export declare const getProviderInfo: (eProvider: EProvider) => ProviderInfo; diff --git a/dist/nameService~UWbtQqmT.svg b/dist/nameService~UWbtQqmT.svg deleted file mode 100644 index a346b7ff..00000000 --- a/dist/nameService~UWbtQqmT.svg +++ /dev/null @@ -1 +0,0 @@ -name3 \ No newline at end of file diff --git a/dist/nifty~RMIWdZeg.png b/dist/nifty~RMIWdZeg.png deleted file mode 100644 index 377ea26252b8d260f38ebb85d3c76ae14ec4f381..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5009 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 CPK#y$ diff --git a/dist/providers/Web3Provider.d.ts b/dist/providers/Web3Provider.d.ts deleted file mode 100644 index 04d21599..00000000 --- a/dist/providers/Web3Provider.d.ts +++ /dev/null @@ -1,45 +0,0 @@ -import React, { Component, ReactNode } from 'react'; -import Web3 from 'web3'; -import NetworkInfo from '../models/NetworkInfo'; -import ProviderInfo, { EProvider } from '../models/ProviderInfo'; -export interface Web3ProviderProps { - state: { - provider?: EProvider; - web3?: Web3; - account?: string; - networkInfo?: NetworkInfo; - requiredNetworkId?: number; - }; - actions: { - setProvider?: (provider: EProvider, onStateChanged?: (account?: string) => void) => Promise; - onConnectedNetworkChange?: () => void; - onConnectedAccountChange?: () => void; - }; - requiredNetworkId?: number; - requiredChainId?: number; - availableProviders?: ProviderInfo[]; -} -export declare const defaultWeb3State: Web3ProviderState; -export declare const Web3Store: React.Context; -interface Web3ProviderState { - provider?: EProvider; - web3?: Web3; - account?: string; - networkInfo?: NetworkInfo; -} -declare class Web3Provider extends Component { - private readonly requiredNetworkId?; - private readonly requiredChainId?; - private availableProviders?; - constructor(props: Web3ProviderProps); - private readonly onConnectedNetworkChange?; - private readonly onConnectedAccountChange?; - setProvider(provider: EProvider, onStateChanged?: (account?: string) => void): Promise; - private initialize; - render(): ReactNode; -} -declare const _default: { - Consumer: React.Consumer; - Provider: typeof Web3Provider; -}; -export default _default; diff --git a/dist/providers/index.d.ts b/dist/providers/index.d.ts deleted file mode 100644 index d99dde79..00000000 --- a/dist/providers/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import Web3Provider, { Web3Store, defaultWeb3State } from './Web3Provider'; -export { Web3Provider, Web3Store, defaultWeb3State }; diff --git a/dist/rifCom~udwpaCym.png b/dist/rifCom~udwpaCym.png deleted file mode 100644 index 0ccacdbe83075cf9b3806546993e489f8f5e7ef1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1642 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 N7N%%q^(FV%{{fpY%qRc= diff --git a/dist/rifGat~balFpEzC.png b/dist/rifGat~balFpEzC.png deleted file mode 100644 index 5f0aa71d8f2b38593917e92f5270e3b4e99d9dba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1687 zcmb`H`7_%I1IE9Ok|u+8NzqQrvWO$9RSE0bhB&II3hTbvI6@rTt}t}#T2#|CVKq_u zI<_U6x}s=aD$zPpq)Mk{9ZMWB(vmcyj#&F2><>Hh96vwvnR$w@dAX{9PlEvfP;qy2 zzJAm(NA>{8ALVfZa{&P4evNl>x|V+36{YKrc0ydRK_K84%`X4|jPx^U+|=1eW6)7t zh`j@AZ)vH_helC8z%1io?$MNR8giVaZRHsDx$L{(SX*>)SvW){-#HRwtY=^fNsP*? z7PA^jZ@M35IY_fU+stN}!?x~JFq;UvG}FpfthKeJt!8s3yOan#g*C-#bI9Z+Ooues z&WrUaEy2%0`fLhr2v@OVvYn`rr}AA327d$>a)Q}%@TcbB8qiH@+U38_xO#W(Z{SCk zy^BVFF_XVihqsWFs`mwW&;lbfZEzpowE6cC#oy#!MA{p)`mv6cYWc7gwWISv2VXA2 z(j7zd*D9b;QC5z~Xvl+M*xqkq=uz+H`^a}Pwy~P>q_mnsikuQ0&i4ip!iS!IQgf2j z;rcqAMh&x}xV@#9oqekPd%$XUT279R(wy`83TCH0HlXNTXKw>SH zFgV-`ljEp&(4Cdp>hf)yp1d7u_LRZK2CAqkC16Jh;`tM+&#~|yO2_eTf$0DMQUAws z0JTaB02Ep7&X+O2R0*lUNf@-&;Ng7yb7&_-E8=9Rarvb`u9d`NYLgPqwDJ&>^=MNj z(_QDK#}sxk4+T;iP@YtdW+k<_k<;Rvet;WZD}P_&Qm5C^YG7PEQJBAuSW5^LE@wLg z#Lu3w&5HAyjmhz*&9;jl9z3+MJhZeOc*7egx-esO?{y)(NBYNUJWCtE+OH{t>N$BYmPH!5Ovm9l_c+y4x-N(=18mV~_~D#a4)u-s8v3@86YE zG~)64XI=>B;0@02rJPL!?Lc1?ta`_@FGrHdupNsgi|Ecyz0G7t(Jp6Y*+-z_`lz9X z8#HQ~JM9CRh_%|rzd9+4-q>{=sm%fvD3A8vI?Hr>j~L$k?L=9F_9kI*B=DSO=j`P` z$RG2my>T-2_o#ryfz~Vfx$dl=Xj*A8=u!~$xi9rs&O!0-L+MMj9>FIa&r?TBlt&u* zh=SA~**Gn@-sH-4u_3kN2Aq)d8lTOXU$ZtLwoJH1T2WMwwFnMC>ft!^uZRhmjDf+??O=hkT zwC8pVr?6qm%__l47I{RM+iRyO>D~1PJ1aUnTk3YQ`GHCs9WUkG{p%(JwI)S#rgf_h zk@FvUHA^?5BIv1kcM5Fd+klKPei1QsfuL5HnS6=w{qytl=KmWO)oXJog9Y28uSd|Q zOs{^M-p~Ofe@}1RR}fEpZdDa`JxP{O%#@IlAd}Oa$29>zoI{1S%*gR zyO-=8_FU-t(~v}cn#owLZ*UCtc8R2!W{FQIJ$cSpuWc;PNMx)J-%7hFL~=Z*R^Pq_ zdyKj`uT)x*u_XB)1mN$3ND)OPt?T%*&@jT*IRoF8CaWDR31zIRuy@7p!R__j`sec= zWexn6<&@7~1=g|?_C4!||F4G9sD6{Z4^~FC958kYnIUUU2=MQX!l4@>Uuv(eHzSh2 zN*iA+_zw%8r7mTZbyz?Z{1mdSWx7_Z>sA;?o zdF~PBMW?*MM_KbR!MkTSGX+AG?FXodVS+4K-r~F`&iOZ&`?H0>{^k0|FJrm7P?Ttx lioU;rs0!^cllwQ4Dea4zTH(5nW{%Dca7TMNGf)w?{{~m6DR=+? diff --git a/dist/rifMar~IDqKMWpK.png b/dist/rifMar~IDqKMWpK.png deleted file mode 100644 index f691edb9a29455d9d52d505306e05480377e4d5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1940 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 X`rEQ~x^QIl00000NkvXXu0mjfeRrki diff --git a/dist/rifSto~fMRetflo.png b/dist/rifSto~fMRetflo.png deleted file mode 100644 index e4d7348dec4d36df2b4fa97f6f63807cd922846a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1321 zcmeAS@N?(olHy`uVBq!ia0vp^DM0Ma!2~2ZtF}I1U|?*_baoCX4sv%=@N{)HGqf}_ z(>2mFWMI&kSUT~%wo9PMar@7089f@CH*A>EBAPVihK6ybhG+7W_}S*?_eh%B$Gz`W ziB7e4?d*-`{>QZKRFtNYsy26aQuDmedsa?7vvY2>-S_JEmUpZ5G(PrB+q$YsVYc>+ zjTsge#@6C%Di3w{GpyBEl_q(3^5n-MTfRrz`0aUDloe|Cef?EkHCxZW52fAxcl>!%aO$al``HQ|Ca=W>24A~{_eXfoj!dky z%)NPLQ`oNl&qDP^=C-OEL-(+DO9UQbkxXvk`1{33qu4&S<;65n(NEQNpVUuyuT$H6 zP)p5wiAV5);47&s=S^ABJ#Wgy#H%m=-`^Ki6@OywJAUV{i*xsHb3Ut9BbxjB@qumo z`40YOc)qi!u1=oqo{Rppt=nufBHAx^Z<=^zZ3U7>RNaBwBeQWPM1Z0 zJi9w@>Nm?>%|B+(3%>W=0r7fS z-XZ5zV_Po0I(J#o=Btdep||?{)uPkCaW2d=%Um3A%|~LD_2Yvai6^H1ee}k!wp6nw zz4n9hNfCxEdk@YFtbIL$E7f<#6Ge^-uMQr}WZgWmu`K@ZO%4;=Wx8>cc&L@p}&sh@3l~V5eoiE%cpP$26&*njIHUgr@^Tm z8TLHA=h)LWAJ)&yCvBLNTFZH=ce(ha)V1%-oMb=idKM5j&$dZi`_%NJ$fK1TQf*}_I}RIn zv(M)_R3h8iZd5}ceC<;s3(@5Vk^$(qxff4qE~H2dur{v|T+_!P5ANDH}OstLZYr5XP-LzKi12DTWc)I$ztaD0e F0s!PgMQ#89 diff --git a/dist/rskLogo~bdMEZSPk.svg b/dist/rskLogo~bdMEZSPk.svg deleted file mode 100644 index 8eab6198..00000000 --- a/dist/rskLogo~bdMEZSPk.svg +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dist/services/Web3Service.d.ts b/dist/services/Web3Service.d.ts deleted file mode 100644 index bc0c21f8..00000000 --- a/dist/services/Web3Service.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -import Web3 from 'web3'; -import NetworkInfo from '../models/NetworkInfo'; -import ProviderInfo, { EProvider } from '../models/ProviderInfo'; -import ConnectionStatus from '../models/Enums'; -declare global { - interface Window { - ethereum: any; - web3: Web3; - } -} -export declare function getWeb3(provider?: EProvider): Promise; -export declare const getNetworkInfo: (networkId: number, chainId?: number | undefined) => NetworkInfo | undefined; -export declare const getNetworkInfoFromWeb3: (web3: Web3) => Promise; -export declare const getAvailableProviders: () => ProviderInfo[] | undefined; -export declare const getConnectionStatus: (web3?: Web3 | undefined, requiredNetworkId?: number | undefined, currentNetworkId?: number | undefined, account?: string | undefined) => ConnectionStatus; diff --git a/dist/services/index.d.ts b/dist/services/index.d.ts deleted file mode 100644 index 18894d8b..00000000 --- a/dist/services/index.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { getWeb3 } from './Web3Service'; -declare const _default: { - getWeb3: typeof getWeb3; -}; -export default _default; diff --git a/dist/storage~fCGkZtHN.svg b/dist/storage~fCGkZtHN.svg deleted file mode 100644 index 6231c1b2..00000000 --- a/dist/storage~fCGkZtHN.svg +++ /dev/null @@ -1 +0,0 @@ -storage3 \ No newline at end of file diff --git a/dist/theme/index.d.ts b/dist/theme/index.d.ts deleted file mode 100644 index 8d5dab77..00000000 --- a/dist/theme/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import theme, { colors, fonts, globalConstants } from './theme'; -export { colors, fonts, globalConstants, theme, }; diff --git a/dist/theme/theme.d.ts b/dist/theme/theme.d.ts deleted file mode 100644 index 844493cb..00000000 --- a/dist/theme/theme.d.ts +++ /dev/null @@ -1,36 +0,0 @@ -import '../assets/css/fonts/rubik.css'; -export declare const colors: { - black: string; - primary: string; - darkBlue: string; - gray1: string; - gray2: string; - gray3: string; - gray4: string; - gray5: string; - gray6: string; - transparent: string; - white: string; -}; -export declare const fonts: { - family: string; - size: { - tiny: number; - small: number; - normal: number; - medium: number; - subtitleSmall: number; - subtitleBig: number; - }; - weight: { - light: number; - regular: number; - medium: number; - bold: number; - }; -}; -export declare const globalConstants: { - headerHeight: number; -}; -declare const theme: import("@material-ui/core/styles").Theme; -export default theme; diff --git a/dist/tickWide~bmvsBAER.svg b/dist/tickWide~bmvsBAER.svg deleted file mode 100644 index bf4eb921..00000000 --- a/dist/tickWide~bmvsBAER.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/dist/utils.d.ts b/dist/utils.d.ts deleted file mode 100644 index 70f56849..00000000 --- a/dist/utils.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -declare const shortenString: (str: string, largerThan?: number, charsShownCount?: number) => string; -declare const removeEmptySpaces: (str: string) => string; -declare const maxSupportedNumber = 99999999999999; -declare const minSupportedNumber = 0.000001; -declare const validatedNumber: (num: number) => number; -export { shortenString, removeEmptySpaces, maxSupportedNumber, minSupportedNumber, validatedNumber, };