{"version":3,"file":"static/chunks/pages/wallet-999af3fe997aff27.js","mappings":"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","sources":["webpack://_N_E/?c529","webpack://_N_E/./src/app/containers/Wallet/styles.ts","webpack://_N_E/./src/ui/Wallet/components/AssetList/AssetListHeader.tsx","webpack://_N_E/./src/ui/Common/components/Dropdown/styles.ts","webpack://_N_E/./src/ui/Common/components/Dropdown/DropdownOverlay.tsx","webpack://_N_E/./src/ui/Common/components/Dropdown/Dropdown.tsx","webpack://_N_E/./src/ui/Common/components/Menu/styles.tsx","webpack://_N_E/./src/ui/Common/components/Menu/Menu.tsx","webpack://_N_E/./src/ui/Icons/components/ThreeDotsVert.tsx","webpack://_N_E/./src/ui/Wallet/components/AssetList/AssetItemActionMenu.tsx","webpack://_N_E/./src/ui/Wallet/components/AssetList/AssetListItem.tsx","webpack://_N_E/./src/ui/Wallet/components/AssetList/AssetList.tsx","webpack://_N_E/./src/ui/Wallet/components/WalletList/WalletList.tsx","webpack://_N_E/./src/app/containers/Wallet/WalletContainer.tsx","webpack://_N_E/./src/ui/Icons/components/BrowserIcon.tsx","webpack://_N_E/./src/ui/Wallet/components/SupportedBrowsers/SupportedBrowsers.tsx","webpack://_N_E/./pages/wallet/index.tsx","webpack://_N_E/./src/ui/Common/components/InfoBox/styles.ts","webpack://_N_E/./src/ui/Common/components/InfoBox/InfoBox.tsx","webpack://_N_E/./src/ui/CreateWallet/components/AddWallet/styles.tsx","webpack://_N_E/./src/ui/CreateWallet/components/AddWallet/AddWallet.tsx","webpack://_N_E/./src/ui/Icons/components/BorrowIcon.tsx","webpack://_N_E/./src/ui/Icons/components/VestingLockIcon.tsx","webpack://_N_E/./src/ui/Wallet/components/AssetList/ProgressBar.tsx"],"sourcesContent":["\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/wallet\",\n function () {\n return require(\"private-next-pages/wallet/index.tsx\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/wallet\"])\n });\n }\n ","import styled from 'styled-components'\nimport { LARGE_BREAKPOINT } from 'ui/Common/components/Grid'\n\nexport const ListHeader = styled.div<{ walletHeader?: boolean }>`\n height: 40px;\n padding: ${(p) => (p.walletHeader ? '0 48px' : '0 48px 0 16px')};\n border-radius: 8px;\n background-color: #d3d5da;\n\n color: #6c727f;\n font-size: 10px;\n line-height: 1.2;\n font-weight: bold;\n letter-spacing: 1px;\n text-transform: uppercase;\n\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n @media (max-width: ${LARGE_BREAKPOINT}px) {\n padding: ${(p) => (p.walletHeader ? '0 36px' : '0 36px 0 16px')};\n }\n\n > div,\n > * > div {\n cursor: pointer;\n }\n`\n","import * as S from './styles'\nimport React from 'react'\nimport Box from 'ui/Common/components/Box'\n\nexport function AssetListHeader({\n sortField,\n onSortChange,\n}: {\n sortField: string\n onSortChange: (field: string) => void\n}) {\n return (\n \n \n \n Chain\n \n\n onSortChange('name')}\n >\n Asset\n \n \n \n\n onSortChange('fiatBalance')}\n >\n Balance\n \n \n \n )\n}\n","import styled, { css } from 'styled-components'\n\nexport const DropdownContainer = styled.div`\n display: inline-block;\n`\n\nexport const OverlayContainer = styled.div<{ isOpened?: boolean }>`\n position: absolute;\n display: none;\n opacity: 0;\n z-index: 10; // keep select list above subsequent content\n\n background-color: ${(p) => p.theme.colors.white.white100};\n border-radius: ${(p) => p.theme.container.borderRadius.s}px;\n\n box-shadow: 0px 1px 32px 0px rgba(0, 0, 0, 0.15);\n\n transition: opacity 0.2s ease-in-out;\n ${(props) =>\n (props.isOpened ?? false) &&\n css`\n display: block;\n opacity: 1;\n `}\n`\n","import React, { PropsWithChildren } from 'react'\nimport { createPortal } from 'react-dom'\nimport * as S from 'ui/Common/components/Dropdown/styles'\n\n// -- Prop types\n// ----------\n\nexport interface DropdownOverlayProps {\n overlay: React.ReactNode\n opened?: boolean\n containerRef?: React.ForwardedRef\n}\n\n// -- Component\n// ----------\n\n/** Rendering container for given dropdown element. */\nconst DropdownOverlay: React.FC> = (\n props\n) => {\n return createPortal(\n \n {props.overlay}\n ,\n document.body\n )\n}\n\nexport { DropdownOverlay as DropdownOveray }\n","import React, {\n PropsWithChildren,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react'\nimport { DropdownOveray } from 'ui/Common/components/Dropdown/DropdownOverlay'\nimport * as S from 'ui/Common/components/Dropdown/styles'\nimport {\n ElementPlacement,\n useElementPlacement,\n} from 'ui/Common/util/hooks/useElementPlacement'\n\ntype DropdownTriggerType = 'click'\n// TODO: add support for 'hover' trigger event\n\n// -- Prop types\n// ----------\n\nexport interface DropdownProps {\n overlay: React.ReactNode\n placement?: ElementPlacement\n trigger?: DropdownTriggerType\n disabled?: boolean\n}\n\n// -- Component\n// ----------\n\n/** Generic dropdown element which \"drops\" andy given overlay on trigger */\nconst Dropdown: React.FC> = (props) => {\n const placement = props.placement ?? 'bottom-start'\n\n // is component opened\n const [opened, setOpened] = useState(false)\n // dropdown container ref\n const containerRef = useRef(null)\n // overlay ref\n const overlayRef = useRef(null)\n\n // init \"outside\" click listeners - used for detecting when component looses focus\n useEffect(() => {\n // callback function (no need to create it outside because it's only ever used here)\n function handleOutsideClick(evt: any) {\n if (!containerRef?.current?.contains(evt.target as Node)) {\n setOpened(false) // close list\n }\n }\n\n // disabled - ignore all events\n if (props.disabled) return\n\n document.addEventListener('click', handleOutsideClick)\n\n return () => {\n document.removeEventListener('click', handleOutsideClick)\n }\n }, [props.disabled])\n\n /**\n * Position overlay to trigger container\n *\n * TODO: this could be a separate hook?\n */\n const placeElements = useElementPlacement()\n\n // sync overlay position with trigger\n useEffect(() => {\n if (opened) {\n if (containerRef.current && overlayRef.current) {\n placeElements(containerRef.current, overlayRef.current, placement)\n } else {\n console.warn(\n 'Cannot place empty element',\n containerRef.current,\n overlayRef.current\n )\n }\n }\n }, [opened, placeElements, placement])\n\n // ---------- event handlers\n\n /** Handle button click */\n const handleClick = useCallback(() => {\n // disabled - ignore all events\n if (props.disabled) return\n\n setOpened(!opened) // toggle list\n }, [opened, props.disabled])\n\n const getEventHandler = useCallback(\n (eventType: DropdownTriggerType) => {\n if (props.trigger == null || props.trigger == eventType) {\n return handleClick\n }\n },\n [handleClick, props.trigger]\n )\n\n return (\n \n {props.children}\n {opened && (\n \n )}\n \n )\n}\n\nexport { Dropdown }\n","import styled from 'styled-components'\n\nexport const MenuContainer = styled.div`\n display: flex;\n flex-direction: column;\n\n background-color: ${(p) => p.theme.colors.white.white100};\n`\n\nexport const MenuItemContainer = styled.div`\n display: flex;\n align-items: center;\n padding: ${(p) => p.theme.spacing.xs}px ${(p) => p.theme.spacing.s}px;\n flex-wrap: nowrap;\n\n background-color: ${(p) => p.theme.colors.white.white100};\n\n cursor: pointer;\n\n &:hover {\n background-color: ${(props) => props.theme.colors.grey.grey3};\n }\n`\n","import React, { useCallback } from 'react'\nimport * as S from 'ui/Common/components/Menu/styles'\n\nexport type MenuItemProp = {\n label: React.ReactNode\n key: string\n}\n\n// -- Prop types\n// ----------\n\nexport interface MenuProps {\n items: MenuItemProp[]\n\n onClick?: (key: string) => void\n}\n\n// -- Component\n// ----------\n\n/** Menu component that can be used for lists and navigation */\nconst Menu: React.VFC = (props) => {\n const handleItemClick = useCallback(\n (key: string) => () => {\n props.onClick?.(key)\n },\n [props.onClick]\n )\n\n return (\n \n {props.items.map((item) => (\n \n {item.label}\n \n ))}\n \n )\n}\n\nexport { Menu }\n","import * as React from 'react'\n\nfunction ThreeDotsVert(props: React.SVGProps) {\n return (\n \n \n \n )\n}\n\nexport default ThreeDotsVert\n","import * as S from './styles'\nimport { Asset, AssetType, ChainType, WalletId } from 'crypto/interface'\nimport React, { useCallback, useMemo } from 'react'\nimport { Dropdown } from 'ui/Common/components/Dropdown'\nimport { Menu } from 'ui/Common/components/Menu'\nimport { MenuItemProp } from 'ui/Common/components/Menu/Menu'\nimport {\n NotificationType,\n useNotifications,\n} from 'ui/Common/components/Notifications'\nimport ThreeDotsVert from 'ui/Icons/components/ThreeDotsVert'\n\nconst MenuItemKey = {\n AddToMetamask: 'AddMadaToMetamask',\n}\n\n// -- Prop types\n// ----------\n\nexport interface AssetItemActionMenuProps {\n walletId: WalletId | undefined\n asset: Asset\n addCustomToken?: (\n walletId: WalletId,\n chain: ChainType,\n assetId: AssetType\n ) => Promise\n}\n\n// -- Component\n// ----------\n\n/** Asset item action menu */\nconst AssetItemActionMenu: React.VFC = (props) => {\n const { addNotification } = useNotifications()\n\n const handleActionMenuClick = useCallback(\n (key: string) => {\n if (key === MenuItemKey.AddToMetamask) {\n if (props.walletId) {\n props\n .addCustomToken?.(props.walletId, props.asset.chain, props.asset.id)\n .then(() => {\n // metamask promise resolves as soon as the wallet is opened and before user has approved new token\n // hence, there is no point in showing success notification which will even be covered by the wallet window\n })\n .catch((err) => {\n addNotification({\n content: `Error adding \"${props.asset.ticker}\" token to \"${props.walletId}\" wallet: ${err}`,\n type: NotificationType.Error,\n })\n })\n }\n }\n },\n [props, addNotification]\n )\n\n const assetItemActions = useMemo(() => {\n const items: MenuItemProp[] = []\n // --- menu items\n // add mADA to Metamask\n if (props.asset.chain === 'polygon' && props.asset.ticker === 'mADA') {\n items.push({\n key: MenuItemKey.AddToMetamask,\n label: 'Add to Metamask',\n })\n }\n\n return items\n }, [props.asset.chain, props.asset.ticker])\n\n return assetItemActions.length > 0 ? (\n \n }\n >\n \n \n \n \n ) : null\n}\n\nexport { AssetItemActionMenu }\n","import FiatBalance from '../Grpahs/FiatBalance'\nimport ProgressBar from './ProgressBar'\nimport * as S from './styles'\nimport BigNumber from 'bignumber.js'\nimport { Asset, AssetType, ChainType, WalletId } from 'crypto/interface'\nimport { useRouter } from 'next/router'\nimport React, { useRef } from 'react'\nimport { AnimatedSpinnerIcon } from 'ui/Common/components/Animation/AnimatedSpinnerIcon'\nimport AssetLogo from 'ui/Common/components/AssetLogo'\nimport AssetStats from 'ui/Common/components/AssetStats'\nimport { Button, ButtonVariant } from 'ui/Common/components/Button'\nimport { ChainDisplay } from 'ui/Common/components/ChainDisplay'\nimport { formatBalanceAmount } from 'ui/Common/util/format/amountFormat'\nimport { VestingLockIcon } from 'ui/Icons/components/VestingLockIcon'\nimport { AssetItemActionMenu } from 'ui/Wallet/components/AssetList/AssetItemActionMenu'\n\nexport default function AssetListItem({\n walletId,\n asset,\n addCustomToken,\n}: {\n walletId: WalletId | undefined\n asset: Asset\n addCustomToken?: (\n walletId: WalletId,\n chain: ChainType,\n assetId: AssetType\n ) => Promise\n}) {\n const router = useRouter()\n const isEmpty = asset.unitBalance.isZero()\n\n /*** Flashing logic start ***/\n // marks last known state of `asset.isPending`\n const pendingCache = useRef(asset.isPending)\n // ensure no flash on mount\n const isFlashing = useRef(false)\n // If asset is currently pending, ensure it's not flashing\n if (asset.isPending) {\n isFlashing.current = false\n } else {\n // asset is not pending, was it pending before this update?\n if (pendingCache.current) {\n isFlashing.current = true\n }\n }\n // update the cache to current value\n pendingCache.current = asset.isPending\n /*** Flashing logic end ***/\n\n return (\n \n \n \n \n \n \n {asset.name}\n \n \n \n {formatBalanceAmount(asset.unitBalance)}\n \n
\n \n
\n \n {isEmpty && (walletId != null || asset.id === 'meld') && (\n \n \n {\n if (asset.id === 'meld') {\n router.push(`https://meld.com/how-to-buy-meld`)\n } else {\n router.push(\n `/wallet/receive?wallet=${walletId}&chain=${asset.chain}&asset=${asset.id}`\n )\n }\n }}\n >\n {asset.id === 'meld' ? 'Buy' : 'Receive'}\n \n \n \n )}\n {!isEmpty && walletId != null && (\n \n {asset.fiatBalanceHistory && (\n
\n \n
\n )}\n\n \n {walletId !== 'eternl' && (\n \n router.push(\n `/wallet/stats?wallet=${walletId}&chain=${asset.chain}&asset=${asset.id}`\n )\n }\n >\n Stats and activity\n \n )}\n \n router.push(\n `/wallet/receive?wallet=${walletId}&chain=${asset.chain}&asset=${asset.id}`\n )\n }\n >\n Receive\n \n \n router.push(\n `/wallet/send?wallet=${walletId}&chain=${asset.chain}&asset=${asset.id}`\n )\n }\n >\n Send\n \n\n \n \n
\n )}\n
\n
\n )\n}\n\nexport interface VestingListItemProps {\n address: string\n walletId: WalletId\n walletIsPending: boolean\n rewardIndex: number\n totalAmount: BigNumber\n pendingAmount: BigNumber\n stakedAmount: BigNumber\n withdrawingAmount: BigNumber | undefined\n}\n\nexport function VestingListItem({\n address,\n walletId,\n walletIsPending,\n rewardIndex,\n totalAmount,\n pendingAmount,\n stakedAmount,\n withdrawingAmount,\n}: VestingListItemProps) {\n const router = useRouter()\n const totalProgressPeriods = 25\n const percentVested = new BigNumber('1').minus(pendingAmount.div(totalAmount))\n const activeProgressPeriods = Math.floor(\n percentVested.multipliedBy(totalProgressPeriods).toNumber()\n )\n const totalBalance = pendingAmount.plus(stakedAmount)\n\n /*** Flashing logic start ***/\n // marks last known state of `withdrawing\n const pendingCache = useRef(!!withdrawingAmount)\n // ensure no flash on mount\n const isFlashing = useRef(false)\n // If withdrawing is currently pending, ensure it's not flashing\n if (withdrawingAmount) {\n isFlashing.current = false\n } else {\n // withdrawing is not pending, was it pending before this update?\n if (pendingCache.current) {\n isFlashing.current = true\n }\n }\n // update the cache to current value\n pendingCache.current = !!withdrawingAmount\n /*** Flashing logic end ***/\n\n const isWithdrawingOrPending = walletIsPending || !!withdrawingAmount\n const canWithdraw = !isWithdrawingOrPending && !stakedAmount.isZero()\n\n return (\n \n \n \n \n VESTING MELD\n \n \n \n \n \n {formatBalanceAmount(totalBalance)}\n \n {withdrawingAmount && (\n <>\n \n WITHDRAWING{' '}\n {formatBalanceAmount(withdrawingAmount)}\n \n |\n \n )}\n \n AVAILABLE {formatBalanceAmount(stakedAmount)}\n \n \n \n \n \n \n router.push(\n `/vesting/withdraw?wallet=${walletId}&address=${address}`\n )\n }\n >\n Withdraw\n \n \n \n \n )\n}\n","import { AssetListHeader } from './AssetListHeader'\nimport AssetListItem, { VestingListItem } from './AssetListItem'\nimport { AssetList as AssetListStyles } from './styles'\nimport BigNumber from 'bignumber.js'\nimport {\n Asset,\n AssetType,\n ChainType,\n VestingData,\n WalletId,\n} from 'crypto/interface'\nimport orderBy from 'lodash/orderBy'\nimport React, { useCallback, useState } from 'react'\nimport { EmptyListMessage } from 'ui/Common/components/EmptyListMessage'\n\ntype AssetListProps = {\n vestingAddress?: string\n walletIsPending: boolean\n walletId?: WalletId\n assets: Asset[]\n vestingData?: VestingData\n addCustomToken?: (\n walletId: WalletId,\n chain: ChainType,\n assetId: AssetType\n ) => Promise\n}\n\nexport default function AssetList({\n vestingAddress,\n walletIsPending,\n walletId,\n assets,\n vestingData,\n addCustomToken,\n}: AssetListProps) {\n const [sortField, setSortField] = useState('')\n\n const handleSortClick = useCallback((field: string) => {\n setSortField((oldSortField) => {\n if (oldSortField === field) {\n return `-${field}`\n }\n\n if (oldSortField === `-${field}`) {\n return ''\n }\n\n return field\n })\n }, [])\n\n const sortInfo = sortField.split('-')\n const sortDirection = sortInfo[0] === '' ? 'asc' : 'desc'\n const sortColumnName = sortInfo[0] === '' ? sortInfo[1] : sortInfo[0]\n\n function compare(a: BigNumber | undefined, b: BigNumber | undefined) {\n if (a && b) return a.comparedTo(b) // both are BigNumber\n if (a === b) return 0 // both are undefined\n return a ? 1 : -1 // a or b are undefined\n }\n\n const sortedAssets =\n sortColumnName === 'fiatBalance'\n ? assets.sort((a, b) => {\n const cmp = compare(a.fiatBalance, b.fiatBalance)\n return sortDirection === 'asc' ? cmp : -cmp\n })\n : orderBy(assets, [sortColumnName], [sortDirection])\n\n return (\n <>\n \n \n {vestingData && vestingAddress && walletId && (\n \n )}\n\n {sortedAssets.length > 0 &&\n sortedAssets.map((asset) => (\n \n ))}\n\n {sortedAssets.length === 0 && (\n \n )}\n \n \n )\n}\n","import { WalletListItem } from './WalletListItem'\nimport { Wallet } from 'crypto/interface'\n\ninterface WalletListProps {\n wallets: Wallet[]\n selectedWallet: Wallet | undefined\n onSelectedWallet: (wallet: Wallet) => void\n}\n\nexport function WalletList({\n wallets,\n selectedWallet,\n onSelectedWallet,\n}: WalletListProps) {\n return (\n
\n {wallets.map((wallet) => (\n onSelectedWallet(wallet)}\n />\n ))}\n
\n )\n}\n","import * as S from './styles'\nimport {\n Asset,\n VestingData,\n Wallet,\n LinkResult,\n LinkWalletStatus,\n WalletId,\n AssetType,\n ChainType,\n} from 'crypto/interface'\nimport React, { useMemo } from 'react'\nimport Box from 'ui/Common/components/Box'\nimport { Grid, Row, Column } from 'ui/Common/components/Grid'\nimport Text from 'ui/Common/components/Text'\nimport { supportedWalletIds } from 'ui/Common/config'\nimport { AddWallet } from 'ui/CreateWallet/components/AddWallet'\nimport AssetList from 'ui/Wallet/components/AssetList/AssetList'\nimport { WalletList } from 'ui/Wallet/components/WalletList/WalletList'\n\nfunction WalletsHeader() {\n return (\n \n Wallets\n Balance\n \n )\n}\n\nexport function WalletContainer({\n wallets,\n selectedWallet,\n onSelectedWallet,\n linkMetamask,\n linkNami,\n linkEternl,\n metamaskStatus,\n namiStatus,\n eternlStatus,\n isWalletConnected,\n vestingData,\n allAssets,\n addCustomToken,\n}: {\n wallets: Wallet[]\n selectedWallet: Wallet | undefined\n onSelectedWallet: (wallet: Wallet) => void\n linkMetamask: () => Promise\n linkNami: () => Promise\n linkEternl: () => Promise\n metamaskStatus: LinkWalletStatus\n namiStatus: LinkWalletStatus\n eternlStatus: LinkWalletStatus\n isWalletConnected: (walletId: WalletId) => boolean\n vestingData: VestingData | undefined\n allAssets: Asset[]\n addCustomToken?: (\n walletId: WalletId,\n chain: ChainType,\n assetId: AssetType\n ) => Promise\n}) {\n // has any connected wallets\n const hasWallets = !!wallets.length\n\n // are all supported wallets already connected\n const allWalletsConnected = useMemo(() => {\n return supportedWalletIds.every(isWalletConnected)\n }, [isWalletConnected])\n\n const walletAssets = useMemo(() => {\n return (\n (selectedWallet?.assets ?? [])\n // filter only assets with balance >0\n .filter((asset) => asset.unitBalance.gt(0))\n )\n }, [selectedWallet])\n\n return (\n \n \n \n {wallets.length ? (\n <>\n \n My wallets\n \n \n More wallets. More freedom. Easy.\n \n \n ) : (\n <>\n \n No wallets\n \n \n connected yet\n \n \n Select action\n \n \n )}\n \n \n\n \n \n The MELD token has an ongoing migration to a new version of the token. You can read all about the migration here.\n
The tokens you withdraw below will need to be migrated, you can do so in app.meld.com.\n
Please be aware that non-migrated tokens are NOT SUPPORTED on centralised exchanges. Always check the token policy ID before transferring to any protocol.\n
\n
\n\n \n \n {hasWallets && }\n \n \n \n\n {!allWalletsConnected && (\n \n )}\n \n\n \n {selectedWallet ? (\n \n ) : (\n \n )}\n \n \n
\n )\n}\n","import React from 'react'\n\nexport const BrowserIcon = (props: React.SVGProps) => (\n \n \n \n \n \n \n)\n","import { useState } from 'react'\nimport Box from 'ui/Common/components/Box'\nimport InfoBox from 'ui/Common/components/InfoBox'\nimport { Popup } from 'ui/Common/components/Popup'\nimport Text from 'ui/Common/components/Text'\nimport { BrowserIcon } from 'ui/Icons/components/BrowserIcon'\n\nfunction SupportedBrowsers({\n showBrowserWarning,\n}: {\n showBrowserWarning: boolean\n}) {\n const [isOpen, setIsOpen] = useState(showBrowserWarning)\n\n if (!isOpen) return null\n\n return (\n setIsOpen(false)}>\n \n \n }\n >\n Note: Some wallets might not be supported in the current browser you\n are using. Please use one of the following browsers for optimal user\n experience.\n \n\n \n \"nami\"\n \n\n \n Nami is available on\n \n \n \n \n \n Chrome\n \n \n\n \n \"brave\"\n \n Brave\n \n \n\n \n \"edge\"\n \n Edge\n \n \n \n \n and any other chrome-based browser\n \n \n \n \n )\n}\n\nexport default SupportedBrowsers\n","import { WalletContainer } from 'app/containers/Wallet'\nimport {\n useAllAssets,\n useLinkEternl,\n useLinkMetamask,\n useLinkNami,\n useMeldState,\n useAddCustomToken,\n useVestingData,\n useSelectedWallet,\n} from 'crypto/hooks'\nimport Layout from 'ui/Common/components/Layout'\nimport SupportedBrowsers from 'ui/Wallet/components/SupportedBrowsers'\n\nlet IS_FIRST_PASS = true\nconst IS_BROWSER = typeof window !== 'undefined'\n\nconst isDesktop = () => {\n const ua = navigator.userAgent\n if (/(tablet|ipad|playbook|silk)|(android(?!.*mobi))/i.test(ua)) {\n return false\n } else if (\n /Mobile|Android|iP(hone|od)|IEMobile|BlackBerry|Kindle|Silk-Accelerated|(hpw|web)OS|Opera M(obi|ini)/.test(\n ua\n )\n ) {\n return false\n }\n return true\n}\n\n/**\n * Check (only on startup) whether the app is running in one of the supported browsers.\n *\n * Do not trigger this on mobile since mobile for now only has placeholder UI.\n */\nfunction shouldShowBrowserWarning() {\n if (!(IS_BROWSER && IS_FIRST_PASS && isDesktop())) {\n return false\n }\n\n IS_FIRST_PASS = false\n const isSupportedBrowser = navigator.userAgent.match(\n /chrome|chromium|crios|edg|brave/i\n )\n\n return !isSupportedBrowser\n}\n\nexport default function WalletPage() {\n const {\n wallets,\n metamaskStatus,\n namiStatus,\n eternlStatus,\n isWalletConnected,\n } = useMeldState()\n const [selectedWallet, setSelectedWallet] = useSelectedWallet()\n const linkMetamask = useLinkMetamask()\n const linkNami = useLinkNami()\n const linkEternl = useLinkEternl()\n const addCustomToken = useAddCustomToken()\n const vestingData = useVestingData(selectedWallet)\n const allAssets = useAllAssets()\n\n const showBrowserWarning = shouldShowBrowserWarning()\n\n return (\n <>\n \n \n \n\n \n \n )\n}\n","import styled from 'styled-components'\nimport Box from 'ui/Common/components/Box'\n\nexport const InfoBox = styled(Box)`\n // align text content\n > :not(svg) {\n align-self: center;\n }\n\n // align icon section\n > :first-child {\n align-self: flex-start;\n }\n`\n","import * as S from './styles'\nimport React from 'react'\nimport Box from 'ui/Common/components/Box'\nimport Text from 'ui/Common/components/Text'\n\n/**\n * InfoBox public interface\n */\ntype InfoBoxProps = {\n /**\n * Textual content of the InfoBox.\n */\n children: React.ReactNode\n /**\n * Icon renderd before InfoBox text.\n */\n icon?: React.ReactElement>\n /**\n * Override container styling using inline styles.\n */\n style: React.CSSProperties\n /**\n * Override icon container styling using inline styles.\n */\n iconContainerStyle?: React.CSSProperties\n}\n\n/**\n * InfoBox component\n */\nfunction InfoBox(props: InfoBoxProps) {\n return (\n \n {/* ICON SECTION */}\n {props.icon && (\n \n {props.icon}\n \n )}\n {/* TEXT SECTION */}\n \n {props.children}\n \n \n )\n}\n\nInfoBox.defaultProps = {\n style: {},\n}\n\nexport default InfoBox\n","import styled from 'styled-components'\nimport { LARGE_BREAKPOINT } from 'ui/Common/components/Grid'\n\nexport const Wrapper = styled.div`\n height: 88px;\n position: relative;\n border-radius: 8px;\n display: flex;\n padding: 32px 48px;\n background-color: ${(p) => p.theme.colors.white.white100};\n margin-top: 4px;\n justify-content: space-between;\n align-items: center;\n\n @media (max-width: ${LARGE_BREAKPOINT}px) {\n height: 76px;\n padding: 24px 36px;\n }\n`\n","import LinkWallet from '../LinkWallet'\nimport * as S from './styles'\nimport { LinkResult, LinkWalletStatus } from 'crypto/interface'\nimport { useRouter } from 'next/router'\nimport { memo, useState } from 'react'\nimport Box from 'ui/Common/components/Box'\nimport { Button, ButtonVariant } from 'ui/Common/components/Button'\nimport { Popup } from 'ui/Common/components/Popup'\nimport Text from 'ui/Common/components/Text'\n\nfunction _AddWallet({\n linkMetamask,\n linkNami,\n linkEternl,\n metamaskStatus,\n namiStatus,\n eternlStatus,\n}: {\n linkMetamask: () => Promise\n linkNami: () => Promise\n linkEternl: () => Promise\n metamaskStatus: LinkWalletStatus\n namiStatus: LinkWalletStatus\n eternlStatus: LinkWalletStatus\n}) {\n const [linkPopupOpen, setLinkPopupOpen] = useState(false)\n const router = useRouter()\n\n return (\n <>\n \n \n ADD WALLET\n \n \n {\n //TODO: not used currently\n false && (\n <>\n router.push('/wallet/create')}\n >\n Create\n \n router.push('/wallet/restore')}\n >\n Restore\n \n \n )\n }\n setLinkPopupOpen(true)}\n >\n Link\n \n \n \n {linkPopupOpen && (\n setLinkPopupOpen(false)}>\n setLinkPopupOpen(false)}\n />\n \n )}\n \n )\n}\n\nexport const AddWallet = memo(_AddWallet)\n","import React from 'react'\n\nexport const BorrowIcon = (props: React.SVGProps) => (\n \n \n \n \n \n)\n","import React from 'react'\n\nexport const VestingLockIcon = (props: React.SVGProps) => (\n \n \n \n \n \n \n \n \n \n)\n","import * as S from './styles'\nimport { FontWeight } from 'app/styles/typography'\nimport React from 'react'\nimport Text from 'ui/Common/components/Text'\nimport Tooltip from 'ui/Common/components/Tooltip/Tooltip'\nimport { BorrowIcon } from 'ui/Icons/components/BorrowIcon'\nimport { LockIcon } from 'ui/Icons/components/LockIcon'\n\nexport interface ProgressBarProps {\n active: number\n total: number\n rewardIndex: number\n}\n\nexport default function ProgressBar({\n active,\n total,\n rewardIndex,\n}: ProgressBarProps) {\n return (\n \n {/* */}\n\n \n \n Bonus? You’ll get 12%\n more if you hold MELD tokens until Dec 8th 2022.\n \n }\n >\n \n \n \n\n {[...Array(total)].map((e, i) => (\n \n ))}\n \n )\n}\n"],"names":["window","__NEXT_P","push","ListHeader","styled","p","walletHeader","LARGE_BREAKPOINT","AssetListHeader","sortField","onSortChange","S","Box","d","style","cursor","onClick","$highlightUp","$highlightDown","props","DropdownContainer","OverlayContainer","theme","colors","white","white100","container","borderRadius","s","isOpened","css","DropdownOverlay","createPortal","opened","ref","containerRef","overlay","document","body","Dropdown","placement","useState","useRef","overlayRef","useEffect","handleOutsideClick","evt","current","contains","target","setOpened","disabled","addEventListener","removeEventListener","placeElements","useElementPlacement","console","warn","handleClick","useCallback","getEventHandler","eventType","trigger","children","DropdownOveray","MenuContainer","MenuItemContainer","spacing","xs","grey","grey3","Menu","handleItemClick","key","role","items","map","item","label","svg","xmlns","width","height","fill","className","viewBox","path","MenuItemKey","AssetItemActionMenu","useNotifications","addNotification","handleActionMenuClick","walletId","addCustomToken","asset","chain","id","then","catch","err","content","ticker","type","NotificationType","assetItemActions","useMemo","length","ThreeDotsVert","AssetListItem","router","useRouter","isEmpty","unitBalance","isZero","pendingCache","isPending","isFlashing","initial","ChainDisplay","toggleName","AssetLogo","assetId","name","hasGraph","hasSpinner","fiatBalanceHistory","formatBalanceAmount","AnimatedSpinnerIcon","div","AssetStats","fiatBalance","unitPrice","change","singleItem","Button","variant","ButtonVariant","FiatBalance","points","VestingListItem","address","walletIsPending","rewardIndex","totalAmount","pendingAmount","stakedAmount","withdrawingAmount","percentVested","BigNumber","minus","activeProgressPeriods","Math","floor","multipliedBy","toNumber","totalBalance","plus","isWithdrawingOrPending","canWithdraw","VestingLockIcon","ProgressBar","active","total","withdrawing","span","AssetList","vestingAddress","assets","vestingData","handleSortClick","field","setSortField","oldSortField","sortInfo","split","sortDirection","sortColumnName","sortedAssets","sort","a","b","cmp","comparedTo","compare","orderBy","AssetListStyles","EmptyListMessage","message","WalletList","wallets","selectedWallet","onSelectedWallet","wallet","WalletListItem","isActive","WalletsHeader","WalletContainer","linkMetamask","linkNami","linkEternl","metamaskStatus","namiStatus","eternlStatus","isWalletConnected","allAssets","hasWallets","allWalletsConnected","supportedWalletIds","walletAssets","filter","gt","Grid","Row","Column","base","Text","marginTop","block","color","fontSize","fontWeight","lh","mt","href","br","strong","u","marginBottom","AddWallet","offset","addresses","cardano","BrowserIcon","g","fillRule","showBrowserWarning","isOpen","Popup","onClose","setIsOpen","w","h","bg","justifyContent","flexDirection","alignItems","InfoBox","padding","icon","mb","img","alt","src","textAlign","IS_FIRST_PASS","shouldShowBrowserWarning","ua","navigator","userAgent","test","isDesktop","match","WalletPage","useMeldState","useSelectedWallet","setSelectedWallet","useLinkMetamask","useLinkNami","useLinkEternl","useAddCustomToken","useVestingData","useAllAssets","Layout","SupportedBrowsers","mr","iconContainerStyle","defaultProps","Wrapper","_AddWallet","gap","setLinkPopupOpen","linkPopupOpen","LinkWallet","onSuccess","memo","BorrowIcon","stroke","strokeWidth","transform","Tooltip","multiline","text","FontWeight","Array","e","i","isBorrow"],"sourceRoot":""}