diff --git a/.changelog/1285.trivial.md b/.changelog/1285.trivial.md new file mode 100644 index 0000000000..0aa2f892a4 --- /dev/null +++ b/.changelog/1285.trivial.md @@ -0,0 +1 @@ +Various small cleanups diff --git a/src/app/components/Balance/hooks.ts b/src/app/components/Balance/hooks.ts index da6d55f0fe..e47fd878f5 100644 --- a/src/app/components/Balance/hooks.ts +++ b/src/app/components/Balance/hooks.ts @@ -3,9 +3,6 @@ import { AllTokenPrices } from '../../../coin-gecko/api' import BigNumber from 'bignumber.js' import { Ticker } from '../../../types/ticker' -export const hasRuntimeBalance = (balances: RuntimeSdkBalance[] = []) => - balances.some(balance => balance.token_decimals) - export type FiatValueInfo = { /** * Do we have any known real value? diff --git a/src/app/components/Snapshots/SnapshotCardExternalLink.tsx b/src/app/components/Snapshots/SnapshotCardExternalLink.tsx index 8442995c4b..3e979cd911 100644 --- a/src/app/components/Snapshots/SnapshotCardExternalLink.tsx +++ b/src/app/components/Snapshots/SnapshotCardExternalLink.tsx @@ -21,6 +21,16 @@ type SnapshotCardExternalLinkProps = { label?: string title: string url?: string + + /** + * Should we accept "mailto:" links? + * + * Those are more dangerous than other types, since they can + * facilitate displaying malicious URLs like javascript: and mailto:?attach= + * + * In order to prevent this, only enable this flag if we can be sure that the link is safe. + */ + emailAccepted?: boolean } export const SnapshotCardExternalLink: FC = ({ @@ -28,6 +38,7 @@ export const SnapshotCardExternalLink: FC = ({ label, title, url, + emailAccepted, }) => { return ( @@ -40,7 +51,7 @@ export const SnapshotCardExternalLink: FC = ({ > {description} - {url && hasValidProtocol(url) && ( + {url && (hasValidProtocol(url) || (emailAccepted && url.startsWith('mailto:'))) && ( diff --git a/src/app/pages/ParatimeDashboardPage/TestnetFaucet.tsx b/src/app/pages/ParatimeDashboardPage/TestnetFaucet.tsx index b9f2a48324..cccc66a7cc 100644 --- a/src/app/pages/ParatimeDashboardPage/TestnetFaucet.tsx +++ b/src/app/pages/ParatimeDashboardPage/TestnetFaucet.tsx @@ -22,6 +22,7 @@ export const TestnetFaucet: FC = ({ network, layer, ticker } label={t('testnetFaucet.request')} title={t('testnetFaucet.header')} url={link} + emailAccepted={true} /> ) : null } diff --git a/src/app/pages/ValidatorDetailsPage/ExternalLinkCard.tsx b/src/app/pages/ValidatorDetailsPage/ExternalLinkCard.tsx index 89c6002407..8a1e4b24f2 100644 --- a/src/app/pages/ValidatorDetailsPage/ExternalLinkCard.tsx +++ b/src/app/pages/ValidatorDetailsPage/ExternalLinkCard.tsx @@ -4,9 +4,19 @@ import { SnapshotCardExternalLink } from 'app/components/Snapshots/SnapshotCardE type ExternalLinkCardProps = { link?: string + + /** + * Should we accept "mailto:" links? + * + * Those are more dangerous than other types, since they can + * facilitate displaying malicious URLs like javascript: and mailto:?attach= + * + * In order to prevent this, only enable this flag if we can be sure that the link is safe. + */ + emailAccepted?: boolean } -export const ExternalLinkCard: FC = ({ link }) => { +export const ExternalLinkCard: FC = ({ link, emailAccepted }) => { const { t } = useTranslation() return ( @@ -15,6 +25,7 @@ export const ExternalLinkCard: FC = ({ link }) => { label={link} title={t('validator.externalLink')} url={link} + emailAccepted={emailAccepted} /> ) } diff --git a/src/app/utils/url.ts b/src/app/utils/url.ts index ec0ac05e48..ee974686aa 100644 --- a/src/app/utils/url.ts +++ b/src/app/utils/url.ts @@ -1,4 +1,4 @@ -const validProtocols = ['http:', 'https:', 'ftp:', 'ipfs:', 'data:', 'mailto:'] +const validProtocols = ['http:', 'https:', 'ftp:', 'ipfs:', 'data:'] export const hasValidProtocol = (url: string | undefined): boolean => { if (!url) { diff --git a/src/coin-gecko/api.ts b/src/coin-gecko/api.ts index ab7f744972..20076f9f48 100644 --- a/src/coin-gecko/api.ts +++ b/src/coin-gecko/api.ts @@ -82,7 +82,7 @@ export const useAllTokenPrices = (fiatCurrency: string): AllTokenPrices => { isFree: !!token.free, hasUsedCoinGecko: !!token.geckoId, price: token.geckoId && geckoPrices ? (geckoPrices as any)[token.geckoId] : undefined, - fiatCurrency: token.geckoId && geckoPrices ? fiatCurrency : 'xx', + fiatCurrency, } }) return results diff --git a/src/oasis-nexus/api.ts b/src/oasis-nexus/api.ts index 2617ddd3d2..3ead655795 100644 --- a/src/oasis-nexus/api.ts +++ b/src/oasis-nexus/api.ts @@ -748,13 +748,8 @@ export const useGetRuntimeEvents: typeof generated.useGetRuntimeEvents = ( event.body.amount.Denomination === '' ? { ...event.body.amount, - Amount: fromBaseUnits( - event.body.amount.Amount, - paraTimesConfig[runtime].decimals, - ), - Denomination: - event.body?.Denomination ?? - getTokensForScope({ network, layer: runtime })[0].ticker, + Amount: fromBaseUnits(event.body.Amount, paraTimesConfig[runtime].decimals), + Denomination: getTokensForScope({ network, layer: runtime })[0].ticker, } : event.body.amount, },