import {
Box,
Flex,
HStack,
Text,
Heading,
Tooltip,
Td,
Collapse,
useDisclosure,
Button,
Table,
Thead,
Tr,
Th,
Tbody,
Link,
} from "@chakra-ui/react";
import {
InfoIcon,
ChevronDownIcon,
ChevronUpIcon,
DeleteIcon,
UnlockIcon,
} from "@chakra-ui/icons";
import CopyToClipboard from "./CopyToClipboard";
import { TxnDataType } from "../../types";
import { useEffect } from "react";
import { ethers } from "ethers";
export const slicedText = (txt: string) => {
return txt.length > 6
? `${txt.slice(0, 4)}...${txt.slice(txt.length - 2, txt.length)}`
: txt;
};
const TD = ({ txt }: { txt: string }) => (
{slicedText(txt)}
|
);
const ValueTD = ({ txt }: { txt: string }) => (
{ethers.utils.formatEther(txt)} ETH
|
);
const TData = ({
calldata,
address,
networkId,
}: {
calldata: string;
address: string;
networkId: number;
}) => (
{slicedText(calldata)}
|
);
interface TransactionRequestsParams {
sendTxnData: TxnDataType[];
setSendTxnData: (value: TxnDataType[]) => void;
networkId: number;
}
function TransactionRequests({
sendTxnData,
setSendTxnData,
networkId,
}: TransactionRequestsParams) {
const {
isOpen: tableIsOpen,
onOpen: tableOnOpen,
onToggle: tableOnToggle,
} = useDisclosure();
useEffect(() => {
// keep table open on load
tableOnOpen();
}, []);
return (
{tableIsOpen ? : }
eth_sendTransactions
"eth_sendTransaction" requests by the dApp are shown here
(latest on top)
>
}
hasArrow
placement="top"
>
{sendTxnData.length > 0 && (
)}
| from |
to |
data |
value |
{sendTxnData.map((d) => (
|
|
))}
);
}
export default TransactionRequests;