otterscan/src/address/ContractABI.tsx

36 lines
939 B
TypeScript
Raw Normal View History

2021-10-25 02:04:04 +00:00
import React from "react";
2021-10-25 04:29:50 +00:00
import { Tab } from "@headlessui/react";
import ModeTab from "../components/ModeTab";
2021-10-25 02:04:04 +00:00
import Copy from "../components/Copy";
2021-10-25 04:29:50 +00:00
import DecodedABI from "./DecodedABI";
2021-10-25 02:04:04 +00:00
import RawABI from "./RawABI";
type ContractABIProps = {
abi: any[];
};
const ContractABI: React.FC<ContractABIProps> = ({ abi }) => (
<div className="mb-3">
2021-10-25 04:29:50 +00:00
<Tab.Group>
2021-10-25 04:44:24 +00:00
<Tab.List className="flex items-baseline space-x-1 mb-1">
<div className="flex items-baseline space-x-2 text-sm pr-2 py-1">
<span>ABI</span>
<Copy value={JSON.stringify(abi)} />
</div>
2021-10-25 04:29:50 +00:00
<ModeTab>Decoded</ModeTab>
<ModeTab>Raw</ModeTab>
</Tab.List>
<Tab.Panels>
<Tab.Panel>
<DecodedABI abi={abi} />
</Tab.Panel>
<Tab.Panel>
<RawABI abi={abi} />
</Tab.Panel>
</Tab.Panels>
</Tab.Group>
2021-10-25 02:04:04 +00:00
</div>
);
export default React.memo(ContractABI);