diff --git a/src/TokenTransferItem.tsx b/src/TokenTransferItem.tsx index 5838428..0284a58 100644 --- a/src/TokenTransferItem.tsx +++ b/src/TokenTransferItem.tsx @@ -6,28 +6,20 @@ import TransactionAddress from "./components/TransactionAddress"; import ValueHighlighter from "./components/ValueHighlighter"; import FormattedBalance from "./components/FormattedBalance"; import USDAmount from "./components/USDAmount"; -import { - AddressContext, - ChecksummedAddress, - TokenMeta, - TokenTransfer, -} from "./types"; +import { AddressContext, TokenMeta, TokenTransfer } from "./types"; import { RuntimeContext } from "./useRuntime"; import { useBlockNumberContext } from "./useBlockTagContext"; -import { Metadata } from "./sourcify/useSourcify"; import { useTokenUSDOracle } from "./usePriceOracle"; type TokenTransferItemProps = { t: TokenTransfer; tokenMeta?: TokenMeta | null | undefined; - metadatas: Record; }; // TODO: handle partial const TokenTransferItem: React.FC = ({ t, tokenMeta, - metadatas, }) => { const { provider } = useContext(RuntimeContext); const blockNumber = useBlockNumberContext(); @@ -40,7 +32,6 @@ const TokenTransferItem: React.FC = ({ @@ -51,7 +42,6 @@ const TokenTransferItem: React.FC = ({ @@ -67,7 +57,7 @@ const TokenTransferItem: React.FC = ({ /> - + {tokenMeta && quote !== undefined && decimals !== undefined && ( = ({ }, [page]); const priceMap = useMultipleETHUSDOracle(provider, blockTags); - // Calculate Sourcify metadata for all addresses that appear on this page results - const addresses = useMemo(() => { - const _addresses = [address]; - if (page) { - for (const t of page) { - if (t.to) { - _addresses.push(t.to); - } - if (t.createdContractAddress) { - _addresses.push(t.createdContractAddress); - } - } - } - return _addresses; - }, [address, page]); - const metadatas = useContractsMetadata(addresses, provider); const balance = useAddressBalance(provider, address); const creator = useContractCreator(provider, address); @@ -181,7 +164,6 @@ const AddressTransactionResults: React.FC = ({ selectedAddress={address} feeDisplay={feeDisplay} priceMap={priceMap} - metadatas={metadatas} /> ))} diff --git a/src/block/BlockTransactionResults.tsx b/src/block/BlockTransactionResults.tsx index 2d768cc..5c1824f 100644 --- a/src/block/BlockTransactionResults.tsx +++ b/src/block/BlockTransactionResults.tsx @@ -8,10 +8,9 @@ import TransactionItem from "../search/TransactionItem"; import { useFeeToggler } from "../search/useFeeToggler"; import { RuntimeContext } from "../useRuntime"; import { SelectionContext, useSelection } from "../useSelection"; -import { ChecksummedAddress, ProcessedTransaction } from "../types"; +import { ProcessedTransaction } from "../types"; import { PAGE_SIZE } from "../params"; import { useMultipleETHUSDOracle } from "../usePriceOracle"; -import { useContractsMetadata } from "../hooks"; type BlockTransactionResultsProps = { blockTag: BlockTag; @@ -32,24 +31,6 @@ const BlockTransactionResults: React.FC = ({ const blockTags = useMemo(() => [blockTag], [blockTag]); const priceMap = useMultipleETHUSDOracle(provider, blockTags); - const addresses = useMemo((): ChecksummedAddress[] => { - if (!page) { - return []; - } - - const _addresses: ChecksummedAddress[] = []; - for (const t of page) { - if (t.to) { - _addresses.push(t.to); - } - if (t.createdContractAddress) { - _addresses.push(t.createdContractAddress); - } - } - return _addresses; - }, [page]); - const metadatas = useContractsMetadata(addresses, provider); - return (
@@ -78,7 +59,6 @@ const BlockTransactionResults: React.FC = ({ tx={tx} feeDisplay={feeDisplay} priceMap={priceMap} - metadatas={metadatas} /> ))}
diff --git a/src/components/DecoratedAddressLink.tsx b/src/components/DecoratedAddressLink.tsx index e85753e..62ccd3a 100644 --- a/src/components/DecoratedAddressLink.tsx +++ b/src/components/DecoratedAddressLink.tsx @@ -8,8 +8,9 @@ import { faBurn } from "@fortawesome/free-solid-svg-icons/faBurn"; import { faCoins } from "@fortawesome/free-solid-svg-icons/faCoins"; import SourcifyLogo from "../sourcify/SourcifyLogo"; import PlainAddress from "./PlainAddress"; -import { Metadata } from "../sourcify/useSourcify"; import { RuntimeContext } from "../useRuntime"; +import { useAppConfigContext } from "../useAppConfig"; +import { useSourcifyMetadata } from "../sourcify/useSourcify"; import { useResolvedAddress } from "../useResolvedAddresses"; import { AddressContext, ChecksummedAddress, ZERO_ADDRESS } from "../types"; import { resolverRendererRegistry } from "../api/address-resolver"; @@ -23,7 +24,6 @@ type DecoratedAddressLinkProps = { selfDestruct?: boolean | undefined; txFrom?: boolean | undefined; txTo?: boolean | undefined; - metadata?: Metadata | null | undefined; eoa?: boolean | undefined; }; @@ -36,9 +36,16 @@ const DecoratedAddressLink: React.FC = ({ selfDestruct, txFrom, txTo, - metadata, eoa, }) => { + const { provider } = useContext(RuntimeContext); + const { sourcifySource } = useAppConfigContext(); + const metadata = useSourcifyMetadata( + address, + provider?.network.chainId, + sourcifySource + ); + const mint = addressCtx === AddressContext.FROM && address === ZERO_ADDRESS; const burn = addressCtx === AddressContext.TO && address === ZERO_ADDRESS; diff --git a/src/components/TransactionAddress.tsx b/src/components/TransactionAddress.tsx index 46f427f..823bd50 100644 --- a/src/components/TransactionAddress.tsx +++ b/src/components/TransactionAddress.tsx @@ -5,20 +5,17 @@ import { useSelectedTransaction } from "../useSelectedTransaction"; import { useBlockNumberContext } from "../useBlockTagContext"; import { RuntimeContext } from "../useRuntime"; import { useHasCode } from "../useErigonHooks"; -import { Metadata } from "../sourcify/useSourcify"; import { AddressContext, ChecksummedAddress } from "../types"; type TransactionAddressProps = { address: ChecksummedAddress; addressCtx?: AddressContext | undefined; - metadata?: Metadata | null | undefined; showCodeIndicator?: boolean; }; const TransactionAddress: React.FC = ({ address, addressCtx, - metadata, showCodeIndicator = false, }) => { const txData = useSelectedTransaction(); @@ -46,7 +43,6 @@ const TransactionAddress: React.FC = ({ txFrom={address === txData?.from} txTo={address === txData?.to || creation} creation={creation} - metadata={metadata} eoa={ showCodeIndicator && blockNumber !== undefined ? !toHasCode diff --git a/src/search/TransactionItem.tsx b/src/search/TransactionItem.tsx index 21e1b84..3fee32c 100644 --- a/src/search/TransactionItem.tsx +++ b/src/search/TransactionItem.tsx @@ -14,20 +14,18 @@ import TransactionDirection, { Flags, } from "../components/TransactionDirection"; import TransactionValue from "../components/TransactionValue"; -import { ChecksummedAddress, ProcessedTransaction } from "../types"; +import { ProcessedTransaction } from "../types"; import { FeeDisplay } from "./useFeeToggler"; import { RuntimeContext } from "../useRuntime"; import { useHasCode } from "../useErigonHooks"; import { formatValue } from "../components/formatter"; import ETH2USDValue from "../components/ETH2USDValue"; -import { Metadata } from "../sourcify/useSourcify"; type TransactionItemProps = { tx: ProcessedTransaction; selectedAddress?: string; feeDisplay: FeeDisplay; priceMap: Record; - metadatas: Record; }; const TransactionItem: React.FC = ({ @@ -35,7 +33,6 @@ const TransactionItem: React.FC = ({ selectedAddress, feeDisplay, priceMap, - metadatas, }) => { const { provider } = useContext(RuntimeContext); const toHasCode = useHasCode( @@ -113,7 +110,6 @@ const TransactionItem: React.FC = ({ address={tx.to} selectedAddress={selectedAddress} miner={tx.miner === tx.to} - metadata={metadatas[tx.to]} eoa={toHasCode === undefined ? undefined : !toHasCode} /> @@ -123,7 +119,6 @@ const TransactionItem: React.FC = ({ address={tx.createdContractAddress!} selectedAddress={selectedAddress} creation - metadata={metadatas[tx.createdContractAddress!]} eoa={false} /> diff --git a/src/transaction/Details.tsx b/src/transaction/Details.tsx index 9b9449f..3c0340a 100644 --- a/src/transaction/Details.tsx +++ b/src/transaction/Details.tsx @@ -1,4 +1,4 @@ -import React, { useContext, useMemo, useState } from "react"; +import React, { useContext, useState } from "react"; import { Tab } from "@headlessui/react"; import { TransactionDescription } from "@ethersproject/abi"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; @@ -25,11 +25,7 @@ import USDValue from "../components/USDValue"; import FormattedBalance from "../components/FormattedBalance"; import ETH2USDValue from "../components/ETH2USDValue"; import TokenTransferItem from "../TokenTransferItem"; -import { - TransactionData, - InternalOperation, - ChecksummedAddress, -} from "../types"; +import { TransactionData, InternalOperation } from "../types"; import PercentageBar from "../components/PercentageBar"; import ExternalLink from "../components/ExternalLink"; import RelativePosition from "../components/RelativePosition"; @@ -43,7 +39,6 @@ import { } from "../use4Bytes"; import { DevDoc, Metadata, useError, UserDoc } from "../sourcify/useSourcify"; import { RuntimeContext } from "../useRuntime"; -import { useContractsMetadata } from "../hooks"; import { useTransactionError } from "../useErigonHooks"; import { useChainInfo } from "../useChainInfo"; import { useETHUSDOracle } from "../usePriceOracle"; @@ -94,22 +89,6 @@ const Details: React.FC = ({ txData?.confirmedData?.blockNumber ); - const addresses = useMemo(() => { - const _addresses: ChecksummedAddress[] = []; - if (txData.to) { - _addresses.push(txData.to); - } - if (txData.confirmedData?.createdContractAddress) { - _addresses.push(txData.confirmedData.createdContractAddress); - } - for (const t of txData.tokenTransfers) { - _addresses.push(t.from); - _addresses.push(t.to); - _addresses.push(t.token); - } - return _addresses; - }, [txData]); - const metadatas = useContractsMetadata(addresses, provider); const [errorMsg, outputData, isCustomError] = useTransactionError( provider, txData.transactionHash @@ -269,11 +248,7 @@ const Details: React.FC = ({ {txData.to ? (
- +
) : txData.confirmedData === undefined ? ( @@ -284,9 +259,6 @@ const Details: React.FC = ({
@@ -316,7 +288,6 @@ const Details: React.FC = ({ key={i} t={t} tokenMeta={txData.tokenMetas[t.token]} - metadatas={metadatas} /> ))}
diff --git a/src/transaction/LogEntry.tsx b/src/transaction/LogEntry.tsx index a6597eb..d1be10d 100644 --- a/src/transaction/LogEntry.tsx +++ b/src/transaction/LogEntry.tsx @@ -14,10 +14,9 @@ import { Metadata } from "../sourcify/useSourcify"; type LogEntryProps = { log: Log; logDesc: LogDescription | null | undefined; - metadatas: Record; }; -const LogEntry: React.FC = ({ log, logDesc, metadatas }) => { +const LogEntry: React.FC = ({ log, logDesc }) => { const rawTopic0 = log.topics[0]; const topic0 = useTopic0(rawTopic0); @@ -56,10 +55,7 @@ const LogEntry: React.FC = ({ log, logDesc, metadatas }) => {
Address
- +
diff --git a/src/transaction/Logs.tsx b/src/transaction/Logs.tsx index 9b903b7..b02b4a6 100644 --- a/src/transaction/Logs.tsx +++ b/src/transaction/Logs.tsx @@ -62,12 +62,7 @@ const Logs: React.FC = ({ txData, metadata }) => { {txData.confirmedData.logs.length > 0 ? ( <> {txData.confirmedData.logs.map((l, i) => ( - + ))} ) : (