import { Box, Chip, makeStyles, Tooltip, Typography } from "@material-ui/core"; import { VerifiedUser } from "@material-ui/icons"; import { ExtendedProviderStatus } from "models/apiModel"; import TruncatedText from "renderer/components/other/TruncatedText"; import { MoneroBitcoinExchangeRate, SatsAmount, } from "renderer/components/other/Units"; import { satsToBtc, secondsToDays } from "utils/conversionUtils"; import { isProviderOutdated } from 'utils/multiAddrUtils'; import WarningIcon from '@material-ui/icons/Warning'; import { useAppSelector } from "store/hooks"; const useStyles = makeStyles((theme) => ({ content: { flex: 1, "& *": { lineBreak: "anywhere", }, }, chipsOuter: { display: "flex", marginTop: theme.spacing(1), gap: theme.spacing(0.5), flexWrap: "wrap", }, })); /** * A chip that displays the markup of the provider's exchange rate compared to the market rate. */ function ProviderMarkupChip({ provider }: { provider: ExtendedProviderStatus }) { const marketExchangeRate = useAppSelector(s => s.rates?.xmrBtcRate); if (marketExchangeRate === null) return null; const providerExchangeRate = satsToBtc(provider.price); /** The markup of the exchange rate compared to the market rate in percent */ const markup = (providerExchangeRate - marketExchangeRate) / marketExchangeRate * 100; return ( ); } export default function ProviderInfo({ provider, }: { provider: ExtendedProviderStatus; }) { const classes = useStyles(); const isOutdated = isProviderOutdated(provider); return ( Swap Provider {provider.multiAddr} {provider.peerId} Exchange rate:{" "}
Minimum swap amount:
Maximum swap amount:
{provider.testnet && } {provider.uptime && ( )} {provider.age ? ( ) : ( )} {provider.recommended === true && ( } color="primary" /> )} {isOutdated && ( } color="primary" /> )}
); }