import React from 'react'; import { Text } from '../../../components/component-library'; import { Color, FONT_WEIGHT, TextVariant, } from '../../../helpers/constants/design-system'; import { coinTypeToProtocolName, getSnapName, getSnapDerivationPathName, } from '../../../helpers/utils/util'; export function getSnapInstallWarnings(permissions, targetSubjectMetadata, t) { const bip32EntropyPermissions = permissions && Object.entries(permissions) .filter(([key]) => key === 'snap_getBip32Entropy') .map(([, value]) => value); const bip44EntropyPermissions = permissions && Object.entries(permissions) .filter(([key]) => key === 'snap_getBip44Entropy') .map(([, value]) => value); return [ ...bip32EntropyPermissions.flatMap((permission, i) => permission.caveats[0].value.map(({ path, curve }) => ({ id: `key-access-bip32-${path .join('-') .replace(/'/gu, 'h')}-${curve}-${i}`, message: t('snapInstallWarningKeyAccess', [ {getSnapName(targetSubjectMetadata.origin)} , {getSnapDerivationPathName(path, curve) ?? `${path.join('/')} (${curve})`} , ]), })), ), ...bip44EntropyPermissions.flatMap((permission, i) => permission.caveats[0].value.map(({ coinType }) => ({ id: `key-access-bip44-${coinType}-${i}`, message: t('snapInstallWarningKeyAccess', [ {getSnapName(targetSubjectMetadata.origin)} , {coinTypeToProtocolName(coinType) || t('unrecognizedProtocol', [coinType])} , ]), })), ), ]; }