2021-11-07 11:21:56 +00:00
|
|
|
import React from "react";
|
|
|
|
|
import AddressHighlighter from "./AddressHighlighter";
|
|
|
|
|
import DecoratedAddressLink from "./DecoratedAddressLink";
|
|
|
|
|
import { ResolvedAddresses } from "../api/address-resolver";
|
|
|
|
|
import { useSelectedTransaction } from "../useSelectedTransaction";
|
2021-11-07 11:56:12 +00:00
|
|
|
import { AddressContext } from "../types";
|
2021-11-07 11:21:56 +00:00
|
|
|
|
|
|
|
|
type TransactionAddressProps = {
|
|
|
|
|
address: string;
|
2021-11-07 11:56:12 +00:00
|
|
|
addressCtx?: AddressContext | undefined;
|
2021-11-07 11:21:56 +00:00
|
|
|
resolvedAddresses: ResolvedAddresses | undefined;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const TransactionAddress: React.FC<TransactionAddressProps> = ({
|
|
|
|
|
address,
|
2021-11-07 11:56:12 +00:00
|
|
|
addressCtx,
|
2021-11-07 11:21:56 +00:00
|
|
|
resolvedAddresses,
|
|
|
|
|
}) => {
|
|
|
|
|
const txData = useSelectedTransaction();
|
|
|
|
|
// TODO: push down creation coloring logic into DecoratedAddressLink
|
|
|
|
|
const creation = address === txData?.confirmedData?.createdContractAddress;
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
<AddressHighlighter address={address}>
|
|
|
|
|
<DecoratedAddressLink
|
|
|
|
|
address={address}
|
2021-11-07 11:56:12 +00:00
|
|
|
addressCtx={addressCtx}
|
2021-11-07 11:21:56 +00:00
|
|
|
miner={address === txData?.confirmedData?.miner}
|
|
|
|
|
txFrom={address === txData?.from}
|
|
|
|
|
txTo={address === txData?.to || creation}
|
|
|
|
|
creation={creation}
|
|
|
|
|
resolvedAddresses={resolvedAddresses}
|
|
|
|
|
/>
|
|
|
|
|
</AddressHighlighter>
|
|
|
|
|
);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export default TransactionAddress;
|