import React from "react"; import { NavLink } from "react-router-dom"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faStar } from "@fortawesome/free-solid-svg-icons/faStar"; import { faBomb } from "@fortawesome/free-solid-svg-icons/faBomb"; import { faMoneyBillAlt } from "@fortawesome/free-solid-svg-icons/faMoneyBillAlt"; import { faBurn } from "@fortawesome/free-solid-svg-icons/faBurn"; import { faCoins } from "@fortawesome/free-solid-svg-icons/faCoins"; import AddressOrENSName from "./AddressOrENSName"; import SourcifyLogo from "../sourcify/SourcifyLogo"; import { AddressContext, ZERO_ADDRESS } from "../types"; import { Metadata } from "../sourcify/useSourcify"; type DecoratedAddressLinkProps = { address: string; selectedAddress?: string | undefined; addressCtx?: AddressContext | undefined; creation?: boolean | undefined; miner?: boolean | undefined; selfDestruct?: boolean | undefined; txFrom?: boolean | undefined; txTo?: boolean | undefined; metadata?: Metadata | null | undefined; }; const DecoratedAddressLink: React.FC = ({ address, selectedAddress, addressCtx, creation, miner, selfDestruct, txFrom, txTo, metadata, }) => { const mint = addressCtx === AddressContext.FROM && address === ZERO_ADDRESS; const burn = addressCtx === AddressContext.TO && address === ZERO_ADDRESS; return (
{creation && ( )} {selfDestruct && ( )} {mint && ( )} {burn && ( )} {miner && ( )} {metadata && ( )}
); }; export default React.memo(DecoratedAddressLink);